7

Я хотел бы, чтобы клавиша удаления (ну, комбинация Fn+Backspace ) на моем Mac велась в терминале так же, как обычно. То есть делать вперед-удалять. Прямо сейчас он выводит тильду - по крайней мере, это то, что я вижу.

В Binding Fn-Delete в zsh на Mac OS X я увидел некоторые хакеры и попробовал их тоже:

(нажал [Fn]+[<---] внутри кавычек ниже)

$ echo "~" | od -c
0000000   ~  \n
0000002

Как я могу заставить его вести себя?

1 ответ1

14

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .