Як призначити команди клавішам у терміналі?


10

Чи є рішення призначити спеціальні комбінації клавіш словам у термінальному використанні. Наприклад, менша команда дуже корисна, і я використовую багато ia для передачі виводу іншого процесу через неї.

Ідея полягала б у тому, щоб встановити спеціальні комбінації клавіш, які активні лише у термінальному використанні, призначеному для запису різних команд? Тож натискання Ctrl+ Lу вікні терміналу могло написати

| less

або Ctrl+ Gможе стояти за

| grep

Примітка: я просто маю на увазі додавання букв до командного рядка не виконувати остаточно. Схожий спосіб, що є завершенням табуляції, але більш конкретний.

Відповіді:


10

Так, ви можете використовувати команду bind

bind '"\ey"':"\"less \C-m\""

Це відображає Alt-e на меншу команду та виконує її (з \ Cm aka Ctrl-m)

Можливо, для | вам потрібно уникнути цього.

bind '"\ey"':"\"\|less \C-m\""

Якщо ви хочете просто додати його до командного рядка, видаліть * \ Cm \ ""

Будьте уважні, оскільки вже визначені деякі прив'язки:

Ctrl + A    Go to the beginning of the line you are currently typing on
Ctrl + E    Go to the end of the line you are currently typing on
Ctrl + L                Clears the Screen, similar to the clear command
Ctrl + U    Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
Ctrl + H    Same as backspace
Ctrl + R    Let’s you search through previously used commands
Ctrl + C    Kill whatever you are running
Ctrl + D    Exit the current shell
Ctrl + Z    Puts whatever you are running into a suspended background process. fg restores it.
Ctrl + W    Delete the word before the cursor
Ctrl + K    Clear the line after the cursor
Ctrl + T    Swap the last two characters before the cursor
Esc + T     Swap the last two words before the cursor
Alt + F     Move cursor forward one word on the current line
Alt + B     Move cursor backward one word on the current line
Tab     Auto-complete files and folder names

Клавіша Control, як ви бачите вище, зроблена з Cm, тому команду Ctrl-g можна запустити на меншу команду, як описано нижче:

прив’язати '"\ Cg"': "\" \ | менше * \ Cm \ ""

Щоб отримати ключові коди для Alt (лише для ALT), ви можете скористатися командою read з оболонки:

@~$ read
^[y

^ [y дорівнює \ ey

Для отримання додаткової інформації на це питання відповіли також у stackoverflow:

/programming/4119991/bash-call-script-with-customized-keyboard-shortcuts


дякую, як я можу видалити палітурку чи показати всі прив’язки?
NES

щось не так у ваших перших двох прикладах. він завжди друкує також підстановку після менше, ніж мені присвоєно ваш синтаксис прив'язки.
NES

bind -p і bind -P покаже вам усі прив’язки. Я помилився із зіркою ...
Оновляю

дуже дякую. можливо, у вас є ідея, як досягти тієї ж мети в рибі? я вважаю, що поки що це працює, але проблема полягає в тому, що риба, здається, автоматично виконує команду, а не просто додає рядок до командного рядка за замовчуванням. ось manpage linux.die.net/man/1/bind На жаль, приклад є не дуже корисним для мого випадку.
NES

Це вже вбудована функція, я думаю, fishshell.com/user_doc/index.html#editor подає позов на ярлик Alt-p
tmow
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.