Запустите процесс в фоновом режиме при связывании клавиш (добавьте `& disown` на Ctrl + Enter)

1

Допустим, я хочу открыть Chrome, Sublime Idea и т. Д. Из командной строки, сохраняя контроль над терминалом.

Есть ли способ добавить & disownкоманду в Bash при нажатии Ctrl+ Enterили другой удобной комбинации?

Я пытался создать для них псевдоним, например alias subl='subl & disown', но передача аргументов больше не будет работать, и необходимость писать псевдонимы для всех программ, которые я хочу использовать таким образом, слишком хлопотна. Должен быть разумный путь.

Дани
источник
1
Посмотрите на функции оболочки.
Скотт
Я добавил `" \ Ce ": '& disown \ n'` в .inputrc, и он делает то, что я хочу, по Ctrl + E. По какой-то причине он не работает с \ n вместо e
Dani

Ответы:

0

Из вашего комментария:

Я добавил "\C-e": ' & disown\n'в .inputrcи делает то , что я хочу на Ctrl+ e. По некоторым причинам это не работает \nвместо e.

Я не думаю, что \nэто правильная строка для использования, но есть большая проблема: в Enterсамой консоли есть \C-Mто есть Ctrl+ M, поэтому Ctrl+ Enterсправедливо, Enterи вы не можете отличить их друг от друга.

Вы можете, однако, отличить друг от друга Enterи Meta (aka Alt)+ Enter. Поместите эту строку в свой .inputrc:

"\C-\M-M":' & disown\n'

и нажмите Meta (aka Alt)+, Enterкогда вы хотите его использовать.

Камиль Мачоровски
источник
Я также попытался с помощью shift + enter "\ CJ": '& disown \ n', но в конце концов \ n поставило меня в тупик. Я заменил \ n на \ r, и теперь он работает нормально. Спасибо за ваш ответ, я найду что-то полезное, чтобы сопоставить его с клавишей alt. Приветствия
Дани
1

Я узнал, что \ r использует тот же код ASCII, что и Ctrl+ M, что означает Ctrl+ Enterэквивалентно Ctrl+ Ctrl+ M. Нажатие Ctrlдважды не имеет никакого смысла, так Ctrlи Enterне могут быть использованы вместе в терминале без какой - либо XTERM перевода .

Мне удалось сделать трюк с Ctrl+ E, добавив "\C-E": ' & disown\n 'в .inputrc.

Дани
источник