Обычно терминалы позволяют выделять текст мышью, но оболочка не знает об этом. Так , к сожалению , ни bash
, zsh
, fish
ни es
поддерживает редактирование мыши основе. Я думаю, что для этого им нужно будет взять под контроль терминал.
Однако (и это является немного растянуть) , если открыть Вим или GVim, а затем ввести команды оболочки с помощью:
:!...
затем вы можете щелкнуть мышью, чтобы перейти в любое место строки . (Вам нужно будет :set mouse=a
сначала, если это еще не включено.) Клавиши редактирования в этом режиме можно увидеть с:help cmdline-editing
Vim также имеет довольно мощный командный режим истории, который может быть достигнут нажатием q:. Оттуда вы можете вытащить, удалить и вставить, используя команды нормального режима Vim. В этом режиме вы можете получить выбор с помощью мыши, а затем удалить желаемую функцию (нажав d).
Важным предупреждением здесь является то, что Vim на самом деле не поддерживает сеанс live shell. Каждая выполняемая вами команда будет выполняться в дочернем процессе. Поэтому любые изменения, внесенные в переменные среды или параметры оболочки дочерним процессом, будут потеряны.
Тем не менее, вы можете изменять переменные окружения из в процессе Vim, и использовать их из командной строки Vim, и они будут даже в дочерние процессы:
:let $FOO="bar" " the $ and the quotes are mandatory here
:echo $FOO " Vim's own echo command
bar
:!echo "$FOO" " Passing the variable to a shell command
bar
:!bash " Opening a child shell
$ echo "$FOO"
bar
Так что если вы хотите притвориться, что Vim на самом деле какая-то странная оболочка, тогда вы можете наслаждаться ее расширенными возможностями редактирования! Вероятно , самым большим недостатком является то , что вы должны будете начать каждую команду, набрав либо :!
илиq:
Да, и, кстати, если вы хотите получить выходные данные команды оболочки в текущий буфер Vim, вы можете сделать это следующим образом (но будьте осторожны, это приведет к засорению вашей текущей строки):
:,!ls