Normalmente, os terminais permitem a seleção de texto com o mouse, mas o shell não é informado disso. Então, infelizmente, nem bash
, zsh
, fish
nem es
pode suportar edição baseada em mouse. Eu acho que, para isso, eles precisariam ter maior controle sobre o terminal.
No entanto (e isso é um pouco exagerado) se você abrir o Vim ou o GVim e inserir os comandos do shell usando:
:!...
então você pode clicar com o mouse para pular para qualquer lugar da linha . (Você precisará :set mouse=a
primeiro se isso ainda não estiver ativado.) As teclas de edição neste modo podem ser vistas com:help cmdline-editing
O Vim também possui um modo de histórico de comandos bastante poderoso, que pode ser alcançado pressionando q:. A partir daí, você pode puxar, excluir e colar usando os comandos do modo normal do Vim. Nesse modo, você pode obter o botão selecionar e excluir o recurso desejado (pressionando d).
Uma ressalva importante aqui é que o Vim, na verdade, não mantém uma sessão de shell ativo em execução. Cada comando que você executa será executado em um processo filho. Portanto, quaisquer alterações feitas nas variáveis de ambiente ou nas opções de shell pelo processo filho serão perdidas.
Dito isso, você pode modificar variáveis de ambiente no processo Vim e usá-las na linha de comando do Vim, e elas serão exportadas para processos filhos:
: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
Portanto, se você estiver disposto a fingir que o Vim é realmente algum tipo de shell estranho, poderá aproveitar seus recursos avançados de edição! Provavelmente, a maior desvantagem é que você terá que iniciar todos os comandos digitando um :!
ouq:
Ah, a propósito, se você deseja obter a saída do comando shell no seu buffer Vim atual, você pode fazer isso assim (mas cuidado, ele atrapalhará sua linha atual):
:,!ls