Ctrl + vấn đề phím mũi tên trái / phải


25

Sau khi hệ thống cuối cùng cập nhật lệnh ctrl + trái / phải trên thiết bị đầu cuối zsh không làm gì cả. Ngoài ra ctrl + u có gì đó không đúng vì thông thường lệnh đó sẽ xóa từ con trỏ đến đầu dòng, trong khi bây giờ xóa toàn bộ dòng .. Ai đó biết cách giải quyết những vấn đề này? cảm ơn tất cả.


Bạn đã tìm thấy bất kỳ câu trả lời chấp nhận được? Tôi nghĩ câu trả lời của Goncalo là tuyệt vời.
Léo Léopold Hertz

Câu trả lời:


44

FWIW, đây là những gì hoạt động trên môi trường của tôi (rrc5.x) bằng cách sử dụng mặc định của zsh.

bindkey "^[[1;5C" forward-word
bindkey "^[[1;5D" backward-word

5
^[^[[D^[^[[C, tương ứng, cho OSX
Jon z

1
Khẳng định, đề xuất của Goncalo cũng hoạt động trong Debian 8.5. Tôi chỉ tự hỏi tại sao mã này không được tích hợp sẵn .zshrctheo mặc định.
Léo Léopold Hertz

Hoạt động như một cơ duyên trong Ubuntu Artful, cảm ơn!
Konrad Garus

Trong trường hợp bất cứ ai muốn sử dụng $terminfothay vì các chuỗi thoát: các phím $terminfo[kLFT5]$terminfo[kRIT5]làm việc cho tôi
Griddo

14

Ctrl + U rất có thể vì bạn đã có con trỏ ở cuối dòng. Thứ hai, phiên bản Gentoo nào bạn muốn gọi là "bản cập nhật hệ thống cuối cùng"?

Và bạn muốn ctrl + trái / phải để làm gì?

  • Thêm vào cấu hình zsh:

bindkey '^[[1;5C' emacs-forward-word
bindkey '^[^[[D' emacs-backward-word

  • Và từ phế liệu cũ tôi tìm thấy (có thể giúp đỡ):

bindkey ";5C" forward-word
bindkey ";5D" backward-word

  • hoặc có một cái nhìn vào liên kết này , sẽ giúp bạn ra ngoài?

Lưu ý: Nếu cấu hình hoạt động nhưng các khóa được cho là không làm được điều bạn muốn thì có lẽ vì định nghĩa khóa khác với của bạn và của tôi, hãy làm: cat > /dev/null và nhấn các phím bạn muốn nhận ra và điều chỉnh cho phù hợp.


1
"Ctrl + U rất có thể là do bạn đã có con trỏ ở cuối dòng" tất nhiên ý tôi là khi con trỏ của tôi ở giữa. "Và bạn muốn ctrl + trái / phải làm gì?" thường là ctrl + mũi tên trái: bỏ qua từ sang trái, v.v ...
riskio

Và bạn đang sử dụng shell / terminal nào? Bạn có chắc chắn sử dụng Emacs hoặc bất kỳ thiết bị đầu cuối nào bạn thường sử dụng và / bin / bash không? bạn đang chạy qua màn hình?
Torxed

1
xin vui lòng đọc câu hỏi là có ..
riskio

1
@Masi Không chắc chắn, tôi đã trả lời hai năm trước anh ấy và câu trả lời của chúng tôi gần như giống hệt nhau, tôi chỉ cho thấy hai cách khác nhau để làm điều đó .. và bạn có thể hợp nhất cả hai để kết hợp những gì anh ấy viết.
Torxed

1
@Masi Tất cả những gì tôi biết là hồi đó (hãy nhớ, 2010-2012 .. Cách đây rất lâu) hai cái này (và nó là sự kết hợp) hoạt động với tôi trên nhiều hệ thống khác nhau. Tôi đã sử dụng cả Unix và Linux (và anh ấy đã dùng Gentoo, một hệ điều hành phát hành mới). Và vẫn còn dấu vết này trên rất nhiều ví dụ .. Chẳng hạn như kho lưu trữ này . Bây giờ, một lần nữa, tôi không chắc tại sao nhưng nó hoạt động trên ít nhất hai máy nên tôi nghĩ tôi sẽ chia sẻ nó. Và chắc chắn rằng anh ấy rõ ràng hơn NGAY HÔM NAY, và tôi không ngại anh ấy nhận được tất cả các phiếu bầu. Đây là một bài viết di sản.
Torxed

5

Những gì hoạt động không phụ thuộc trực tiếp vào distro (Gentoo, Debian, RHEL, v.v.) hoặc shell (ZSH, KSH, BASH) - nó phụ thuộc vào việc terminal emulatorđược sử dụng và cài đặt của nó: konsole, terminator, urxvt, lx-terminal v.v ... Bản phân phối có thể quan trọng nếu nó sử dụng cấu hình shell tiêu chuẩn khác (fx .zshrc) và nếu sử dụng một shell khác mà shell cấu hình trên distro đó có thể đã xử lý nó.

Dưới đây là một vài giải pháp dành riêng cho trình giả lập thiết bị đầu cuối:

urxvt / rxvt-unicode (và có thể những người khác):

bindkey "^[Od" backward-word
bindkey "^[Oc" forward-word

terminator, konsole và xterm (và có thể những người khác):

bindkey "^[[1;5D" backward-word
bindkey "^[[1;5C" forward-word

Để có cách tiếp cận tổng quát hơn, bạn bắt đầu thiết bị đầu cuối của mình, nhấn CTRL-V theo sau là tổ hợp phím bạn muốn mã thoát (tên) của - trong trường hợp này là tổ hợp phím CTRL-leftarrow và CTRL-rightarrow - và đặt đầu ra cho mỗi tổ hợp phím ở giữa hai dấu ngoặc kép.


1
Bạn đã thử đề xuất CTRL-V chưa? Có thể thiết bị đầu cuối của bạn diễn giải các tổ hợp phím khác nhau, vì vậy khóa cần được ràng buộc với các "biểu tượng" khác nhau?
miyalys

1
Tôi cập nhật câu trả lời của tôi. Có nhiều giải pháp tùy thuộc vào việc terminal emulatorsử dụng. Các distro hoặc shell không quan trọng. Đó có lẽ cũng là lý do tại sao nó không ở .zshrc, bởi vì những gì hoạt động cho một trình giả lập thiết bị đầu cuối không hoạt động cho một trình giả lập khác. Nhưng điều đó có thể được giải quyết nếu zshrc fx. đọc biến môi trường $ TERM và áp dụng các cài đặt ràng buộc khác nhau dựa trên kết quả.
miyalys

2

Giải quyết.

Thiết bị đầu cuối được sử dụng: Konsole .

Để giải quyết: nhấp chuột phải vào thiết bị đầu cuối (hoặc cài đặt trong thanh thực đơn) -> thay đổi cấu hình hiện tại -> ánh xạ bàn phím -> thay đổi thành Mặc định (xfree4)


thậm chí không thực sự liên quan đến zsh nhưng chắc chắn, một sửa chữa là một sửa chữa.
Torxed
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.