Các ràng buộc khóa tùy chỉnh cho chế độ vỏ vi, tức là, bộ Set -o vi phạm?


18

Tôi mới phát hiện ra những điều kỳ diệu set -o vi, và tò mò liệu có thể tùy chỉnh chế độ vỏ vi này theo một số cách tương tự bạn có thể tùy chỉnh vi hoặc vim không?

Ví dụ: tạo một ràng buộc khóa tùy chỉnh để ánh xạ một tổ hợp phím hoặc khóa thuận tiện hơn esc?

Nếu hiện tại nó không được hỗ trợ, việc thay đổi mã nguồn của chương trình và mã cứng trong một số tùy chỉnh sẽ khó khăn như thế nào, hoặc đó có phải là một ý tưởng tồi?


Tôi đã tìm thấy câu trả lời ở đây < unix.stackexchange.com/questions/27699/remap-bash-vi-keys >
DinizBr

Câu trả lời:


17

Có, bạn có thể thay đổi ánh xạ chính (đối với chế độ giống vi- hoặc emacs) với bindnội dung. Đây thực sự là một tính năng đọc (vì vậy bạn có thể có các ràng buộc giống như vi trong tất cả các chương trình đọc, không chỉ bash).

Khóa bạn đang tìm kiếm được gọi vi-movement-modevà mặc định là \e(thoát). Bạn cũng có thể liên kết nó với (và điều này khá ngớ ngẩn) bằng như thế này. Dòng thứ hai được thoát khỏi ràng buộc để thoát:

$ bind "=":vi-movement-mode 
$ bind -r "\e"

Chạy bind -psẽ hiển thị cho bạn tất cả các khóa bạn có thể liên kết và các ràng buộc hiện tại của chúng (nếu có).

Bạn có thể đặt bindcác lệnh trong .bashrchoặc bạn có thể chỉnh sửa ~/.inputrcđể áp dụng nó cho tất cả các chương trình đọc mà bạn chạy. Các tài liệu readline chứa chi tiết đầy đủ.


1
Điều này thật tuyệt. Cám ơn rất nhiều. Tôi đã có thể tìm ra làm thế nào để liên kết các combo chính như thế bind "Control-Space":vi-movement-mode- nó hoạt động tốt. Nhưng ví dụ trong vim tôi đã gõ hai ký tự liên tiếp làm trình kích hoạt esc, nghĩa là, nếu bạn nhập jjbạn sẽ trở về chế độ bình thường. Điều này không hoạt động khi tôi thử nó với ràng buộc, có cách nào đặc biệt để làm cho nó hoạt động không?
Giô-na

@Jonah không phải là tôi biết về tay trái, nhưng tôi đã không đọc các tài liệu về đường đọc gần đây ...
derobert

@chishaku bạn cần đặt tiền tố tên của Jonah bằng dấu ( @) hoặc anh ấy sẽ không nhận được thông báo.
derobert

2
@Jonah Tôi chỉ cố gắng làm điều tương tự. Bạn đã bao giờ con số này ra?
chishaku

1
unix.stackexchange.com/questions/303282/ Ấn Bạn cần báo giá vì một số lý dobind '"jk":vi-movement-mode'
Hielke Walinga
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.