Buka aplikasi untuk mengedit file teks dari baris perintah

9

Saat memasang TextWrangler di OSX Anda juga mendapatkan editperintah yang memungkinkan Anda untuk membuka file teks apa pun dari baris perintah.

Apakah mungkin untuk memiliki fungsi serupa di Ubuntu untuk mengetik beberapa perintah pada terminal untuk membuka file dalam editor teks tertentu (katakanlah Kate)?

Juan A. Navarro
sumber

Jawaban:

11

Untuk membuka file menggunakan kate, Anda dapat menjalankan sesuatu seperti:

kate filename

Ini mungkin menampilkan beberapa pesan seperti:

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

Untuk menghapus pesan-pesan ini, arahkan aliran output kesalahan ke /dev/null:

kate filename 2>/dev/null

Jika Anda ingin terus menggunakan terminal yang sama, tambahkan &perintah setelah:

kate filename 2>/dev/null &

Jika Anda ingin menjalankan edit filenameuntuk membukanya, Anda bisa membuat fungsi bash di ~/.bashrcfile Anda . Tambahkan kode selanjutnya ke ~/.bashrcfile Anda :

edit() { kate "$@" 2>/dev/null & }
Lekensteyn
sumber
Ini semakin dekat dengan apa yang saya cari. Terima kasih telah benar-benar menjalankan perintah dan melihat masalah yang akan muncul dengan solusi yang paling jelas. Saya kira apa yang akan saya lakukan adalah membuat perintah baru yang bisa saya panggil edit filenameuntuk menjalankan keseluruhan kate filename 2>/dev/null &.
Juan A. Navarro
1
@Juan: Saya sudah menambahkan contoh untuk melakukan itu. The $@diperlukan dalam kasus Anda harus lulus opsi tambahan seperti nomor baris. Sebagai alternatif, Anda dapat mengubah fungsi ini untuk mendukung edit filename linenumber.
Lekensteyn
Anda memiliki bug dalam jawaban Anda, dan sepertinya saya tidak dapat mengeditnya. Anda lupa tanda kutip di sekitar $@(seharusnya "$@"), yang berarti bahwa skrip Anda akan gagal dengan nama file yang mengandung spasi.
Scott Severance
18

Anda dapat membuka (Hingga sepengetahuan saya) salah satu editor seperti ini:

NAME_OF_EDITOR FILENAME

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

Anda bahkan dapat membuka halaman web dengan cara yang sama
firefox filename.html
chrome filename.html
banshee filename.oggatau .mp3

Anda bisa melihat kecenderungannya di sini ..

Luis Alvarado
sumber
Sebenarnya seharusnya gedit filename &terminal tidak dapat digunakan lagi. Hal yang sama terjadi dengan katetetapi, bahkan dengan &itu membuat terminal tidak dapat digunakan karena mulai meludah informasi debug (atau apa pun) ke terminal. Apakah ada cara untuk menghindari &pada akhirnya? Seperti yang saya lakukan dengan editdari TextWrangler?
Juan A. Navarro
Namun, jawaban dari Lekensteyn adalah (setidaknya lebih dekat) dengan apa yang saya cari.
Juan A. Navarro
1
Benar, Anda dapat menambahkan & atau bahkan menambahkan 2> / dev / null untuk tidak menghasilkan kesalahan dan hal-hal di konsol jika Anda ingin tetap menggunakannya.
Luis Alvarado
3

Jika Anda lebih suka menggunakan perintah editdi Ubuntu juga karena Anda terbiasa melakukannya, Anda juga bisa menentukan alias untuk editor favorit Anda seperti untuk Kate:

alias edit='kate'

Untuk membuat alias ini, cukup tambahkan baris ini ke ~/.bash_aliases.

Takkat
sumber
2

Jika Anda tidak memiliki lingkungan grafis dan Anda menjalankan konsol, Anda selalu dapat menggunakan:

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

dan seterusnya jatuh kembali ke jawaban pertama ..

topless
sumber
1
"emacs -nw" atau "xemacs -nw" jika Anda ingin VT100 (x) emacs bahkan di dalam lingkungan berjendela.
barrycarter
1

Anda dapat menggunakan perintah CLI untuk editor yang diinginkan untuk membuka dan mengedit file. Misalnya geditdi gnome atau katedi KDE.

Ketik saja:

kate filename

untuk membuka file di Kate.

Pedram
sumber
1

Saya kadang-kadang menggunakan terminal klasik di mana mcedit adalah editor pilihan saya, dan sering suka memberikan nomor baris, untuk memperbaiki program / skrip.

Untuk memanggil mereka secara seragam edit source.sh 123saya menulis skrip ini, yang saya tempatkan sebagai 'edit' di jalur:

#!/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

Gunakan lihat instruksi debug lama dari saat saya menggunakan scite, bukan gedit, sebagai editor grafis.

Sesuatu, yang tidak berfungsi seperti ini, membuka banyak file seperti ini:

 edit *.html

jika ada lebih dari satu html-File, maka polanya akan diperluas ke beberapa file.

Doa yang valid adalah:

 edit 
 edit foofile 
 edit foofile 123

dari X atau terminal.

Pengguna tidak diketahui
sumber