¿Cuál es el equivalente emacs de vi dd? Quiero borrar la línea actual. Intenté CTRL+ kpero solo borra de la posición actual.
122
C-a # Go to beginning of line
C-k # Kill line from current point
También hay
C-S-backspace # Ctrl-Shift-Backspace
que invoca M-x kill-whole-line
.
Si desea establecer un enlace de clave global diferente, lo pondría en ~ / .emacs:
(global-set-key "\C-cd" 'kill-whole-line) # Sets `C-c d` to `M-x kill-whole-line`
Si desea eliminar varias líneas completas, puede prefijar el comando con un número:
C-u 5 C-S-backspace # deletes 5 whole lines
M-5 C-S-backspace # deletes 5 whole lines
C-u C-S-backspace # delete 4 whole lines. C-u without a number defaults to 4
C-u -5 C-S-backspace # deletes previous 5 whole lines
M--5 C-S-backspace # deletes previous 5 whole lines
A veces también encuentro C-x z
útil:
C-S-backspace # delete 1 whole line
C-x z # repeat last command
z # repeat last command again.
# Press z as many times as you wish.
# Any other key acts normally, and ends the repeat command.
C-x z
, eso es realmente genial. Y una respuesta agradable y precisa por cierto.C-k C-k
algo que funciona como und$ S-j
in vim, pero esto puede eliminar líneas hacia adelante bastante bien.C-cd
?En caso de que no desee eliminar la línea (lo que la colocaría en el portapapeles del sistema operativo y el anillo de eliminación), simplemente elimínela:
fuente
Otro método para eliminar la línea sin colocarla en el kill ring:
Esto dejará el punto al comienzo de una línea en blanco. Para deshacerse de esto también, es posible que desee agregar algo como
(delete-blank-lines)
al final de la función, como en este ejemplo, que quizás sea un poco menos intuitivo:fuente
La forma más rápida / sencilla de eliminar (matar) una línea completa, desde cualquier punto de la línea, sin seleccionar nada, es:
Es versátil para eliminar lo que esté seleccionado, o una línea por defecto si no se selecciona nada.
Dada la pregunta, probablemente también esté interesado en replicar el "tirón" de Vim,
yy
(aunque en el lenguaje de Emacs un "tirón" es confusamente el "poner" de Vimp
). Esto es:Agradable y congruente, y bastante fácil de recordar. Incluso un poco similar al de Vim
i_CTRL-W
.Una vez que haya puesto algo en el anillo de la muerte con cualquiera de los anteriores, es probable que desee "tirar" (pegar):
(Tenga en cuenta que es posible que CS-backspace no funcione en la terminal Emacs).
fuente
En lugar de tener una clave separada para eliminar la línea, o tener que invocar prefijo-argumento. Puede usar crux-smart-kill-line que "matará hasta el final de la línea y matará toda la línea en la próxima llamada". Pero si prefieres en
delete
lugar dekill
, puede usar el siguiente código.Para la operación punto a cadena (matar / eliminar) recomiendo usar zop-to-char
fuente
fuente