.inputrc TAB не веде себе так, як очікувалося


11

Я сьогодні на перекладі, ось ще одне питання:

Як же, коли я їх вкладаю .inputrc, вони обидва роблять те саме?

TAB: menu-complete
Shift-TAB: menu-complete-reverse

тобто вони обидва роблять все, що каже останній.

Відповіді:


15

Програма Readline нічого не знає про названий модифікатор Shiftі тихо ігнорує невідомі імена модифікатора. Спробуйте wibble-TAB.

Щоб прив’язати дію до Shift+ Tab, потрібно з’ясувати, яку послідовність евакуації надсилає ваш термінал. У bash запустіть catі введіть Ctrl+, Vа потім Shift+ Tab. Це дозволить вставити послідовність втечі буквально. Цілком ймовірно, що першим персонажем буде символ втечі, показаний як ^[; різні термінали мають різні послідовності відходу, але загальними можливостями є ␛[Z(тобто втеча, ліва дужка, велика величина Z) та ␛␉(тобто втеча, вкладка). Прив’яжіть ключ належним чином ~/.inputrc(де \eозначає символ втечі).

"\e\t": menu-complete-backward
"\e[Z": menu-complete-backward

1
Ах, ^[Zпрацював на мене (БАШ); дякую за детальну відповідь! :)
користувач541686

Ви натискаєте Enter перед або після 'cat'? Для чого потрібна «кішка»? Я, здається, отримую ті самі послідовності втечі без "кота".
догкрамер

@ douglas.kramer Біг catдозволяє уникнути будь-якого прив'язки. Зазвичай bash має те саме Ctrl + V прив'язування, щоб буквально вставити наступний символ, щоб це не мало значення.
Жил "ТАК - перестань бути злим"

У мене виникають проблеми з тим, щоб Shift + Tab прив’язати до 'shell-expand-command'. Я отримую: $ cat <Enter> <Shift+Tab>які дисплеї ^[[Z Чи завжди я дописую \eперед послідовністю, яку отримую Ctrl+V? Чи це означає:"\e^[[Z": shell-expand-command
dougkramer

@dou Заміни ^[на `\ e`
'SO- перестань бути злим'

4

На Xubuntu 16.04, термінал: xfce4-terminal 0.6.3, оболонка: bash

Для роботи Shift+ Tabмені довелося використовувати:

bind '"\e[Z": menu-complete-backward'

У ~/.bash_profileвикористанні: bind TAB:menu-completeі bind '"\e[Z": menu-complete-backward'(зверніть увагу на використання одинарних та подвійних лапок!).
Ерік
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.