tutorial salir pegar linea guardar español eliminar editar deshacer copiar con borrar vim copy-paste

salir - ¿Cómo eliminar(no cortar) en Vim?



salir de vim ubuntu (7)

¿Cómo puedo eliminar una línea sin ponerla en mi buffer predeterminado?

Ejemplo:

line that will be copied. line that I want to be substitued with the previous one.

Lo que intento hacer

yy dd p

Pero Vim reemplaza la cadena copiada recientemente con la eliminada (cortada). Sé que puedo usar memorias intermedias como, "1yy , dd luego "1p , pero siempre me olvido de poner la cadena copiada en un búfer, entonces tengo que pegar primero mi contenido (línea que será copiada) y luego eliminar lo que quiero (línea que quiero que se sustituya por la anterior)

¿Cómo puedo realmente eliminar un texto en Vi (m) sin copiarlo?

Otra pregunta relacionada es ¿cómo puedo reenviar una palabra en el modo de inserción? Quiero algo similar a Ctrl + w .


El registro de agujero negro "_ hará el truco, pero hay una mejor solución:

Cuando ingresa la línea de regreso con el comando p , está pegando el contenido del registro predeterminado (volátil) "" , que ha sido sobrescrito por dd . Pero aún puede pegar desde el registro yank (no volátil) "0 , que no será sobrescrito por el comando delete dd .

Estos son los comandos que desea usar según su ejemplo:

yy dd "0p


Esa es una de las cosas que no me gustó de vim ... Terminé asignando dd al registro de agujeros negros en mi .vimrc y la vida ha sido buena desde:

nnoremap d "_d vnoremap d "_d


Puede usar "_d para evitar que las cosas sobrescriban el texto extraído. Puede almacenar texto extraído o eliminado en cualquier registro que desee " , y _ es el registro de "agujero negro", donde envía cosas que no le interesan. .

Para obtener más información, puede escribir :help "_ or :help deleting


Use el "registro de agujero negro", "_ para eliminar realmente algo: "_d .
Use "_dP para pegar algo y manténgalo disponible para pegar más.

Para la segunda pregunta, puede usar <Co>dw . <Co> se usa 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:

nnoremap <leader>d "_d xnoremap <leader>d "_d xnoremap <leader>p "_dP


aquí está mi configuración:

# cut to system clipborad in visual mode vnoremap x "*x # put from system clipboard nnoremap p "*p vnoremap p "*p nnoremap P "*P vnoremap P "*P # yank from system clipboard nnoremap y "*y vnoremap y "*y nnoremap Y "*Y vnoremap Y "*Y

cuando quieras poner el contenido de otro registro:

:put {register_name}


las siguientes asignaciones producirán:

  • d => "eliminar"
  • líder d => "cortar"

nnoremap x "_x nnoremap d "_d nnoremap D "_D vnoremap d "_d nnoremap <leader>d ""d nnoremap <leader>D ""D vnoremap <leader>d ""d

Además, es una buena práctica tener la tecla "líder" configurada en coma, por ejemplo:

let mapleader = "," let g:mapleader = ","

estos 2 fragmentos harán que ", d" sea tu nuevo comando de corte.

Si desea utilizar estas asignaciones junto con una configuración del portapapeles del sistema compartido, consulte más detalles en https://github.com/pazams/d-is-for-delete


yy Vx p

Cuando esté en modo visual, x eliminará la selección, por lo que si desea eliminar una línea completa, primero presione V para seleccionar la línea en el modo visual y luego presione x para eliminar la selección.