Em Vim, há uma maneira para colar texto na linha de pesquisa?
-
01-07-2019 - |
Pergunta
Eu quero procurar $maximumTotalAllowedAfterFinish
e substituí-lo com $minimumTotalAllowedAfterFinish
. Em vez de digitar o texto longo:
:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g
Existe uma maneira de copiar estes nomes de variáveis ??longos para dentro da linha de pesquisa, uma vez que, na linha de comando não é possível digitar "p
" para colar?
Solução
Você pode inserir o conteúdo de um registrador numerado ou nomeado pela digitação Ctrl R {0-9a-z"%#:-=.}
. Digitando CTRL-R CTRL-W você pode colar a palavra atual sob o cursor. Veja:
:he cmdline-editing
para mais informações.
Outras dicas
Copiar-lo como normal, então não Ctrl R " para colar. Há muitas outras Ctrl R atalhos (por exemplo, uma calculadora, nome de arquivo atual, o conteúdo da área de transferência). Digite :help c_<C-R>
para ver a lista completa.
Tipo q:
para entrar em modo de edição de história em um novo buffer. Em seguida, editar a última linha do buffer e pressione Enter
para executá-lo.
Copiar:
1) v
(ou destaque com o mouse, no modo visual)
2) y
(puxão)
Colar:
1) /
(modo de procura)
2) Ctrl + R + 0
(colar de registo puxou)
Ou criar o comando em um tampão de vim, v.g. digite-o no buffer:
s/foo/bar/gci
E copiá-lo para um registo nomeado, com "ayy
(se o cursor estiver na linha!).
Agora você pode executar o conteúdo do "a
" registar a partir de linha de comando Ex do Vim com:
:[OPTIONAL_RANGE]@a
Eu uso isso o tempo todo.
Normalmente, você faria isso com a seleção do mouse (talvez Ctrl Ins ou Ctrl C depois de selecção) e então, quando na linha de comando / pesquisa, de meia-clique (ou Mudança Ins ou Ctrl V ) .
Outra forma, é escrever o seu comando / search linha no buffer de texto com toda a edição disponível em buffers de texto, começando com :
e tudo, então, na linha, não:
"add@a
que irá armazenar a linha de comando inteiro em a
buffer, e depois executá-lo. Não serão armazenadas no histórico de comandos, no entanto.
Tente criar a seguinte linha no buffer de texto como um exemplo para as teclas pressionadas acima:
:%s/$maximumTotalAllowedAfterFinish/$minimumTotalAllowedAfterFinish/g
Finalmente, você pode entrar q:
para entrar edição história em um buffer de texto.
Você pode colocar o cursor na palavra que você deseja adicionar ao seu padrão e pressione então / ou : para entrar quer a busca ou o modo de comando e em seguida, pressione Ctrl R Ctrl W para copiar a palavra. Fonte