Почему Alt + Backspace обязательно удаляет слово в gnome-terminal Debian?

Решение только в sed и sh:

for FILE in *.mp3
do mv "$FILE" "$(echo $FILE | sed -r 's/^[[:digit:]]{2}\. //g')"
done
1
04.09.2016, 01:33
1 ответ

Это привязки клавиш оболочки ( bash ), а не терминала. См. В чем точная разница между «терминалом», «оболочкой», «tty» и «консолью»? Тем не менее, терминал участвует в преобразовании сочетаний клавиш в escape-последовательности. См. Как работают ввод с клавиатуры и вывод текста?

Bash использует привязки клавиш Emacs (если вы не переключитесь в режим vi). В Emacs Alt + BackSpace ( M-backspace ) удаляет предыдущее слово. Alt + BackSpace ( C-backspace ) традиционно не было привязано, хотя современные версии также связывают его с командой удаления предыдущего слова.

Управляющая последовательность для Alt + клавиша - это escape-символ, за которым следует символ для клавиши , когда клавиша отправляет одиночный персонаж. Стандартной escape-последовательности для Ctrl + BackSpace нет, и ее обычно нельзя отличить от других клавиш.Вот почему терминальные приложения (включая классический Emacs) обычно не имеют привязок для Ctrl + BackSpace . В gnome-terminal Ctrl + BackSpace отправляет тот же символ, что и BackSpace , поэтому невозможно иметь отдельную привязку для Ctrl + BackSpace .

Преобразование сочетания клавиш в escape-последовательность в Gnome-terminal невозможно настроить. Если вы хотите использовать разные переводы, используйте настраиваемый эмулятор терминала, такой как rxvt или xterm.

4
27.01.2020, 23:35

Теги

Похожие вопросы