Emacs keybindings trong zsh không hoạt động (Ctrl-A, Ctrl-E)


17

Phím bấm Emacs của tôi zshkhông hoạt động ( CtrlA, CtrlE). Tôi sử dụng zshtrên OS X.

Họ có thể bị ràng buộc với một số điều khác. Tôi hiện đang sử dụng oh-my-zsh .

Và tôi .zshrckết thúc ở đây .

nhập mô tả hình ảnh ở đây


@rene Xong rồi! thx cho lời khuyên! : D
Takehiro Adachi

Từ ảnh chụp màn hình tôi tập hợp bạn đang ở trên Mac OS X? Tôi có cùng một vấn đề trong thiết bị đầu cuối. Ctrl + A / E / K đã được sử dụng trong HĐH đó (để sử dụng trong các trường văn bản trong GUI), điều này có thể giải thích điều này.
Henno

@Henno thật sao? Tôi đang sử dụng zsh atm và khi tôi sử dụng bash, ctrl + a (đi đến char đầu tiên của dòng) và ctrl + e (đi đến cuối dòng) hoạt động tốt. Nhưng khi tôi sử dụng zsh, nó giống như ảnh chụp màn hình. vì vậy tôi nghĩ đó là vấn đề của zsh, không phải HĐH :(
Takehiro Adachi

@TakehiroAdachi cố định của bạn cũng làm việc cho tôi!
Henno

@Henno Tuyệt vời: D!
Takehiro Adachi

Câu trả lời:


21

Tôi đã giải quyết vấn đề. Có vẻ như oh-my-zsh đã ghi đè các phím bấm mặc định.

Khi tôi thêm vào dòng dưới đây vào cuối của tôi .zshrc, CtrlECtrlAlàm việc:

bindkey -e

thật tuyệt, làm việc cho tôi quá
Henno

5

Nói chung, bạn có thể tìm mã của một phím bằng cách gõ CtrlVvà phím. Sau đó, bạn có thể sử dụng phím này bindkeyđể ánh xạ nó tới zshchức năng bàn phím (ví dụ beginning-of-line).

Trong trường hợp cụ thể của bạn đó sẽ là CtrlV CtrlACtrlV CtrlE.

Sau đó, bạn có thể đặt mã trong .inputrc, hệ thống /etc/inputrchoặc .zshrcnhư thế này:

bindkey '^A' beginning-of-line
bindkey '^E' end-of-line

Điều này làm việc cho các phím khác quá. Ví dụ, tôi đã có một số rắc rối với HomeEnd.

Bạn sẽ có thể sử dụng thủ thuật này trong bất kỳ phiên cuối nào: tty,

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.