Я пытаюсь перейти от длительного использования Tcsh к недавнему исследованию Bash.
Мне удалось перенести все мои любимые функции, кроме Ctrl + w, который рассматривает пробелы и слэши как границы слов, скорее всего, backward-kill-word. В Bash, однако, readline удаляет весь путь до первого пробела, удаляя все косые черты между ними.
Я пробовал много разных комбинаций \ Cw: backward-kill-word в .inputrc и .bashrc, используя bind, но не могу заставить его работать так, как я хочу.
Как ни странно, через Putty из Windows на работе я могу использовать Alt + Backspace, который также в руководстве называется привязкой по умолчанию, чтобы получить точное поведение, которое я хочу. Но в Terminal.app на моих компьютерах Mac это не работает. То же самое относится и к любому серверу FreeBSD или Linux, в который я входил из Terminal.app.
Поэтому я обращаюсь к суперпользователю за помощью.
cat
, На всех Unixesstty
используется для управления различными параметрами tty, включая эти специальные ключи. (Вот как выглядело UNIX 7th Editionstty
.)stty
руководстве пользователя). Кроме того, bash изначально предназначался для ОС GNU и только позже был портирован на другие Unixes; гораздо проще поддерживать функции редактирования в одной библиотеке, чем в нескольких очень разных ядрах.stty
конфигурацию для простоты, но она может быть переопределена собственными настройками readline (как описано в ответе Мэтта Дея).Гравити написал, что это не может контролироваться в
.inputrc
файле, но это неверно.Если вы
set bind-tty-special-chars off
в вашем.inputrc
, вы можете настроить поведение специальных терминальных символов.Например:
источник
python
.Для записи, ответ , как он относится к iTerm2 является установка Alt- Backspace(или Opt ⌥- ⌫на Mac) , чтобы отправить Hex коды
0xb1
и0x7f
для того , чтобы выполнитьbackward-kill-word
действие , которое лечит не алфавитно-цифровые символы в качестве разделителей.Для различия вот поведение, которое я описываю, при котором нажатие Opt ⌥- ⌫один раз меняет это:
echo "/example/filepath/with_non-alpha.characters@blah:meh
к этому:
echo "/example/filepath/with_non-alpha.characters@blah:
И последующие нажатия Opt ⌥- ⌫:
echo "/example/filepath/with_non-alpha.characters@
echo "/example/filepath/with_non-alpha.
echo "/example/filepath/with_non-
echo "/example/filepath/with_
echo "/example/filepath/
Вот как выглядит настройка в iTerm2:
Так что, специфично для Putty и Terminal, ответ grawity великолепен. Но потратив немало времени на поиски того, как применить настройку в iTerm2, этот пост суперпользователя, кажется, появляется чаще всего, поэтому он, кажется, ответственен за предоставление соответствующей информации, поскольку она относится к iTerm2 в качестве Ответа, прилагаемого к этому Вопросу.
источник