Я знаю комбинацию Ctrl+, Aчтобы перейти к началу текущей команды, и Ctrl+, Eчтобы перейти к концу.
Но есть ли способ переходить слово за словом, как в приложениях Какао Alt+ ←/ →?
ALT
ярлыки были добавлены в терминал в последней OS X версии.
Я знаю комбинацию Ctrl+, Aчтобы перейти к началу текущей команды, и Ctrl+, Eчтобы перейти к концу.
Но есть ли способ переходить слово за словом, как в приложениях Какао Alt+ ←/ →?
ALT
ярлыки были добавлены в терминал в последней OS X версии.
Ответы:
Из коробки вы можете использовать довольно странные Esc+, Fчтобы перейти к началу следующего слова и Esc+, Bчтобы перейти к началу текущего слова.
Esc
+» F
в конце строки или на другую комбинацию клавиш в начале строки, вместо этого просто вставляется буква. Досадно!
~/.inputrc
.
В Mac OS X - следующие сочетания клавиш работают по умолчанию. Обратите внимание, что вы должны сделать так, чтобы клавиша Option действовала как мета в настройках терминала (на вкладке клавиатуры)
Я заметил, что привязки клавиш по умолчанию в emacs для простой навигации по тексту, похоже, работают на оболочках bash. Ты можешь использовать
По умолчанию Терминал имеет следующие комбинации клавиш для перемещения (влево и вправо) слово за словом:
Вы можете настроить alt+ ←и →сгенерировать эти последовательности для вас:
⌥ ←
если она есть, или добавьте ее, если ее нет.\033b
(вы не можете набирать этот текст вручную).\033f
)Кроме того, вы можете обратиться к этому сообщению в блоге на textmate:
B
для задней или F
для вперед в Esc+
поле
alt left
и alt right
сгенерировал эти последовательности
Переключитесь на iTerm2 . Это бесплатно и намного приятнее, чем обычный старый терминал. Кроме того, он имеет гораздо больше возможностей для настройки, таких как сочетания клавиш.
Также мне нравится, что вы можете использовать cmdи 1-9 для переключения между вкладками. Попробуйте, и вы никогда не вернетесь к обычному терминалу :)
Как настроить пользовательские настройки клавиатуры в iterm2
Я часто нажимаю не ту кнопку (cmd / control/ alt) клавишей со стрелкой, и поэтому у меня есть комбинации клавиш со стрелками, все эти кнопки настроены для перехода вперед и назад по словам, но, пожалуйста, делайте то, что вам больше подходит.
Ctrl + Arrow Left
или Right
- Up
и Down
работает: / пробовал с и без нового профиля, установленного по умолчанию
На самом деле есть гораздо лучший подход. Удерживайте option( altна некоторых клавиатурах) и нажимайте клавиши со стрелками влево или вправо для перемещения по слову. Просто как тот.
option←
option→
Также ctrleприведет вас к концу линии и ctrlaприведет вас к началу.
[D
и [C
. Чтобы исправить это, добавьте bind '"[D": backward-word'
и bind '"[C": forward-word'
мой .bashrc
.
.bashrc
но это не сработало, что-то не так для меня? (Я использую RubyMine)
.bashrc
при загрузке терминала. Попробуйте echo "here"
и посмотрите, отображается ли это сообщение при открытии нового терминала. Кроме того, вы должны закрыть и заново открыть терминал или запустить, source ~/.bashrc
чтобы он прочитал новый файл.
У меня Alt+ ←/ →работает: откройте Настройки »Настройки» Клавиатура , установите запись для курсора параметра влево, чтобы отправить строку в оболочку: \ 033b , и установите курсор параметра вправо, чтобы отправить строку в оболочку: \ 033f . Вы также можете использовать это для других комбинаций клавиш управления.
Enable option as meta key
. Кстати, это очень круто. Ключ наверняка будет гораздо удобнее для достижения по сравнению с Esc + B или Esc + F
На самом деле это зависит от того, какую оболочку вы используете, однако большинство оболочек имеют схожие привязки. Привязки, на которые вы ссылаетесь (например, 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 для получения дополнительной информации.
command
код ключа? В вашем примере control
есть \C
, но как command
?
Meta
в bash ( \M
), cmd + left будет \M-\e[D
. Однако вы не можете сопоставить cmd + ... ни с чем, все сочетания клавиш обрабатываются (и, таким образом, проглатываются) самим приложением Terminal (те, которые никогда не перенаправляются в оболочку), а cmd + left отображается на «предыдущее окно», если у вас несколько окна терминала открыты. Извините, это просто невозможно с приложением Terminal.
Используйте пресет редактирования естественного текста !
По сути, он связывает, среди других последовательностей клавиш, Option + LeftArrow с ^[b
последовательностью и Option + RightArrow с^[f
Это работает в рыбе и баш, а также в терминале PSQL.
Если вы оказались пользователем Vim, вы можете попробовать режим vim в bash. Запустите это или поместите в свой ~/.bashrc
файл:
set -o vi
По умолчанию вы находитесь в режиме вставки; нажмите escape, и вы можете перемещаться так же, как и в обычном режиме Vim, поэтому перемещение по слову равно w
или b
, и обычные клавиши перемещения также работают .
Если вы отметите Use option as meta key
на вкладке «Клавиатура» в настройках, то команды стиля по умолчанию в emacs для forward- и backward-word и ⌥F
( Alt+ F) и ⌥B
( Alt+ B) соответственно.
Я бы порекомендовал читать From Bash на Z-Shell . Если вы хотите увеличить свое мастерство в bash / zsh!
На Mac OS X Lion 10.7, Terminal карты Option- Left/Right Arrowк Esc- b/fпо умолчанию, так что теперь встроенный для Баш и других программ, использующих эти Emacs-совместимых комбинаций клавиш.
Удерживая клавишу «Option», щелкните, куда вы хотите переместить курсор
Под iterm2
«S Настройки> Профиль> Кис , вы щелкаете +
ниже ключевых Отображения и записать новый ярлык. Для действия выберите Send Escape Sequence
и введите b
илиf
вперед и назад» соответственно.
Когда я попытался записать один для ( Ctrl+ ←), я заметил в поле « Сочетание клавиш», что стрелка так и не появилась. Оказывается, мне пришлось сначала отключить системные настройки Mac по умолчанию > Клавиатура> Сочетания клавиш> Сочетания клавиш управления полетами, чтобы все заработало, так как они переопределяют сочетания клавиш по умолчанию в iterm2. Должно быть верно и для стандартного приложения терминала.
Новый ответ для пользователей iTerm2 Build 3.3.4:
Шаг 1: (macOS X) Системные настройки> Клавиатура> вкладка «Ярлыки»> Выбрать «Управление полетом» (левая панель)> Снимите флажки с ярлыков «Переместить влево на пробел» и «Переместить влево на пробел»
Шаг 2: (iTerm2 Build 3.3.4) Предпочтения> Профили> Выбрать * По умолчанию (левая панель)> Вкладка «Ключи»> Удалить записи «⌥->» и «⌥ <-»> Установить оба ключа «Левая опция» (⌥): "и" Правая клавиша (⌥): "Esc +
Не возиться с профилями оболочки, не возиться с подчиненным терминалом masOS (по умолчанию), нет неловких Esc + F / B, полоскать и повторять без смысла.
Сделка сделана !!!
Наслаждайтесь этим советом, мои товарищи ПРОГРАММИСТЫ!
Как ответил ранее, вы можете добавить 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
начните новый сеанс терминала.