Estoy usando el a"
movimiento con bastante frecuencia en vim; por ejemplo, ca"
al refactorizar un fragmento de código para reemplazar un argumento codificado con un nombre de variable. El problema con este enfoque es que a"
incluye espacios en blanco iniciales si no hay espacios en blanco finales :
Se incluye cualquier espacio en blanco final, a menos que no haya ninguno, se incluye el espacio en blanco inicial.
Por lo tanto, cuando edito una llamada de función como esta:
aFunction(arg1, "toBeReplaced", arg3) #original
aFunction(arg1, replacedArg, arg3) #refactored
Tengo que volver a insertar manualmente el espacio antes, replacedArg
ya que lo ca"
elimina.
¿Existe algún movimiento similar que no incluya este espacio en blanco, o hay algo más que pueda usar en lugar de ca"
eso que me ahorra tener que escribir un espacio adicional?
Notas:
cf"
hace lo que quiero siempre y cuando la cadena no contenga comillas escapadas, pero requiere que tenga el cursor al comienzo de la cadena. Me gustaría algo que pueda usar desde cualquier lugar dentro de la cadena, y?"<Enter>cf"
es bastante incómodo de escribir.- Se trata menos de la
<Space>
pulsación de una tecla y más del hecho de que a menudo me olvido inicialmente de incluir el espacio, lo que me cuesta al menos cuatro pulsaciones de teclas adicionales (bi<Space><Esc>
) y romper mi enfoque. Por lo tanto, la longitud del comando de reemplazo no es tan importante, siempre que elimine solo el texto entre los caracteres dados y luego entre en modo de inserción.
replace
cursor-motions
l4mpi
fuente
fuente
?"<Enter>
para buscar una cotización hacia atrás en una línea, puede usarF"
.F
es lo mismo quef
pero busca a la izquierda. Las respuestas a continuación se ven mejor para su pregunta, peroF
es un comando útil por sí solo.Respuestas:
Desde /superuser/537453/vim-copy-quoted-string-without-whitespace : use en
2i"
lugar dea"
. También vea:help i'
.fuente
Hay, en el plugin objetivo.vim de Wellle . Para citar la parte relevante (dentro de la sección " Una cita "):
a' a" a
fuente
a"
y se usaA"
para el comportamiento original?Como alternativa, puede utilizar un objeto de texto de argumento / parámetro. Ahora Vim no tiene objetos de texto de argumentos nativos, pero existen algunos complementos que sí:
Personalmente uso mi propio plugin, argumentative.vim, sin embargo, he escuchado cosas buenas sobre sideways.vim y targets.vim.
fuente