it-swarm-ru.tech

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

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

Но есть ли способ перейти слово за словом, как Alt+/ в приложениях Какао делает?

720
Arne

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

522
Kristian J.

В 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 убрать слово назад из позиции курсора
384
Varun Katta

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

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

  • esc+B (оставил)
  • esc+F (право)

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

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

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

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

273
Fil

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

157
cwd

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

option
option

Также ctrle приведет вас к концу линии и ctrla приведет вас к началу.

142
mdubez

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

78
Peter Hilton

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

38
Mecki

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

set -o vi

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

14
jches

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

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

14
Matt

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

12
Chris Page

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

8
Andy Lynch

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

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

Keyboard system preferences

3
qix

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

2
Dan Alboteanu

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

 enter image description here

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

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

0
Dziamid