Як перейти до наступного або попереднього слова за допомогою клавіш CTRL + зі стрілками в консолі?


12

У термінальних програмах для емуляції натискання клавіш CTRL+ Left/ Rightстрілки переходить від одного слова до попереднього чи наступного. Чи можливо мати однакову функціональність в консолі Linux, будь то в текстовому або в режимі фреймбуфера?

У моїй конфігурації CTRLклавіші зі стрілками + перетворюються на послідовності уникнутих символів і не інтерпретуються.

Відповіді:


8

Це можливо , якщо і тільки якщо термінал посилає різні керуючі послідовності для Ctrl+ Leftпроти Left. Це не за замовчуванням на консолі Linux (принаймні на моїй машині). Ви можете зробити це, змінивши карту клавіш. Точний файл для зміни може залежати від вашого розповсюдження; на Debian lenny файл для модифікації є /etc/console/boottime.kmap.gz. Вам потрібні такі лінії

control keycode 105 = F100
string F100 = "\033O5D"
control keycode 106 = F101
string F101 = "\033O5C"

Ви можете також вибрати ті самі послідовності евакуації, що і емулятор терміналу X. Щоб дізнатись, що таке контрольна послідовність, введіть Ctrl+ V Ctrl+ Leftв оболонці; це вставляє (на мою машину), ^[O5Dде ^[є символ втечі. У файлі ключових карт \033відображається символ втечі.

Налаштування програми в терміналі для декодування послідовності запуску є окремою проблемою,.


ви лише пояснюєте, як отримали "\033O5D"код, але повністю пропускаєте, звідки ви отримали код keycode 105та F100коди. Крім того, я отримую ^[[1;5Bі ^[[1;5Aдля ctrl + Down і Ctrl + Up. Як я повинен обробляти 1;деталь?
Мартін Вегтер

1
@MartinVegter Перевірте наявний файл на наявність кодів ключів або скористайтеся showkeyпрограмою. 1;Частина не відрізняється від інших: "\033[1;5B"і так далі.
Жил "ТАК - перестань бути злим"

ОК keycode 105можна знайти, використовуючи showkey. Але де ти взяв F100?
Мартін Вегтер

@MartinVegter Виберіть той, який ще не використовується. Інший на клавіатуру (я просто зафіксував друкарську помилку у своїй відповіді).
Жил "ТАК - перестань бути злим"

24

Сполучення Emacs-стиль Alt+ f, Alt+ bробота за замовчуванням з усіма читанням рядка Наведено програмами командного рядка, як оболонки.


2

Ви можете встановити vim як редактор командного рядка, а потім натиснути ESC і стрибати навколо стилю vim (вперед, назад, в кінці, $, 0 тощо)


-1

У мене виникла ця проблема на Debian із порожнім ~/.inputrcфайлом. Виправили проблему, видаливши цей файл.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.