2009-07-14 44 views
8

Tôi muốn có Ctrl-l cho clear trong Bash của tôi.Để ràng buộc rõ ràng với^l trong Bash

Làm cách nào để bạn có thể ràng buộc Ctrl-l tới clear bằng Bash?

+0

Có gì sai với Ctrl + K, hoặc bạn có ít bàn tay và không thể chạm tới K (ngay bên cạnh L trên bàn phím Qwerty) ?! :-P – Gav

+2

Ctrl + K không hoạt động. Tôi dùng Dvorak. --- Tôi đã có ý tưởng rằng Ctrl-l là 'clear' mặc định trong Bash và Zsh. –

Trả lời

11

Đặt này trong ~/.inputrc của bạn:

C-L: backward-kill-line 

(giả định bằng cách "rõ ràng" bạn có nghĩa là "dòng đầu vào hiện tại rõ ràng", nếu bạn có nghĩa là "màn hình rõ ràng", sau đó đưa clear-screen thay vì backward-kill-line).

+0

Tôi có nghĩa là cái sau. - Tôi đặt 'C-L clear-screen' thành ~/.inputrc không thành công. Điều này cho thấy rằng ~/.inputrc không có nguồn gốc từ Bash. Tuy nhiên, Bash không thích nếu tôi nguồn tệp tại .bashrc. - Tôi nên đặt mã ở đâu? –

+2

'.putputrc' không phải là * có nguồn gốc * bởi bash, chính xác; nó không chứa lệnh 'bash', nó chứa chỉ thị cấu hình thư viện readline. Biến môi trường INPUTRC có thể được sử dụng để ghi đè vị trí mặc định của '~/.inputrc'; conceivably có thể được thiết lập. Và bạn cần phải bắt đầu một 'bash' mới để nó có hiệu lực; nó sẽ không ảnh hưởng đến các phiên hiện có. – chaos

+2

Trên hệ thống C-L của tôi mặc định để xóa màn hình. –

4

trong một trường hợp cụ thể nơi clear-screen không làm việc cho tôi một trong hai, tôi phát hiện ra rằng việc đưa vào ~/.bashrc dòng: bind -x $'"\C-l":clear;' là tốt hơn so với "\C-l":'clear\n' trong ~/.inputrc vì nó xóa màn hình trái lệnh hiện gõ vào địa điểm; ví dụ (^L chương trình mà tôi đánh combo):

Với "\C-l": clear-screen trong ~/.inputrc:

[email protected]:~$ date^L 
[email protected]:~$ date 
[email protected]:~$ ^L 
[email protected]:~$ 

Với "\C-l":'clear\n' trong ~/.inputrc:

[email protected]:~$ date^L 
-bash: dateclear: command not found 
[email protected]:~$ ^L 
# screen effectively redrawn 

Với bind -x $'"\C-l":clear;' trong ~/.bashrc:

[email protected]:~$ date^L 
# screen redrawn and the top line is now: 
[email protected]:~$ date 

Và bây giờ tôi đã không thể nhận được kết quả tương tự như bind -x chỉ sử dụng các tập tin inputrc ...

Sửa

tôi thấy rằng trong một số trường hợp clear-screen đã không làm việc cho tôi đã được gây ra bởi những nỗ lực của tôi để có được nhiều màu sắc hơn trong CLI. Ví dụ: tôi gặp sự cố với TERM=xterm-256color (hoặc screen-256color, v.v.) và xóa phần -256color đã giải quyết được sự cố.

Tôi vẫn chưa tìm ra cách để có được một hạn 256 màu làm việc cùng CTRL +l (trong xterm, urxvt, vv).

+0

Ý bạn là gì * Và bây giờ tôi đã không thể có được kết quả tương tự như bind-x chỉ sử dụng file inputrc. .. *. Bạn vẫn còn 'bind -x $ '" \ C-l ": clear;'' trong '$ HOME/.bashrc'? Bạn có nghĩa là trong. Bash chỉ thay vì văn bản khác của bạn cho thấy? –

+1

@Masi bufh