iTerm - đi một từ lùi và tiến


164

Có thể cấu hình iTerm 2 để đi lùi và chuyển tiếp một từ thông qua văn bản hiện tại trong dòng lệnh bằng phím tắt không?


14
Điều này không thực sự trả lời câu hỏi nhưng nó có liên quan: bạn có thể tùy chọn + nhấp vào bất cứ đâu trong một dòng lệnh để di chuyển con trỏ đến đó.
David Winiecki

Bỏ phiếu vì không chấp nhận câu trả lời đúng
Pi-

@ Pi- Tại sao bạn nghĩ rằng câu trả lời được chấp nhận không phải là câu trả lời đúng? 1. Nó xuất hiện gần 3 năm trước khi có nhiều phiếu nhất. 2. Nó trình bày một giải pháp không hoạt động theo mặc định.
cú pháp

Câu trả lời:


47

Ctrl-[ bnhảy lại một từ. Bạn cũng có thể sử dụng Escthay thế hoặc Ctrl-[, và fđể đi tiếp.

Đó là Ctrl+ [phát hành và sau đó bhoặc f. Hoặc Escbhoặc f.

Thông tin thêm có thể được tìm thấy tại cuộc thảo luận khác này trên AskDifferent.


3
Điều này sẽ tốt hơn nếu có một cách để nhanh chóng quay lại nhiều từ trong khi giữ nút, trái ngược với việc phải gõ một chuỗi các phím cho mỗi từ.
dùng1717828

"Ctrl- [" là gì?
Shihao Xu

Với "Ctrl- [" Tôi có nghĩa là nhấn phím "Ctrl" và phím "[" cùng một lúc.
Volsk

323

Giết con ruồi bằng đại bác:

  • Chuyển đến Tùy chọn ... > Cấu hình > Phím
  • Nhấn Load Preset ...
  • Chọn Chỉnh sửa văn bản tự nhiên

Sau đó, bạn có thể di chuyển một từ về phía sau bằng cách sử dụng Option ⌥+ và một từ chuyển tiếp bằng cách sử dụng Option ⌥+ , di chuyển đến đầu dòng bằng fn+ và đến cuối dòng bằng fn+ . Ngoài ra, bạn có thể xóa một từ ngược bằng Option ⌥+ , xóa toàn bộ dòng bằng Command ⌘+ .

Nếu cài đặt trước không xuất hiện, cài đặt lại iTerm2. Nếu bạn đã cài đặt nó bằng Homebrew + Cask:

brew cask reinstall iterm2

48
Đây phải là câu trả lời được chấp nhận!
Guyarad

3
Điều này không làm việc cho tôi. Thông số: iTerm2 3.1.2, macOS 10.12.6, Bàn phím tiếng Đức. Và tôi không cô đơn ...
t0r0X

2
Điều này là tuyệt vời và sẽ thêm hầu hết các nhu cầu của bạn. Tuy nhiên, nó không thêm 'đi đến bắt đầu / kết thúc dòng thông qua CMD + mũi tên trái / mũi tên phải`. Đối với hành động đó, xem: stackoverflow.com/questions/6205157/
Kiếm

36
Cuộc sống của tôi đã thay đổi sau khi tôi thấy câu trả lời này. Tôi ly dị vợ, giờ tôi đang ở Lambo với một siêu mẫu.
Dragos Rizescu

12
Lưu ý rằng đây là Tùy chọn> Cấu hình > Khóa> Tải cài đặt trước không phải Tùy chọn> Phím> Tải tùy chọn
kevin

148

Tôi thích các thiết lập sau đây.

  1. Tùy chọn> Khóa (hoặc Tùy chọn> Cấu hình> Phím)
  2. Nhấp vào dấu cộng.

tiến về phía trước một từ

option+right
send escape sequence
f

lùi lại một từ

option+left
send escape sequence
b

xóa để bắt đầu từ ( tín dụng )

option+delete
send hex code
0x1B 0x08

xóa đến hết từ

fn+option+delete
send escape sequence
d

(Tôi không nhớ chắc chắn, nhưng tôi nghĩ rằng tôi đã sao chép câu trả lời này từ câu trả lời của jherran bên dưới và thêm vào đó. Tôi nên thêm thông tin bổ sung trong các bình luận hoặc đề xuất chỉnh sửa câu trả lời đó. tình hình, nhưng bây giờ nó đã được biết đến.)


2
Trên MacOS 10.12, tôi cần sử dụng mã hex 0x17 để xóa từ đầu
midopa

hoạt động như một cơ duyên với macOS 10.12 và zsh
Sébastien

1
câu trả lời hay nhất từ ​​trước đến giờ bạn có bia từ tôi :)
vô cùng

1
Xem xét nâng cao câu trả lời của jherran. Tôi nghĩ rằng tôi chỉ cải thiện câu trả lời của họ một chút và có lẽ nên đề xuất một chỉnh sửa thay vì tạo câu trả lời của riêng tôi. Tôi cảm thấy như mình đã đánh cắp nó.
David Winiecki

Tham khảo điều này : để làm Esc-b, tôi phải gửi 0x1b 0x42và đối với Esc-f, tôi phải gửi 0x1b 0x46: D
Meredith

36

Để chuyển tiếp (Alt-f), lùi (Alt-b) và xóa (Alt-d) Word

  1. Mở iTerm.
  2. Chuyển đến iTerm> Tùy chọn ...> Cấu hình> Phím
  3. Trong Phím tắt hồ sơ, bấm vào dấu +.
  4. Nhập phím tắt của bạn (tùy chọn-b, tùy chọn-f, tùy chọn-d, tùy chọn bên trái, v.v.)
  5. Đối với hành động, chọn Gửi chuỗi thoát.
  6. Viết b, d hoặc f trong trường đầu vào.

Điều này hoạt động ít nhất cho bash. Đối với zsh có những cách khác để điều hướng.


2
Tôi đã cố gắng thêm tùy chọn + phím tắt bên phải và nhận được thông báo cảnh báo về xung đột, vì tôi không nhận ra rằng bạn có thể định cấu hình các phím cả trong Tùy chọn> Phím> Phím tắt toàn cầu và cả Tùy chọn> Cấu hình> Phím> Phím tắt hồ sơ. Cấu hình nó trong cấu hình mặc định làm việc.
David Winiecki

1
Nó hoạt động cho zsh là tốt!
Andrii Abramov

2
Tôi nghĩ rằng câu trả lời của bạn (cho cùng một giải pháp) là dễ hiểu nhất +1
nzaleski

1
Giải thích rất hữu ích.
Conti

Hoàn hảo. Bạn cũng có thể sử dụng Command + F, v.v ... để phím "Alt" ở cùng một vị trí và không cần điều chỉnh khi chuyển đổi giữa PC và Mac.
Friederbluemle

12

Tương tự như các câu trả lời khác, nhưng đối với Zsh, tôi phải mất một thời gian để tìm thấy điều này:

Nếu bạn đang sử dụng Zsh, như Oh My Zsh, trong iTerm, hãy truy cập: Tùy chọn> Cấu hình > Menu phụ Phím

Nhấp vào + ký

Thêm kết hợp phím tắt của bạn, chọn "Gửi chuỗi thoát"

đầu vào bên trái và bên phải dưới đây.

trái:

[1;5D

đúng:

[1;5C

1
Bạn đã cứu người bạn đời của tôi
thibaut noah

Đây là giải pháp duy nhất hiệu quả với tôi
Bryji

Cuối cùng, một giải pháp đơn giản có hiệu quả: D Cảm ơn bạn đã chia sẻ nó với chúng tôi!
Periback

Đây nên là câu trả lời. Nâng cao.
giờ

2

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

Mở tùy chọn

Định cấu hình phím Tùy chọn bên trái (và / hoặc) để gửi Esc +

Nếu bạn nhầm với các cài đặt trước của mình, bạn có thể cần tải cài đặt sẵn mặc định (hãy cẩn thận, điều này có thể xóa sạch các phím bấm tùy chỉnh của bạn!)

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

Nếu bạn thấy các ký tự lạ sau khi thực hiện việc này, bạn có thể cần định cấu hình ~ / .inputrc hoặc / etc / inputrc của bạn

Thêm phần này vào ~ / .inputrc:

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

ví dụ đầy đủ inputrc:

# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and `info rluserman' for more information.

# Be 8 bit clean.
set input-meta on
set output-meta on

# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.

# set convert-meta off

# try to enable the application keypad when it is called.  Some systems
# need this to enable the arrow keys.
# set enable-keypad on

# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys

# do not bell on tab-completion
# set bell-style none
# set bell-style visible

# some defaults / modifications for the emacs mode
$if mode=emacs

# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line

# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert

# mappings for "page up" and "page down" to step to the beginning/end
# of the history
# "\e[5~": beginning-of-history
# "\e[6~": end-of-history

# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word

$if term=rxvt
"\e[7~": beginning-of-line
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif

# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line

# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line

$endif

Hoàn hảo ... tks.
paivaric

2

Bạn có thể đặt thiết bị đầu cuối của mình ở chế độ vi set -o viđể có thể sử dụng các lệnh chuyển động vi thông thường (thêm dòng vào .bash_profileđể lưu cài đặt vĩnh viễn.)

Vì vậy, như trong vi, bạn có thể nhấn Esc, sau đó bđể di chuyển một từ lùi ( wđể chuyển tiếp), đi đến đầu dòng với 0hoặc tìm kiếm một ký tự lùi với F+ char.

Nhấn iđể trở về chế độ Bình thường và chèn.

Những người quen thuộc với vi có thể làm nhiều hơn nữa. Một tờ cheat có thể được tìm thấy ở đây .


2
vim giải quyết mọi thứ! : D
Breno Salgado

Đánh Escsau đó Ichỉ cần đi một lần đến đầu dòng là hơi thuận tiện hơn Ctrl-a- trường hợp sử dụng này xảy ra thường xuyên khi bạn chỉ muốn sửa đổi tên lệnh. Vì vậy, tôi sử dụng chế độ vi với một số thay đổi liên kết phím trong iTerm2 để ánh xạ Ctrl-Avà tương tự như chuỗi thoát Esc+0. Bằng cách đó, những trường hợp này thậm chí còn nhanh hơn khi nó kết thúc ở chế độ chỉnh sửa.
rfabbri

-1

Với iTerm2 3.1.4, tôi có thể thiết lập các mục sau mà không cần thêm ánh xạ khóa riêng lẻ.

  1. Chuyển đến Tùy chọn> Cấu hình> Phím
  2. Trái / Phải ⌥ Phím: Chọn Esc +

Với phiên Terminal mới, giờ bạn có thể sử dụng:

Option ⌥+ fđể chuyển tiếp

Option ⌥+ bđể chuyển tiếp

Option ⌥+ Delete ⌫để xóa Word


2
Làm thế nào điều này khác với câu trả lời được bình chọn cao khác? apple.stackexchange.com/a/293988/237
user151019
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.