Терминал на Mac - Удалить поведение ключа
Я хотел бы, чтобы клавиша удаления (ну, комбинация Fn+Backspace) на моем Mac велась в терминале так же, как обычно. То есть делать вперед-удалять. Прямо сейчас он выводит тильду - по крайней мере, это то, что я вижу.
В Binding Fn-Delete в zsh на Mac OS X я увидел некоторые хакеры и попробовал их тоже:
(нажал [Fn]+[<---] внутри кавычек ниже)
$ echo "~" | od -c
0000000 ~ \n
0000002
Как я могу заставить его вести себя?
1 ответ
Ответ на вопрос, с которым вы связались, показывает, как найти последовательность управления, которую Терминал отправляет при нажатии Fn Backspace: echo '
Control V Fn Backspace ' | od -c
,
Control V имеет решающее значение для предотвращения специальной интерпретации (вероятного) начального символа ESC.
Терминал, вероятно, отправляет четырехбайтовую последовательность ESC [ 3 ~
,
Вопрос, на который вы ссылались, был о zsh. Комментарий к ответу дает команду связать последовательность в zsh, т.е.
bindkey "^[[3~" delete-char
(обычно в ~/.zhsrc
).
Однако bash является оболочкой по умолчанию в Mac OS X, поэтому команда для привязки ключа (и функции, доступные для привязки) будут другими, если вы используете bash: bind '"\e[3~": delete-char'
, Возможно, вы захотите поместить это в файл запуска bash 1.
Если вы обнаружите, что используете bash, но вместо этого хотите использовать zsh, то есть два способа изменить эффективную оболочку:
- использование
chsh -s /bin/zsh
изменить вашу оболочку по умолчанию.
Это изменит оболочку, которую запускает Терминал, а также оболочку, запущенную для других сеансов входа в систему (например, для входа через SSH). - Настройте просто терминал, чтобы использовать другую оболочку в настройках терминала.
Терминал > Настройки..., кнопка панели настроек, затем вкладка Оболочка,
изменить команду запуска на (например)/bin/zsh -l
,
1 Обычно ~/.bashrc
, но вы также можете поставить соответствующую строку ("\e[3~": delete-char
) в ~/.inputrc
вместо. Если вы положите его .bashrc
, вы хотите убедиться, что у вас также есть строка, как source ~/.bashrc
в ~/.bash_profile
, или же ~/.bash_login
(если у вас нет ни того, ни другого, создайте первое; если у вас уже есть ровно один из них, используйте тот, который у вас есть; если у вас есть оба, то вам следует это исправить, поскольку, вероятно, используется только первое).