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

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

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

Ответ 1

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

Ответ 2

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

Ответ 3

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

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

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

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

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

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

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

Ответ 4

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

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

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

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

Picture 1.png

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

iTerm 2

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

Picture 2.png

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

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

Ответ 5

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

option
option

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

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

Ответ 9

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

set -o vi

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

Ответ 10

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

Ответ 11

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

Ответ 12

Используйте пресет редактирования естественного текста!

enter image description here

По сути, он связывает, среди других последовательностей клавиш, Option + LeftArrow с последовательностью ^[b и Option + RightArrow с ^[f

Это работает в рыбе и баш, а также в терминале PSQL.

Ответ 13

В разделе iterm2 Настройки"> "Профиль"> "Ключи" щелкните " + под " iterm2 клавиш" и запишите новый ярлык. В поле "Действие" выберите " Send Escape Sequence и введите b или f для перемотки вперед и назад соответственно.

Когда я попытался записать один для (Ctrl + ), я заметил в поле " Сочетание клавиш", что стрелка так и не появилась. Оказывается, мне пришлось сначала отключить системные настройки Mac по умолчанию > Клавиатура> Сочетания клавиш> Сочетания клавиш управления полетами, чтобы все заработало, так как они переопределяют сочетания клавиш iterm2 по умолчанию. Должно быть верно и для стандартного приложения терминала.

Keyboard system preferences

Ответ 14

Удерживая клавишу "Option", щелкните, куда вы хотите переместить курсор

Ответ 15

Как уже было сказано ранее, вы можете добавить set -o vi в ~/.bashrc, чтобы использовать привязки клавиш vi/vim, или вы можете добавить следующую часть в .bashrc для перемещения с помощью Ctrl и клавиш со стрелками:

# bindings to move 1 word left/right with ctrl+left/right in terminal, just some apple stuff!
bind '"\e[5C": forward-word'
bind '"\e[5D": backward-word'
# bindings to move 1 word left/right with ctrl+left/right in iTerm2, just some apple stuff!
bind '"\e[1;5C": forward-word'
bind '"\e[1;5D": backward-word'

Чтобы запустить действие этих строк кода, либо source ~/.bashrc, либо начните новый сеанс терминала.

Постскриптум Если вы добавляете в ~/.bash_profile или ~/.profile, не забудьте заменить все экземпляры .bashrc на ваш измененный файл.

Ответ 16

Новый ответ для пользователей iTerm2 Build 3.3.4:

Шаг 1: (macOS X) Системные настройки> Клавиатура> вкладка "Ярлыки"> Выбрать "Управление полетом" (левая панель)> Снимите флажки с ярлыков "Переместить влево пробел" и "Переместить вправо пробел"

Шаг 2: (iTerm2 Build 3.3.4) Предпочтения> Профили> Выбрать * По умолчанию (левая панель)> Вкладка "Ключи"> Удалить записи "⌥->" и "⌥ & lt; -"> Установить оба ключа "Левая опция (⌥)": "и" Правая клавиша (⌥): "Esc+

Не возиться с профилями оболочки, не возиться с подчиненным терминалом masOS (по умолчанию), не неловко Esc+ F/B, промыть и повторять бессмысленно.

Сделка сделана !!!

Наслаждайтесь этим советом, мои товарищи ПРОГРАММИСТЫ!