Можно ли настроить iTerm 2 для перехода назад и вперед на одно слово по текущему тексту в командной строке с помощью сочетания клавиш?
Можно ли настроить iTerm 2 для перехода назад и вперед на одно слово по текущему тексту в командной строке с помощью сочетания клавиш?
Ответы:
Ctrl-[ b
прыгает назад слово. Вы также можете использовать Esc
вместо или Ctrl-[
, и f
идти вперед.
Это Ctrl
+ [
релиз, а затем b
или f
. Или Esc
и b
или f
.
Дополнительную информацию можно найти в этом другом обсуждении на AskDifferent.
Убить муху из пушки:
Затем вы можете переместить слово назад с помощью Option ⌥+ ←и слово вперед с помощью Option ⌥+ →, перейти к началу строки с помощью fn+ ←и к концу строки с помощью fn+ →. Также вы можете удалить слово назад, используя Option ⌥+ ⌫, удалить всю строку, используя Command ⌘+ ⌫.
Если пресет не появляется, переустановите iTerm2. Если вы установили его с помощью Homebrew + Cask:
brew cask reinstall iterm2
Мне нравится следующая настройка.
двигаться вперед на одно слово
option+right
send escape sequence
f
вернуться на одно слово
option+left
send escape sequence
b
удалить до начала слова ( кредит )
option+delete
send hex code
0x1B 0x08
удалить до конца слова
fn+option+delete
send escape sequence
d
(Я точно не помню, но я думаю, что скопировал этот ответ из ответа Джеррана ниже и добавил к нему больше. Я должен был добавить дополнительную информацию в комментариях или предложить изменения этого ответа. Я не знаю, как улучшить ситуация, но теперь это известно.)
Это работает по крайней мере для Bash. Для zsh есть другие способы навигации.
Подобно другим ответам, но для Zsh мне потребовалось некоторое время, чтобы найти это:
Если вы используете Zsh, например Oh My Zsh, в iTerm, перейдите по ссылке: Предпочтения> Профили > Подменю «Ключи»
Нажмите + знак
Добавьте комбинацию клавиш, выберите «Отправить Escape-последовательность»
входы слева и справа внизу.
оставил:
[1;5D
правильно:
[1;5C
Открыть настройки
Настройка левой (и / или) правой опции ключа для отправки Esc +
Если вы запутались в своих пресетах, вам может понадобиться загрузить пресет по умолчанию (будьте осторожны, это может стереть ваши пользовательские комбинации клавиш!)
Если после этого вы увидите странные символы, вам может потребоваться настроить ~ / .inputrc или / etc / inputrc
Добавьте это к вашему ~ / .inputrc:
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
полный пример inputrc:
# /etc/inputrc - global inputrc for libreadline
# See readline(3readline) and `info rluserman' for more information.
# Be 8 bit clean.
set input-meta on
set output-meta on
# To allow the use of 8bit-characters like the german umlauts, uncomment
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.
# set convert-meta off
# try to enable the application keypad when it is called. Some systems
# need this to enable the arrow keys.
# set enable-keypad on
# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys
# do not bell on tab-completion
# set bell-style none
# set bell-style visible
# some defaults / modifications for the emacs mode
$if mode=emacs
# allow the use of the Home/End keys
"\e[1~": beginning-of-line
"\e[4~": end-of-line
# allow the use of the Delete/Insert keys
"\e[3~": delete-char
"\e[2~": quoted-insert
# mappings for "page up" and "page down" to step to the beginning/end
# of the history
# "\e[5~": beginning-of-history
# "\e[6~": end-of-history
# alternate mappings for "page up" and "page down" to search the history
# "\e[5~": history-search-backward
# "\e[6~": history-search-forward
# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
$if term=rxvt
"\e[7~": beginning-of-line
"\e[8~": end-of-line
"\eOc": forward-word
"\eOd": backward-word
$endif
# for non RH/Debian xterm, can't hurt for RH/Debian xterm
# "\eOH": beginning-of-line
# "\eOF": end-of-line
# for freebsd console
# "\e[H": beginning-of-line
# "\e[F": end-of-line
$endif
Вы можете set -o vi
перевести свой терминал в режим vi, чтобы использовать обычные команды vi motion (добавьте строку, .bash_profile
чтобы сохранить настройки навсегда).
Таким образом, как если бы в vi вы могли нажать Esc
, затем b
переместиться на одно слово назад ( w
вперед), перейти в начало строки с помощью 0
или найти символ назад с помощью F
+ символа.
Нажмите, i
чтобы вернуться в обычный режим и вставить.
Те, кто знаком с vi, могут сделать гораздо больше. Шпаргалку можно найти здесь .
Esc
затем, I
чтобы просто перейти к началу строки, немного менее удобно, чем Ctrl-a
- этот вариант использования часто случается, когда вы просто хотите изменить имя команды. Поэтому я использую режим vi с некоторыми изменениями привязки клавиш в iTerm2 для отображения Ctrl-A
и аналогично escape-последовательности Esc+0
. Таким образом, эти случаи еще быстрее, так как это заканчивается в режиме редактирования.
С iTerm2 3.1.4 я смог настроить следующее без добавления индивидуальных сопоставлений клавиш.
С новым терминальным сеансом вы теперь можете использовать:
Option ⌥+ fполучить вперед
Option ⌥+ bполучить вперед
Option ⌥+ Delete ⌫Удалить слово