Làm cách nào tôi có thể kiểm soát + mũi tên trái để quay lại một từ trong iTerm2?


114

Tôi đã đọc hướng dẫn sử dụng Linux và tôi nhận thấy rằng nó có thể sử dụng control + left và control + right để di chuyển tiến và lùi các từ trong terminal trong khi chỉnh sửa.

"Nhấn Ctrl cộng với phím mũi tên Trái hoặc Phải di chuyển lùi hoặc chuyển tiếp một từ tại một thời điểm, cũng như nhấn Esc và sau đó B hoặc F."

Trên OS X control+leftcontrol+rightthường kiểm soát không gian. Tôi đã vô hiệu hóa những người. Tôi cũng đã thử sử dụng ngăn tùy chọn để đặt các phím tắt:

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

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

Tuy nhiên, điều này không hoạt động và gây ra lỗi này:

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

Ngoài ra, nếu tôi ở iTerm và sử dụng alt+escapethì B hoặc F nhân vật di chuyển qua lại. Điều này đã xảy ra trước khi bất kỳ thay đổi cấu hình của tôi. Nhưng tôi thực sự muốn có thể sử dụng điều khiển + các phím mũi tên.


Ngẫu nhiên, một cách khôn ngoan hơn để đạt được điều này có thể chỉ đơn giản là ánh xạ lệnh + trái và lệnh + phải thay vì ctrl + trái và ctrl + phải. Tôi không cần phải vô hiệu hóa mọi thứ trên toàn hệ thống để thực hiện điều này.
Bác sĩ Mohawk

Câu trả lời:


135

bash

Chỉ cần thêm vào như sau ~/.inputrc:

"\e[1;5D": backward-word
"\e[1;5C": forward-word

Xem bài viết Wiki lưu trữ này để biết thêm giải thích. Nếu bạn muốn sử dụng altkhóa thay vì chuyển động từng từ (như hành vi mặc định của OS X), hãy sử dụng:

"\e[1;9D": backward-word
"\e[1;9C": forward-word

zsh

zsh theo mặc định không sử dụng readlinethư viện và do đó sẽ không đọc ~/.inputrc. Để có được chức năng tương tự, bạn có thể thêm phần sau vào ~/.zshrc- cái này sẽ sử dụng altkhóa:

bindkey -e
bindkey '^[[1;9C' forward-word
bindkey '^[[1;9D' backward-word

Xem tài liệu này để biết thêm về trình soạn thảo dòng zsh tích hợp (zle).


Tại sao lại thế này? Bạn đã thiết lập hồ sơ của mình để sử dụng mặc định Xterm:

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

Đây là lý do tại sao bạn sẽ cần phải "bắt" trình tự này và cho biết readlinephải làm gì.


Nếu cách trên vẫn không hoạt động và bạn đang sử dụng OS X 10.9 (Mavericks) hoặc ở đó, bạn có thể cần phải tắt các phím tắt Điều khiển nhiệm vụ toàn cầu để ngăn các phím mũi tên Control + chạm tới iTerm, ngay cả khi chính Mission Control bị vô hiệu hóa. Bạn có thể làm như vậy từ Tùy chọn hệ thống → Bàn phím → Phím tắt → Điều khiển nhiệm vụ :

nhiệm vụ kiểm soát bàn phím


4
Tôi cố gắng làm theo hướng dẫn để làm cho các phím alt + trái và alt + phải hoạt động. Tôi đã thêm hai dòng vào tệp .inputrc của mình, nhưng điều duy nhất xảy ra khi tôi nhấn các phím là "D" hoặc "C" được in vào vỏ. Tôi đang sử dụng iTerm2 với vỏ zsh. Có ý kiến ​​gì không?
Flo

1
@Flo Hãy thử thêm các dòng bindkey -e, bindkey '^[[1;9C' forward-wordbindkey '^[[1;9D' backward-wordđể bạn ~/.zshrcthay thế. IIRC zsh sẽ không đọc .inputrc- hoặc ít nhất là nó hoạt động với tôi theo cách này.
slhck

2
Không hoạt động với tôi với ctrl-left / right + bash, nhưng hoạt động tốt nếu tôi thiết lập nó cho alt-left / right.
Dalin

3
Đã thêm một chỉnh sửa về các phím tắt Mission Control ngăn bất kỳ thứ nào trong số này hoạt động theo cách mờ đục nhất. Hy vọng rằng nó sẽ cứu ai đó khỏi phải trải qua điều tương tự mà tôi vừa làm ...
rubyruy

12
Đối với OSX + zsh + iTerm2 + ctrl-trái / phải, hãy sử dụng như sau:bindkey -e; bindkey '\e\e[C' forward-word; bindkey '\e\e[D' backward-word
Artur Bodera

45

Giải pháp làm việc cho zsh. Đơn giản, đơn giản, vượt trội.

  1. Đi đến: ⌘, Preferences → Profiles → Keys → Keyboard Behavior

  2. Tải đặt trước: Natural Text Editing

