Bash: Làm thế nào để tôi di chuyển con trỏ sang trái một từ một lúc?


14

Trong OSX tôi chỉ có thể giữ optionphím và nhấn phím con trỏ bên trái cho đến khi tôi nhận được từ tôi cần chỉnh sửa (hoặc trong Vi tôi chỉ có thể nhấn b, nhưng tôi chưa thể tìm ra cách thực hiện điều này trong Terminal chưa...


Bạn có thể xem danh sách đầy đủ các ràng buộc về đường đọc trên trang này , bao gồm các hướng dẫn cách tùy chỉnh các ràng buộc của riêng bạn.
jasonwryan

Câu trả lời:


26

Để đặt ràng buộc khóa: Trước tiên, bạn phải tìm ra mã khóa nào mà chuỗi khóa Ctrl+ Lefttạo. Chỉ cần sử dụng lệnh catđể tắt bất kỳ sự can thiệp nào với các ràng buộc khóa hiện có, sau đó nhập chuỗi khóa. Trong hệ thống của tôi (Linux), nó trông như thế:

$ cat
^[[1;5D

Nhấn Ctrl+ dđể thoát mèo. Bây giờ bạn đã phát hiện ra rằng Ctrl-Left phát hành 6 mã khóa:

  • Thoát (^ [)
  • [
  • 1
  • ;
  • 5
  • D

Bây giờ bạn có thể ban hành lệnh liên kết:

bind '"\e[1;5D": backward-word'

6
Bạn có thể thêm `` "\ e [1; 5D": từ ngược '' vào $ HOME / .inputrc để có hiệu lực vĩnh viễn nếu bạn muốn.
llhuii

@llhuii +1, tôi quên đề cập đến điều đó!
daniel kullmann

2
+1 cho cách linh hoạt nhất để liên kết các tổ hợp phím tùy ý ở bất cứ đâu!
Irfy

14

Hàm bash bạn muốn là backward-word. Bạn có thể chạy bind -q backward-wordđể lấy danh sách các khóa liên kết với chức năng đó. Một ràng buộc phổ biến là Esc+b

Ngoài ra, nhiều thiết bị đầu cuối hỗ trợ Ctrl+ Left(cùng một phím nóng bạn có thể sử dụng trong X để nhảy lùi theo từ)


1
Ok, nó trả về backward-word can be invoked via "\eb".nhưng làm cách nào để liên kết điều khiển + Trái thay vì Esc + b? Ngoài ra, một nhược điểm của Esc + b tôi có thể thấy là tôi phải bật phím Esc mỗi khi tôi có thể quay lại một từ, có cách nào tốt hơn không?
nipponese

1
Có cách nào tốt hơn? Đương nhiên: set editing-mode vi:)
jasonwryan

3
@nipponese "esc b" cũng có thể được sử dụng trên bàn phím dưới dạng ALT-b. Điều này có thể cần phải cụ thể là alt bên trái hoặc bên phải tùy thuộc vào cấu hình của bạn, vì vậy hãy thử cả hai.
Random832

8

Phím tắt mặc định trong Bash cho backword-wordAlt+ b. Kết quả tương tự có thể đạt được với Esc+ b. Bạn nên thử trước khi chỉnh sửa bàn phím của bạn.

Sử dụng bindlệnh để chỉnh sửa hoặc bind -q [name]nhận keybind hiện tại của một hành động cụ thể.


2
... và chuyển tiếp -Alt + f
Putnik
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.