Есть ли способ в OS X Terminal перемещать курсор слово за словом? - PullRequest
720 голосов
/ 17 сентября 2008

Мне известна комбинация Ctrl + A для перехода к началу текущей команды и Ctrl + E для перехода к концу.

Но есть ли способ переходить слово за словом, как Alt + & larr; / & rarr; в приложениях Cocoa?

Ответы [ 14 ]

521 голосов
/ 17 сентября 2008

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

384 голосов
/ 04 апреля 2011

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

  • 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 , чтобы двигаться вперед на чарре
  • ctrl + B для перемещения назад на символ
  • ctrl + W для удаления слова назад из позиции курсора
272 голосов
/ 17 сентября 2008

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

По умолчанию Терминал имеет следующие комбинации клавиш для перемещения (влево и вправо) слово за словом:

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

Вы можете настроить alt + & larr; и & rarr; , чтобы сгенерировать эти последовательности для вас:

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

Кроме того, вы можете обратиться к этому сообщению в блоге на textmate:

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

157 голосов
/ 24 ноября 2011

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

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

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

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

Picture 1.png

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

iTerm 2

  • Нажмите кнопку «плюс», чтобы добавить новое сочетание клавиш
  • В первом поле введите CMD + Стрелка влево
  • Во втором поле выберите «отправить код выхода»
  • В третьем поле введите букву B

Picture 2.png

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

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

142 голосов
/ 08 декабря 2012

На самом деле есть гораздо лучший подход. Удерживайте option ( alt на некоторых клавиатурах) и нажимайте клавиши со стрелками влево или вправо для перемещения по слову. Все просто.

опция & LARR;
опция & rarr;

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

78 голосов
/ 17 сентября 2008

У меня есть Alt + & larr; / & rarr; работает: открыть Предпочтения »Настройки» Клавиатура , установить запись для опция курсора влево до отправить строку в оболочку: \ 033b и установить опция курсора вправо в отправить строку в оболочку: \ 033f . Вы также можете использовать это для других комбинаций управляющих клавиш.

38 голосов
/ 18 сентября 2008

На самом деле это зависит от того, какую оболочку вы используете, однако большинство оболочек имеют схожие привязки. Связывания, на которые вы ссылаетесь (например, 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 относительно всей строки, начиная с курсора. Если я наберу «а», вся строка будет фактически удалена (все до и после курсора).

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

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

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

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

14 голосов
/ 12 августа 2011

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

set -o vi

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

14 голосов
/ 17 сентября 2008

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

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

12 голосов
/ 12 августа 2011

Начиная с Mac OS X Lion 10.7, Карта терминалов Опция - Стрелка влево / вправо до Esc - b / f по умолчанию, так что теперь он встроен в bash и другие программы, использующие эти emacs-совместимые сочетания клавиш.

...