Estou usando o a"
movimento com bastante frequência no vim; por exemplo, usando ca"
ao refatorar um pedaço de código para substituir um argumento codificado por um nome de variável. O problema dessa abordagem é que a"
inclui espaços em branco à esquerda se não houver espaço em branco à direita :
Qualquer espaço em branco à direita é incluído, a menos que não exista, o espaço em branco à esquerda é incluído.
Assim, quando eu edito uma chamada de função como esta:
aFunction(arg1, "toBeReplaced", arg3) #original
aFunction(arg1, replacedArg, arg3) #refactored
Eu tenho que reinserir manualmente o espaço antes replacedArg
como ca"
excluí-lo.
Existe algum movimento semelhante que não inclua esse espaço em branco ou há mais alguma coisa que eu possa usar em vez de ca"
me impedir de digitar um espaço extra?
Notas:
cf"
faz o que eu quero, desde que a string não contenha aspas escapadas, mas exige que eu tenha o cursor no início da string. Eu gostaria de algo que eu possa usar de qualquer lugar dentro da string e?"<Enter>cf"
é bastante difícil de digitar.- É menos sobre o
<Space>
pressionamento de tecla único e mais sobre o fato de que muitas vezes esqueci de incluir o espaço, custando-me pelo menos quatro pressionamentos de tecla extras (bi<Space><Esc>
) e interrompendo meu foco. Portanto, o comprimento do comando de substituição não é tão importante, desde que exclua apenas o texto entre os caracteres especificados e entre no modo de inserção.
?"<Enter>
para procurar uma cotação para trás em uma linha, você pode usarF"
.F
é o mesmo quef
mas pesquisas para a esquerda. As respostas abaixo parecem melhores para sua pergunta, masF
são um comando útil por si só.