Không có cách đơn giản nào để làm nổi bật cú pháp trong GNU Bash (hoặc GNU Readline), nhưng về nguyên tắc có thể thực hiện trình soạn thảo dòng của riêng bạn trong các tập lệnh Bash bằng cách liên kết tất cả các đầu vào của người dùng với các hàm shell bằng lệnh dựng sẵn bind -x 'BYTE: SHELL-COMMAND'
. Tất nhiên có thể tích hợp tính năng tô sáng cú pháp trong trình chỉnh sửa dòng của riêng bạn.
Trong thực tế, tôi đã triển khai một trình chỉnh sửa dòng ble.sh
với các tính năng như tô sáng cú pháp và đề xuất tự động. Nó hỗ trợ Bash 3.0--5.0. Vì nó được viết bằng (gần như) các tập lệnh Bash thuần túy, nên bạn chỉ có thể source
viết tập lệnh ~/.bashrc
. Đây là một mẫu để thiết lập ble.sh
trong bashrc (xem README để biết chi tiết):
$ 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
Lưu ý : Tôi biết rằng đôi khi trả lời các câu hỏi có liên kết đến các sản phẩm của riêng mình được coi là tự quảng cáo và không đáng tin cậy, vì vậy tôi đã không chịu trả lời câu hỏi này. Tuy nhiên, không có giải pháp nào khác không xuất hiện trong thời gian dài và câu hỏi này cũng có nhiều quan điểm (phản ánh nhu cầu quan trọng của nó). Vì vậy, tôi quyết định trả lời cho câu hỏi này ngày hôm nay. Đề cập đến các câu hỏi / câu trả lời meta sau đây, tôi đã mô tả ý tưởng đầu tiên và tiếp theo cung cấp một liên kết đến dự án của tôi như là một triển khai ví dụ.
Vâng, tôi phải thừa nhận rằng đây thực sự là tự quảng cáo , nhưng tôi tin rằng điều này sẽ giúp những người muốn tính năng này. Nếu có vấn đề, tôi sẽ đánh giá cao nếu bạn có thể cho tôi biết điều đó bằng các bình luận.