¿Cómo puedo eliminar una línea sin ponerla en mi búfer predeterminado?
Ejemplo:
line that will be copied.
line that I want to be substitued with the previous one.
Lo que estoy tratando de hacer:
yy
dd
p
Pero Vim reemplaza la cadena copiada reciente con la eliminada (cortada). Sé que puedo usar tampones como, "1yy
, dd
a continuación "1p
, pero siempre me olvido de poner la cadena de copiado de una memoria intermedia entonces necesito para pegar el contenido de mi primera (línea que se va a copiar) y elimine lo que quiero (línea que yo quiero para ser sustituido con el anterior.)
¿Cómo puedo realmente eliminar un texto en Vi (m) sin copiarlo?
Otra pregunta relacionada es ¿cómo puedo reenviar eliminar una palabra en modo de inserción? Quiero algo similar a Ctrl+ w.
vim
copy-paste
MaikoID
fuente
fuente
Respuestas:
Utilice la opción "Registro agujero negro",
"_
a algo realmente borrado:"_d
.Use
"_dP
para pegar algo y mantenerlo disponible para pegarlo más.Para la segunda pregunta, podrías usar
<C-o>dw
.<C-o>
se utiliza para ejecutar un comando normal sin salir del modo de inserción .Puede configurar sus propias asignaciones para guardar la escritura, por supuesto. Tengo estos:
fuente
d
todavía "corta" yp
aún "pega", mientras que<leader>d
elimina de forma real y<leader>p
desecha el texto seleccionado y pega el contenido del registro predeterminado.<leader>p
me permite pegar el mismo texto varias veces sin tener que usar registros con nombre.El registro de agujeros negros
"_
hará el truco, pero hay una mejor solución:Cuando ingresa la línea de regreso con el
p
comando, está pegando el contenido del registro predeterminado (volátil)""
, que ha sido sobrescrito pordd
. Pero aún puede pegar desde el registro de extracción (no volátil)"0
, que no se sobrescribirá con el comando eliminardd
.Entonces, estos son los comandos que desea usar según su ejemplo:
fuente
Esa es una de las cosas que no me gusta de vim ... Terminé mapeando
dd
el registro de agujeros negros en mi .vimrc y la vida ha sido buena desde:fuente
v/V
conx
también se corta. Y cortar conx
también es coherente conCtrl + x
cualquier sistema operativo.producirán los siguientes mapeos:
Además, es una buena práctica tener la tecla "líder" configurada en coma, por ejemplo:
estos 2 fragmentos harán que ", d" sea su nuevo comando de corte.
Si desea utilizar estas asignaciones junto con una configuración de portapapeles del sistema compartido, consulte más detalles en https://github.com/pazams/d-is-for-delete
fuente
yydd
que era un poco insostenible en mis dedos;-)
.,dd
. Después de agregarlonnoremap <leader>dd ""dd
comenzó a funcionarPuede usar
"_d
para evitar que las cosas sobrescriban su texto arrancado. Puede almacenar texto eliminado o eliminado en cualquier registro que desee"
, y_
es el registro 'agujero negro', donde envía cosas que no le importan.Para más información puede escribir
:help "_
o:help deleting
fuente
Cuando
x
esté en modo visual, eliminará la selección, por lo tanto, si desea eliminar una línea completa, primero presioneV
para seleccionar la línea en modo visual y luego presionex
para eliminar la selección.fuente