iTerm - перехід одного слова назад і вперед


164

Чи можна було б налаштувати iTerm 2 так, щоб воно переходило вперед і вперед одним словом через текст тексту в командному рядку за допомогою комбінації клавіш?


14
Це насправді не відповідає на питання, але це актуально: ви можете вибрати + натиснути будь-де в командному рядку, щоб перемістити курсор туди.
David Winiecki

Відмова від неприйняття правильної відповіді
Пі-

@ Pi- Чому ви вважаєте, що прийнята відповідь не є правильною? 1. Він з'явився майже за 3 роки до того, хто отримав більшість голосів. 2. У ньому представлено рішення, яке не працює за замовчуванням.
синтагма

Відповіді:


47

Ctrl-[ bвідскакує слово назад. Ви також можете використовувати Escнатомість або Ctrl-[, і fрухатися вперед.

Тобто Ctrl+ [випуск, а потім bабо f. Або Escі bабо f.

Більше інформації можна знайти на цій іншій дискусії на AskDifferent.


3
Це було б краще, якби був спосіб швидко повернути багато слів, утримуючи кнопку, на відміну від необхідності вводити послідовність клавіш для кожного слова.
користувач1717828

Що таке "Ctrl- ["?
Шихао Сю

Під "Ctrl- [" я маю на увазі одночасне натискання клавіші "Ctrl" та "[".
Вольськ

321

Вбивство мухи з гармати:

  • Перейдіть до Налаштування ... > Профілі > Клавіші
  • Натисніть Завантажити налаштування ...
  • Виберіть Натуральне редагування тексту

Потім ви можете перемістити слово назад за допомогою Option ⌥+, а слово вперед за допомогою Option ⌥+ , перейти до початку рядка за допомогою fn+ та до кінця рядка за допомогою fn+ . Також ви можете видалити слово назад за допомогою Option ⌥+ , видалити весь рядок за допомогою Command ⌘+ .

Якщо попередньо встановлена ​​настройка не відображається, встановіть iTerm2. Якщо ви встановили його за допомогою Homebrew + Cask:

brew cask reinstall iterm2

48
Це має бути прийнята відповідь!
guyarad

3
Це не працює для мене. Параметри: iTerm2 3.1.2, macOS 10.12.6, німецька клавіатура. І я не один…
t0r0X

2
Це чудово і додасть більшість ваших потреб. Однак він не додає "перехід до початку / кінця рядка через CMD + стрілка вліво / вправо". Для цієї дії, см: stackoverflow.com/questions/6205157 / ...
MikeyN0

35
Моє життя змінилося після того, як я побачив цю відповідь. Я розлучився зі своєю дружиною, зараз я в ламбо з супермоделем.
Драгос Різеску

12
Зауважте, що це Налаштування> Профілі > Клавіші> Завантажити попередні налаштування не Налаштування> Ключі> Налаштування завантаження
Кевін

148

Мені подобається наступна установка.

  1. Налаштування> Ключі (або Налаштування> Профілі> Клавіші)
  2. Клацніть плюс.

рухатися вперед одним словом

option+right
send escape sequence
f

повернути одне слово назад

option+left
send escape sequence
b

видалити до початку слова ( кредит )

option+delete
send hex code
0x1B 0x08

видалити до кінця слова

fn+option+delete
send escape sequence
d

(Я точно не пам'ятаю, але думаю, що я скопіював цю відповідь з відповіді jherran нижче і додав до неї більше. Я повинен був додати додаткову інформацію в коментарях чи запропонованих редакціях щодо цієї відповіді. Я не знаю, як покращити ситуація, але тепер це відомо.)


2
На MacOS 10.12 мені потрібно використовувати шістнадцятковий код 0x17, щоб отримати видалення до початку слова
midopa

працює як шарм з macOS 10.12 та zsh
Sébastien

1
найкраща відповідь, коли ти пив у мене пиво :)
нескінченність

1
Розглянемо відповідь на відповідь Джерерана. Я думаю, що я трохи покращив їх відповідь і, мабуть, повинен був запропонувати змінити, а не створювати власну відповідь. Мені здається, що я його вкрав.
Девід Вінієцький

Посилався на це : щоб зробити Esc-b, мені довелося відправити 0x1b 0x42, а для Esc-f мені довелося відправити 0x1b 0x46: D
Мередіт

36

Щоб отримати вперед (Alt-f), назад (Alt-b) та видалити (Alt-d) Word

  1. Відкрийте iTerm.
  2. Перейдіть до iTerm> Налаштування ...> Профілі> Клавіші
  3. У розділі Клавіші швидкого доступу до профілю натисніть знак +.
  4. Введіть клавішу швидкого доступу (option-b, option-f, option-d, option-left тощо)
  5. Для дії виберіть Послати послідовність втечі.
  6. Напишіть b, d або f у полі введення.

Це працює принаймні для баш. Для zsh є інші способи навігації.


2
Я спробував додати параметр + правий ярлик і отримав попереджувальне повідомлення про конфлікт, оскільки я не розумів, що ви можете налаштувати ключі як у налаштуваннях> Налаштування> Клавіші> Глобальні клавіші швидкого доступу, так і в налаштуваннях> Профілі> Клавіші> Клавіші швидкого доступу до профілю. Налаштування його в профілі за замовчуванням працювало.
David Winiecki

1
Це працює і для zsh!
Андрій Абрамов

2
Я думаю, що вашу відповідь (на те саме рішення) було найлегше зрозуміти +1
nzaleski

1
Дуже корисне пояснення.
Конті

Ідеально. Ви також можете використовувати Command + F тощо, щоб клавіша "Alt" знаходилася в одному положенні, і під час перемикання між ПК та Mac не потрібно коригувати.
friederbluemle

11

Подібно до інших відповідей, але для Zsh знадобилося певний час, щоб знайти це:

Якщо ви використовуєте Zsh, наприклад, Oh My Zsh, в iTerm, тоді перейдіть до: Налаштування> Профілі > Підменю Ключів

Клацніть + знак

Додайте комбінацію клавіш швидкого доступу, виберіть "Надіслати послідовність втечі"

вводи ліворуч і праворуч внизу.

зліва:

[1;5D

правильно:

[1;5C

1
Ви врятували мого товариша по життю
тибату Ноя

Це єдине рішення, яке працювало для мене
Bryji

Нарешті, просте рішення, яке працює: D Дякую, що поділилися ним з нами!
Перібек

Це має бути відповіддю. Отримано.
ehime

2

Ви можете встановити свій термінал в режимі vi, set -o viщоб мати можливість використовувати звичайні команди руху (додайте рядок, .bash_profileщоб зберігати налаштування постійно.)

Отже, як якщо в vi, ви можете натиснути Esc, bщоб перенести одне слово назад ( wвперед), перейти до початку рядка з 0або шукати символ назад з F+ знаком .

Натисніть, iщоб повернутися до звичайного режиму та вставити.

Ті, хто знайомий з vi, можуть зробити набагато більше. Чит-лист можна знайти тут .


2
vim вирішує все! : D
Брено Сальгадо

Удари Escпотім Iпросто йти один раз на початку рядка трохи менш зручно , ніж Ctrl-a- це випадок використання часто трапляється , коли ви просто хочете змінити назву команди. Тож я використовую режим vi з деякими змінами клавішних змін у iTerm2 для картографування Ctrl-Aі подібних до послідовності виходу Esc+0. Таким чином ці випадки ще швидші, оскільки вони закінчуються в режимі редагування.
rfabbri

1

введіть тут опис зображення

Відкрити налаштування

Налаштування лівої (та / або) правої клавіші Опція для надсилання Esc +

Якщо ви заблукали зі своїми попередніми налаштуваннями, можливо, вам доведеться завантажити попередньо встановлену програму за замовчуванням (будьте обережні, це може стерти ваші користувацькі вкладки!)

введіть тут опис зображення

Якщо після цього ви побачите дивні символи, можливо, вам знадобиться налаштувати ваш ~ / .inputrc або / etc / inputrc

Додайте це до свого ~ / .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

повний приклад 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

-1

За допомогою iTerm2 3.1.4 я зміг налаштувати наступне, не додаючи окремі відображення ключів.

  1. Перейдіть до Налаштування> Профілі> Клавіші
  2. Вліво / вправо ⌥ Клавіша: Виберіть Esc +

З новим сеансом терміналу тепер ви можете використовувати:

Option ⌥+ fЩоб рухатися вперед

Option ⌥+ bЩоб рухатися вперед

Option ⌥+ Delete ⌫Видалити слово


2
Чим це відрізняється від іншої високоголосної відповіді? apple.stackexchange.com/a/293988/237
користувач151019
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.