Я заметил, что bash имеет сокращение ctrl+, Tкоторое меняет последние два символа перед курсором.
Мне интересно, почему инженеры решили включить это.
- Это было унаследовано от предыдущего соглашения?
- Или есть практическая цель, для которой это обычно используется?
bash
keyboard-shortcuts
history
Филип Киркбрайд
источник
источник
bash
так, ноreadline
(какой bash использует для ввода в приглашении). Ваш bash используетemacs
привязки клавиш; Вы можете изменить привязку клавиш к vi, если вы приверженец Editor Wars;) sanctum.geek.nz/arabesque/vi-mode-in-bash Здесь есть несколько «шпаргалок»readline
: readline.kablamo.org/emacs .html и readline.kablamo.org/vi.html .readline
ChangeLog
намеков на это. Поэтому изначально ярлык обрабатывался в самом Bash, хотя и кратко, до того, как его вытащилиreadline
- но ярлык пришел в Bash из Emacs (я не знаю, был ли он изобретен в Emacs или откуда-то еще).Ответы:
Это унаследовано (readline) от GNU Emacs, который использует control- Tдля транспонирования символов:
https://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html
Обратите внимание, что редактор строки bash по умолчанию работает в режиме Emacs, но вы также можете переключить его в режим vi, если хотите.
источник
Очень полезно быстро исправить опечатки:
становится
с одной CtrlT.
Вы также можете использовать AltTдля обмена словами ( например, при переключении между
service
иsystemctl
...).Исторически говоря, эта CtrlTособенность пришла в Bash из Emacs по всей вероятности. Вероятно, он был скопирован в Emacs из другого редактора; он присутствовал в редакторе E Стэнфорда (см. Essential E стр. 13) к 1980 году, и E оказал сильное влияние на Ричарда Столлмана (как описано в книге «Свободно как в свободе» ). Он был реализован в очень ранних версиях Bash до его первого выпуска в 1989 году, когда он был вытащен в
readline
библиотеку, в которой он живет сегодня (самая первая запись,readline
ChangeLog
намекающая на это).источник
word1 word2 word3
чтобы ,word3 word2 word1
если выполняется вword3
.Эта комбинация клавиш, привязка, унаследованная от
emacs
редактора, приводит к тому, что последние 2 введенных символа меняются местами в конце строки, используются в середине строки, меняются местами слева от курсора и под символом курсор.Может показаться тщетным иметь привязку к такой редко используемой функции, которая может быть легко достигнута еще несколькими нажатиями клавиш. Старые таймеры, такие как я, используют его довольно часто, и это позволяло сэкономить время передачи во времена модемов в 300 бод, в конце 70-х, особенно в середине длинных линий.
Аналогичная и более полезная команда, связанная с Alt+ T, транспонирует слова слева и справа от курсора.
Tбыл выбран, потому что это начальная буква транспонирования . Другие привязки с аналогичным происхождением включают в себя:
Эти привязки, реализованные в пакете readline GNU, поэтому доступны во всех программах, которые используют его для пользовательского ввода, таких как bash , но также и gdb , bc , ...
Некоторые из них также доступны в других средах: строка ввода URL Firefox, поля ввода текста в графическом интерфейсе OS / X и многие оконные менеджеры на основе X.
Пользователи vim могут выбирать соответствующие привязки через переменную окружения.
источник
Alt
иCtrl
версии этих нажатий клавиш связаны последовательно.C-t
Однако, похоже, ничего не делает. wiki.archlinux.org/index.php/GTK%2B#Emacs_keybindingsЭто очень полезно для исправления улыбок, которые были случайно перенесены пиарами писем.
(С тяжелым RSI на обоих запястьях, я заканчиваю тем, что использовал это много, лично ...)
источник
Очень быстро исправить опечатки. производит немедленный блок 2 корректоров перед направляющим.
Если вы набрали текст
ls-
и хотите ввести пробел междуls
& дефисом, вы можете использовать Ctrl+TЭто работает, если после дефиса есть пробел, а затем выполните Ctrl+T
источник