Я пытаюсь переключиться от длительного использования Tcsh к недавнему исследованию Bash.
Мне удалось портировать по всем моим любимым функциям, за исключением Ctrl+w, который рассматривает пробелы и наклонные черты как границы слова, наиболее вероятный backward-kill-word. В Bash однако readline удаляет полностью к первому пространству, удаляя все наклонные черты между.
Я попробовал много различных комбинаций \C-w: backward-kill-word и в .inputrc и в использовании .bashrc связывают, но я не могу заставить это прокладывать себе путь, я хочу.
Достаточно забавный, через Шпаклевку из Windows на работе я могу использовать Alt+Backspace, который также говорит руководство, привязка по умолчанию, для создания точного поведения, которое я хочу. Но в Terminal.app на моих Mac дома это не работает. То же идет для любого сервера FreeBSD или Linux, в меня, оказывается, входят от Terminal.app.
Таким образом, я обращаюсь к суперпользователю для справки.
readline
не обязывает Ctrl-W, так как он обрабатывается терминальным драйвером по умолчанию:
$ stty -a
(...) werase = ^W; (...)
Для отключения этого необходимо работать (в ~/.bashrc
):
stty werase undef
bind '"\C-w": backward-kill-word'
.inputrc
не поможет здесь, так как это читается, когда Ctrl-W все еще присваивают werase
.
Также отметьте это \C-w
формат keyseqs должен быть включен в двойные кавычки, как выше.
Различные терминалы могут обработать Alt-Backspace по-другому.
1b 7f
(ESC DEL
)metaSendsEscape: true
отправляет 1b 08
(ESC BS
).metaSendsEscape
отправляет 88
(HTS
, или BS
с самым высоким набором битов).Xterm имеет несколько настроек для управления поведением клавиши Alt (названный Meta в Xterm и X11 в целом). С metaSendsEscape
, содержание Высокого звука снабдит префиксом нажатие клавиши ESC
(шестнадцатеричное число 1b
). Без установки (режим по умолчанию) Высокий звук установит самый высокий бит вводимого символа, приводящего к специальным символам. (Например, Alt-N приводит к ESC n
и î
соответственно.)
Насколько я могу помнить, Terminal.app также имеет подобную установку для управления поведением Meta/Alt/whatever-Macs-use.