Есть ли способ в OS X Terminal перемещать курсор по слову?

Я знаю комбинацию Ctrl + A, чтобы перейти к началу текущей команды, и Ctrl + E, чтобы перейти к концу.

Но есть ли способ прыгать слово за словом, например Alt + / в Cocoa приложениях?

611
задан 17 сент. '08 в 11:57
источник поделиться
11 ответов

Из коробки вы можете использовать довольно причудливый Esc + F для перехода к началу следующего слова и Esc + B, чтобы перейти к началу текущего слова.

432
ответ дан 17 сент. '08 в 12:04
источник

В Mac OS X - по умолчанию работают следующие быстрые клавиши. Обратите внимание, что вы должны сделать Option ключ как Мета в настройках терминала (под вкладкой клавиатуры)

  • alt ⌥ + F для перехода F вперед
  • alt ⌥ + B для перехода B назад словом

Я заметил, что стандартные привязки ключей emacs для простой текстовой навигации, похоже, работают с оболочками bash. Вы можете использовать

  • alt ⌥ + D, чтобы удалить слово, начинающееся с текущей позиции курсора.
  • ctrl + A, чтобы перейти к началу строки
  • ctrl + E, чтобы перейти к концу строки
  • ctrl + K, чтобы убить строку, начинающуюся с позиции курсора.
  • ctrl + Y для вставки текста из буфера уничтожения
  • ctrl + R, чтобы отменить поиск команд, введенных в прошлом из истории.
  • ctrl + S для пересылки поиска (работает в zsh для меня, но не bash)
  • ctrl + F для перемещения вперед по char
  • ctrl + B для перемещения назад char
  • ctrl + W, чтобы удалить слово назад из положения курсора.
263
ответ дан 04 апр. '11 в 22:00
источник

Здесь вы можете сделать это

По умолчанию терминал имеет эти ярлыки для перемещения (влево и вправо) по одному слову:

  • esc + B (слева)
  • esc + F (справа)

Вы можете настроить alt + и для генерации этих последовательностей для вас:

  • Открыть настройки терминала (cmd + ,);
  • На вкладке "Параметры" выберите "Клавиатура" и дважды щелкните ⌥ ←, если он там, или добавьте его, если это не так.
  • Задайте модификатор по желанию и введите ярлык в поле: esc + B, создав текст \033b (вы не можете вводить этот текст вручную).
  • Повторить для word-right (esc + F становится \033f)

В качестве альтернативы вы можете ссылаться на это сообщение в блоге по адресу textmate:

http://blog.macromates.com/2006/word-movement-in-terminal/

255
ответ дан 17 сент. '08 в 12:01
источник

Переключитесь на iTerm2. Это бесплатно и намного приятнее обычного старого терминала. Кроме того, он имеет гораздо больше возможностей для настройки, например сочетания клавиш.

Также мне нравится, что вы можете использовать cmd и 1-9 для переключения между вкладками. Попробуйте, и вы никогда не вернетесь к регулярному терминалу:)

Как настроить пользовательские настройки клавиатуры в iterm2

  • Установите iTerm2
  • Запустите, а затем перейдите в панель предпочтений.
  • Выберите вкладку профилей клавиатуры.
  • Вам нужно будет либо скопировать профиль в нечто новое, а затем удалить ярлыки со стрелками, например ^ right / left arrow, или если вам не нужна резервная копия, просто удалите их из профиля по умолчанию.
  • Далее убедитесь, что выбран ваш измененный профиль (отмечен)

Изображение 1.png

  • Теперь выберите вкладку клавиатуры (очень верхняя строка)

iTerm 2

  • Нажмите кнопку "плюс", чтобы добавить новую комбинацию клавиш
  • В первом поле введите CMD + left arrow
  • Во втором окне выберите "send escape code"
  • В третьем поле введите букву B

Изображение 2.png

  • Повторите с желаемыми комбинациями клавиш. escape + B перемещает одно слово влево, escape + f перемещает одно слово вправо.
  • вы также можете настроить cmd + d для удаления слова перед курсором с помощью escape + d

Я часто нажимал неправильную кнопку (cmd/control/alt) с помощью клавиши со стрелкой, поэтому у меня есть комбинации клавиш со стрелками, каждая из которых настроена на прыжок вперед и назад, но, пожалуйста, сделайте то, что подходит вам лучше всего.

131
ответ дан 24 нояб. '11 в 3:39
источник

На самом деле существует гораздо лучший подход. Hold и нажмите клавиши со стрелками влево или вправо для перемещения по слову. Просто как это.

option
option

Также ctrl e приведет вас к концу строки, а ctrl a приведет вас к началу.

113
ответ дан 08 дек. '12 в 20:55
источник

