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 dapat source
memasukkan skrip tersebut ~/.bashrc
. Berikut ini contoh untuk disiapkan ble.sh
di bashrc (lihat README untuk detailnya):
$ git clone https://github.com/akinomyoga/ble.sh.git
$ cd ble.sh
$ make
$ make INSDIR="$HOME/.local/share/blesh" install
# bashrc
# Add the following line at the beginning of bashrc
[[ $- == *i* ]] &&
source "$HOME/.local/share/blesh/ble.sh" --attach=none
# ... other bashrc settings ...
# Add the following line at the end of bashrc
((_ble_bash)) && ble-attach
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.