Tải đặt trước "Chỉnh sửa văn bản tự nhiên"


Cảm ơn @Happy Tortker, tôi tin rằng câu trả lời tốt nhất chủ yếu là vì tôi không có Terminal.app đơn giản vì vậy tôi không muốn sửa đổi bash / zsh, chỉ muốn làm việc mọi thứ như trong Terminal.app.
galuszkak

Điều này này này. Cảm ơn bạn rất nhiều cho giải pháp này! Tôi đã trải qua quá trình điên cuồng này với mỗi máy Mac tôi nhận được. Bây giờ tôi biết cách đơn giản nhất để thực hiện điều này. Cảm ơn bạn!
vernonk

8

Tôi đã sửa nó theo cách này:

Trong menu trên cùng; đi đến

Profiles 
-> Open profiles... 
-> Edit profiles... (button) 
-> Keys (tab) 
-> Load Preset... (dropdown) 
->  Choose "Natural text editing". Done! :-)

tất cả những gì tôi có theo cài đặt trước đó là "Mặc định của nhà máy"
MaylorTaylor

7

Tôi đã sử dụng một cách tiếp cận khác. Sử dụng BetterTouchTool Tôi đã lập trình một phím tắt tùy chỉnh cho iTerm2. Khi tôi nhấn alt-left trong iTerm2, nó sẽ gửi phím tắt ctrl-left với hành động "Gửi phím tắt cho ứng dụng cụ thể". Ứng dụng này là iTerm2. Tôi đã làm tương tự cho ánh xạ alt-right sang ctrl-right.

Hiệu quả là việc nhấn alt-left hoặc alt-right trong iTerm sẽ gửi ctrl-left hoặc ctrl-right trực tiếp tới iTerm2, bỏ qua phím tắt trên toàn hệ thống thông thường để di chuyển máy tính để bàn sang trái hoặc phải. Như thế này, tôi có hành vi mac điển hình trong iTerm2, trên các phiên thiết bị đầu cuối cục bộ, nhưng cũng trên các phiên SSH từ xa và tôi có thể sử dụng ctrl-left / ctrl-right tiêu chuẩn để di chuyển đến các máy tính để bàn khác nhau. Tôi đã viết nó lên đây:

http://www.callum-macdonald.com/2013/04/17/ctrl-left-and-ctrl-right-on-iterm2/


2
BetterTouchTool không phải là nguồn mở và rất có thể đang làm những điều bạn muốn nó không phải là. Chàng trai nói rằng anh ta là một sinh viên nhưng anh ta cũng có thể là một công ty ba chữ cái.
di dời

7

Trên thực tế, tôi đã tìm thấy giải pháp đơn giản nhất là vào cài đặt hồ sơ của mình (tìm thấy trong Hồ sơ / Khóa), xóa các phím tắt hồ sơ vi phạm (vì hồ sơ ghi đè toàn cầu trong iTerm), trong trường hợp của tôi là alt + left và alt + phải và sau đó là toàn cầu phím tắt làm việc hoàn hảo cho tôi!

Ngoài ra, nếu bạn đang sử dụng OS X, có lẽ tốt nhất là sử dụng các phím tắt trên toàn hệ thống, tức là sử dụng alt + trái và alt + phải thay cho mục đích này, có hành vi khác nhau trong thiết bị đầu cuối chắc chắn sẽ gây ra đau đớn.

Khác với giải pháp sử dụng Better Touch Tool của chmac là một cách thanh lịch để thay đổi hành vi của điều khiển + mũi tên chỉ trong vòng lặp.


thực sự đây là giải pháp tốt nhất Thật khó hiểu khi hầu hết chúng ta đi đến Keystab. Thay vào đó, chúng ta phải chuyển đến Profilestab -> Cấu hình (ví dụ: mặc định) -> phím.
Paschalis

Đây chắc chắn là giải pháp an toàn và dễ dàng nhất.
di dời

2

Bài đăng này dạy các phím tắt này và các phím tắt khác là ⌥ ← Xóa để xóa một từ:

http://elweb.co/making-iterm-2-work-with-n normal-mac-osx-keyboard-shortcut /


Điều này không thực sự trả lời câu hỏi, đó là về việc sử dụng <ctrl> <left>
DavidPostill

Tất cả bạn phải làm là sử dụng các phím tắt phù hợp với nhu cầu của bạn. "<ctrl> <left>" hoặc bất cứ điều gì bạn muốn.
Seralto

1
Vì vậy, vui lòng trích dẫn các phần thiết yếu của câu trả lời từ (các) liên kết tham chiếu, vì câu trả lời có thể trở nên không hợp lệ nếu (các) trang được liên kết thay đổi.
DavidPostill

1

Bạn cần đi vào Profilestab và xóa ánh xạ cho alt+ leftalt+ righttheo mặc định, nó xuất ra một số giá trị hex.


Điều này đã làm điều đó cho tôi!
Philip
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.