Допустим, я хочу открыть Chrome, Sublime Idea и т. д. из командной строки, сохранив при этом контроль над терминалом.
Есть ли способ добавить & disown
команду в Bash при нажатии Ctrl+ Enterили другой удобной комбинации?
Я пытался сделать для них псевдоним, например alias subl='subl & disown'
, но передача аргументов больше не будет работать, а необходимость писать псевдонимы для всех программ, которые я хочу использовать таким образом, слишком хлопотна. Должен быть более умный способ.
решение1
Из вашего комментария:
Я добавил
"\C-e": ' & disown\n'
и.inputrc
он делает то, что мне нужно на Ctrl+ e. По какой-то причине он не работает с\n
вместоe
.
Я не думаю, \n
что это правильная строка для использования, но есть более серьезная проблема: в Enterсамой консоли есть \C-M
ie Ctrl+ M, поэтому Ctrl+ Enter— это просто Enterи вы не можете их отличить.
Однако вы можете отличить Enterи Meta (aka Alt)+ Enter. Поместите эту строку в свой .inputrc
:
"\C-\M-M":' & disown\n'
и нажимайте Meta (aka Alt)+ Enterвсякий раз, когда захотите его использовать.
решение2
Я узнал, что\римеет тот же код ASCII, что и Ctrl+ M, что означает, что Ctrl+ Enterэквивалентно Ctrl++ Ctrl. Двойное Mнажатие Ctrlне имеет смысла, поэтому Ctrlи Enterне могут использоваться вместе в терминале без некоторого xtermперевод.
Мне удалось проделать этот трюк с Ctrl+ , Eдобавив ."\C-E": ' & disown\n '
.inputrc