Dalam shell ikan , baris perintah aktual disorot sintaks:
Apakah ada cara untuk mendapatkan perilaku yang sama di bash?
Ada sesuatu seperti ini tetapi untuk zsh, bukan bash. Apakah mungkin ini bisa diangkut ke bash?
Untuk memperjelas bagi mereka yang tidak mengerti tangkapan layar, penjelasan, atau tautan yang disediakan: Saya ingin menyorot teks aktual yang dimasukkan di terminal. Perintah, tanda kurung, kutipan, dll.
bash
syntax-highlighting
fish
Wuffers
sumber
sumber
Jawaban:
Bash menggunakan
readline
untuk input interaktif, jadi penyorotan sintaks perlu diimplementasikan dalam program itu. Saya menemukan diskusi Grup Google tentang cara membuat kode fitur seperti itu.Kerang ikan menggunakan editor baris sendiri yang khusus untuk program itu, dan tidak bisa langsung diangkut.
Anda mungkin menemukan bahwa
zsh
ini sangat mirip dengan bash, dan editor barisnya dapat diperpanjang . Saya menemukan zsh-syntax-highlighting untuk mengaktifkan fitur ini di zsh.sumber
Tidak ada cara sederhana untuk mendapatkan penyorotan sintaks di GNU Bash (atau GNU Readline), tetapi pada prinsipnya memungkinkan untuk mengimplementasikan editor baris Anda sendiri dalam skrip Bash dengan mengikat semua input pengguna ke fungsi shell menggunakan perintah builtin
bind -x 'BYTE: SHELL-COMMAND'
. Tentu saja mungkin untuk mengintegrasikan fitur penyorotan sintaks di editor baris Anda sendiri.Sebenarnya saya menerapkan editor baris
ble.sh
dengan fitur-fitur seperti penyorotan sintaksis dan saran otomatis. Ini mendukung Bash 3.0--5.0. Karena ini ditulis dalam (hampir) skrip Bash murni, Anda dapatsource
memasukkan skrip tersebut~/.bashrc
. Berikut ini contoh untuk disiapkanble.sh
di bashrc (lihat README untuk detailnya):Catatan : Saya tahu bahwa kadang-kadang menjawab pertanyaan dengan tautan ke produk sendiri dianggap promosi diri dan tidak dapat dipilih, jadi saya menahan diri untuk tidak menjawab pertanyaan ini. Namun, tidak ada solusi lain yang tidak muncul lama, dan juga pertanyaan ini memiliki banyak pandangan (yang mencerminkan permintaannya yang signifikan). Jadi saya memutuskan untuk menjawab pertanyaan ini hari ini. Merujuk pada pertanyaan / jawaban meta berikut ini, saya menggambarkan ide itu pertama dan selanjutnya memberikan tautan ke proyek saya sebagai contoh implementasi.
Ya, saya harus mengakui bahwa ini sebenarnya promosi diri , tetapi saya percaya ini membantu orang yang menginginkan fitur tersebut. Jika ada masalah, saya akan sangat menghargai jika Anda bisa memberi tahu saya dengan komentar.
sumber
Saya tidak berpikir sintaks harus terjadi pada tingkat shell tetapi pada tingkat antarmuka (hanya pendapat saya -dan orang lain yang itu seems-), jadi saya akan melihat ke dalam "plugin" untuk Terminal atau konsol favorit Anda, misalnya plug in untuk Kate mungkin membantu, atau yang lain ini yang menawarkan highlight sintaks di nano
Berikut ini masih banyak pembicaraan tentang cara menyinkronkan penyorotan di Terminal:
meskipun di sini lebih baik dijelaskan bagaimana caranya
Semoga ini bisa membantu
sumber
ls
perintah berdasarkan pada tipe file, yang tidak ada hubungannya dengan sintaksis shell.