Metin dosyalarını komut satırından düzenlemek için uygulamayı açın


9

TextWrangler'ı OSX'e yüklerken edit, komut satırından herhangi bir metin dosyasını açmanıza izin veren bir komut da alırsınız .

Belirli bir metin düzenleyicide bir dosyayı açmak için terminalde bir komut yazmak için Ubuntu'da benzer bir işleve sahip olmak mümkün mü?

Yanıtlar:


11

Düğmesini kullanarak bir dosya açmak için kateaşağıdakine benzer bir şey çalıştırabilirsiniz:

kate filename

Bu, aşağıdaki gibi bazı mesajları gösterebilir:

kate(3702)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing  "/usr/share/mime/magic"
kate(3702)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing  "/home/user/.local/share/mime/magic"
Bus::open: Can not get ibus-daemon's address. 
IBusInputContext::createInputContext: no connection to ibus-daemon

Bu iletileri kaldırmak için hata çıktı akışını şuraya yönlendirin /dev/null:

kate filename 2>/dev/null

Aynı terminali kullanmaya devam etmek istiyorsanız &, komuttan sonra bir tane ekleyin :

kate filename 2>/dev/null &

edit filenameAçmak için çalıştırmak isterseniz , ~/.bashrcdosyanızda bir bash işlevi oluşturabilirsiniz . ~/.bashrcDosyanıza bir sonraki kodu ekleyin :

edit() { kate "$@" 2>/dev/null & }

Bu aradığım şeye yaklaşıyor. Aslında komutları çalıştırdığınız için teşekkürler ve en belirgin çözümlerle ortaya çıkabilecek sorunları görün. Sanırım ne yapacağımı edit filenamebütün olarak çalıştırmak için arayabileceğim yeni bir komut oluşturmak kate filename 2>/dev/null &.
Juan A. Navarro

1
@Juan: Bunu yapmak için bir örnek ekledim. $@Satır numarası gibi ek seçenekleri geçmesi gerekiyor durumunda gereklidir. Alternatif olarak, bu işlevi desteklemek için ince ayar yapabilirsiniz edit filename linenumber.
Lekensteyn

Cevabınızda bir hata var ve onu düzenleyemiyorum. Etraftaki tırnak işaretlerini unuttun $@(olması gerektiği gibi "$@"), yani komut dosyanızın boşluk içeren dosya adlarıyla başarısız olacağı anlamına gelir.
Scott Severance

18

Bu gibi editörlerden herhangi birini açabilirsiniz (Bildiğim kadarıyla):

NAME_OF_EDITOR FILENAME

gedit filename(Ubuntu)
kate filename(Kubuntu)
bluefish filename
kwrite filename
libreoffice filename

Bir web sayfasını aynı şekilde
firefox filename.html
chrome filename.html
banshee filename.oggveya .mp3 bile açabilirsiniz

Buradaki eğilimi görebilirsiniz ..


Aslında gedit filename &terminalin kullanılamaz durumda olması gerekir . Aynı şey olur, kateancak &terminalde hata ayıklama (veya herhangi bir şekilde) bilgi vermeye başladığı için terminali kullanılamaz hale getirir. &Sonunda kaçınmanın bir yolu var mı ? editTextWrangler ile yaptığım gibi ?
Juan A. Navarro

Boşver , Lekensteyn'in cevabı aradığım şeye (en azından daha yakın).
Juan A. Navarro

1
Doğru, kullanmaya devam etmek istiyorsanız konsoldaki hata ve öğeleri çıktı vermemek için & > hatta 2> / dev / null öğesini ekleyebilirsiniz .
Luis Alvarado

3

editUbuntu'daki komutu kullanmayı tercih ettiğiniz için de kullanmayı tercih ediyorsanız , Kate gibi en sevdiğiniz editörünüz için bir takma ad da tanımlayabilirsiniz:

alias edit='kate'

Bu takma adı kalıcı hale getirmek için sadece bu satırı ekleyin ~/.bash_aliases.


2

Herhangi bir grafik ortamınız yoksa ve konsolda çalışıyorsanız her zaman aşağıdakileri kullanabilirsiniz:

vim foo.txt
nano bar.txt
pico foo.html
emacs bar.xml
...

ve böylece ilk cevaba geri dönülür ..


1
pencereli bir ortamda bile VT100 (x) emacs istiyorsanız "emacs -nw" veya "xemacs -nw".
barrycarter

1

Dosyaları açmak ve düzenlemek için istediğiniz düzenleyicinin CLI komutunu kullanabilirsiniz. Örneğin geditgnome veya kateKDE'de.

Sadece yaz:

kate filename

dosyayı kate'de açmak için.


1

Bazen mcedit'in tercih ettiğim editör olduğu klasik bir terminal kullanıyorum ve genellikle bir programı / komut dosyasını düzeltmek için bir satır numarası iletmeyi seviyorum.

Onları eşit olarak çağırmak edit source.sh 123için yola 'düzenle' olarak yerleştirdiğim bu komut dosyasını yazdım:

#!/bin/bash
#   - edit a file using mcedit or gedit, depending on X11 or console invoking.
#   - jump to specified line, if any.

Xedit=/usr/bin/gedit

if [[ $TERM = "linux" ]]; then
    if [ $# -eq 1 ]; then
        mcedit $1
        else if [ $# -eq 2 ]; then
#           echo "edit invoked\t/usr/bin/mcedit +$2 $1" >> /tmp/edit.log
            /usr/bin/mcedit +$2 $1
            else if [ $# -eq 0 ]; then
                /usr/bin/mcedit
            fi
        fi
    fi
    else if [[ $TERM = "xterm" ]]; then
        # scheint nicht zu helfen
        # LANGUAGE=C
        export LC_ALL=C
        if [ $# -eq 1 ]; then
            $Xedit $1
            else if [ $# -eq 2 ]; then
#               echo "edit invoked\t/usr/bin/scite -open:$1 -goto:$2" >> /tmp/edit.log
                # $Xedit -open:$1 -goto:$2
                $Xedit +$2 $1 
                else if [ $# -eq 0 ]; then
                    $Xedit
                fi
            fi
        fi
    fi
fi

Grafik editörü olarak gedit değil scite kullandığım zamandaki eski hata ayıklama talimatlarına bakın.

Bu şekilde çalışmayan bir şey, bunun gibi birden fazla dosyanın açılmasıdır:

 edit *.html

birden fazla html dosyası varsa, desen birden çok dosyaya genişletilir.

Geçerli çağrılar:

 edit 
 edit foofile 
 edit foofile 123

X veya terminalden.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.