Có cách nào để bật Ctrl + L để xóa màn hình khi 'set -o vi' được đặt không?


54

Khi bạn nhấn Ctrl+ Ltrong chế độ mặc định bash, màn hình sẽ bị xóa. Nhưng khi tôi chạy set -o vivà nhấn Ctrl+ Ltổ hợp phím được in ( ^L). Có cách nào để giữ hành vi này?

Câu trả lời:


61

Ctrl+ Lcũng bị ràng buộc trong chế độ lệnh vi nhưng không ở chế độ chèn. Không có ràng buộc mặc định cho clear-screentrong chế độ chèn. Các ràng buộc đọc nên được chỉ định trong ~/.inputrc, như vậy:

set editing-mode vi
$if mode=vi

set keymap vi-command
# these are for vi-command mode
Control-l: clear-screen

set keymap vi-insert
# these are for vi-insert mode
Control-l: clear-screen 
$endif

Điều này sẽ liên kết Ctrl+ Lđể xóa màn hình ở cả chế độ bình thường và chế độ chèn. Đương nhiên, nếu bạn chỉ muốn sử dụng nó trong một chế độ, chỉ cần loại bỏ tùy chọn có liên quan.

Có một danh sách rộng lớn các lệnh readline mà bạn có thể sử dụng để tùy chỉnh bash shell của mình.


1
Vì tò mò, tại sao phải bận tâm với lệnh vi nếu nó đã được lập bản đồ? chỉ vì lợi ích của sự hoàn thiện, hay có một lý do kỹ thuật?
Ken Bellows

2
@KenBellows cho rõ ràng, theo nhận xét (và tôi cần một ví dụ trong khối lệnh vi vì lý do thẩm mỹ hoàn toàn).
jasonwryan

22

Đặt dòng này trong bashrc:

bind -m vi-insert "\C-l":clear-screen
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.