У меня есть Alt + / Работа: откройте "Настройки" Настройки "Клавиатура, установите запись для курсора опций влево, чтобы отправить строку в оболочку:\033b, и установите курсор вправо, чтобы отправить строку в shell:\033f. Вы также можете использовать это для других комбинаций клавиш управления.

74
ответ дан 17 сент. '08 в 12:03
источник

На самом деле это зависит от того, какую оболочку вы используете, однако большинство оболочек имеют аналогичные привязки. Связи, на которые вы ссылаетесь (например, Ctrl + A и Ctrl + E), являются связями, которые вы найдете во многих других программах, и они используются веками, BTW также работает в большинстве приложений пользовательского интерфейса.

Здесь вид привязки по умолчанию для Bash:

Наиболее важные Bash Сочетания клавиш

Также обратите внимание, что вы можете их настроить. Вам нужно создать файл, имя, как вам угодно, я назвал свой .bash_key_bindings и поместил его в свой домашний каталог. Там вы можете установить некоторые общие параметры Bash, и вы также можете установить привязки клавиш. Чтобы убедиться, что они применяются, вам необходимо изменить файл с именем ".bashrc", который Bash читает при запуске (вы должны создать его, если он не существует) и сделать следующий вызов там:

bind -f ~/.bash_key_bindings

~ означает домашний каталог в bash, как указано выше, вы можете назвать файл по своему усмотрению, а также поместить его туда, где вам нравится, пока вы кормите правильный путь + имя для привязки.

Позвольте мне показать вам некоторые фрагменты моего файла .bash_key_bindings:

set meta-flag on
set input-meta on
set output-meta on
set convert-meta off
set show-all-if-ambiguous on
set bell-style none
set print-completions-horizontally off

Они просто установили несколько параметров (например, отключите звонок, это можно просмотреть на веб-странице Bash).

"A": self-insert
"B": self-insert
"C": self-insert
"D": self-insert
"E": self-insert
"F": self-insert
"G": self-insert
"H": self-insert
"I": self-insert
"J": self-insert

Это гарантирует, что только символы просто ничего не делают, кроме того, что символ "набран" (они вставляются в оболочку).

"\C-dW": kill-word
"\C-dL": kill-line
"\C-dw": backward-kill-word
"\C-dl": backward-kill-line
"\C-da": kill-line

Это довольно интересно. Если я ударил только Ctrl + D (я выбрал d для удаления), ничего не происходит. Но если я затем наберем нижний регистр w, слово слева от курсора будет удалено. Однако, если я печатаю верхний регистр, слово справа от курсора будет убито. То же самое касается l и L относительно всей строки, начинающейся с курсора. Если я нахожу "a", вся строка фактически удаляется (все до и после курсора).

Я переместил одно слово вперед на Ctrl + F и одно слово назад на Ctrl + B

"\C-f": forward-word
"\C-b": backward-word

Как вы можете видеть, вы можете сделать ярлык, который приведет к немедленному действию, или вы можете создать его, который просто вводит последовательность символов, а затем вы должны ввести один (или несколько) символов, чтобы вызвать действие выполняются, как показано в примере выше.

Итак, если вас не устраивают привязки по умолчанию, не стесняйтесь настраивать их по своему усмотрению. Здесь ссылка на руководство Bash для получения дополнительной информации.

36
ответ дан 18 сент. '08 в 0:19
источник

Если вы отметите Use option as meta key на вкладке клавиатуры предпочтений, то команды стиля emacs по умолчанию для прямого и обратного слова и ⌥F (Alt + F) и ⌥B ( + B) соответственно.

Я бы рекомендовал прочитать От Bash до Z-Shell. Если вы хотите увеличить свою bash/zsh доблесть!

13
ответ дан 17 сент. '08 в 12:09
источник

Если вы являетесь пользователем Vim, вы можете попробовать bash vim mode. Запустите это или поместите в свой файл ~/.bashrc:

set -o vi

По умолчанию вы находитесь в режиме вставки; и вы можете перемещаться так же, как в обычном режиме Vim, поэтому движение по слову w или b, и обычные клавиши перемещения также работают.

12
ответ дан 12 авг. '11 в 2:03
источник

Как и в Mac OS X Lion 10.7, Terminal сопоставляет Option - Left/Right Arrow до Esc - b/f по умолчанию, поэтому теперь он встроен для bash и других программ, которые используют эти emacs- совместимые сочетания клавиш.

11
ответ дан 12 авг. '11 в 4:03
источник

В Bash они привязаны к Esc - B и Esc - F. Bash имеет много и больше клавишных клавиш; посмотрите на вывод bind -p, чтобы узнать, что они собой представляют.

6
ответ дан 17 сент. '08 в 12:08
источник

Другие вопросы по меткам или Задайте вопрос