Quel est l'équivalent emacs de vi dd? Je souhaite supprimer la ligne actuelle. Essayé CTRL+ kmais il ne supprime que de la position actuelle.
122
C-a # Go to beginning of line
C-k # Kill line from current point
Il y a aussi
C-S-backspace # Ctrl-Shift-Backspace
qui invoque M-x kill-whole-line
.
Si vous souhaitez définir une liaison de clé globale différente, vous devez la placer dans ~ / .emacs:
(global-set-key "\C-cd" 'kill-whole-line) # Sets `C-c d` to `M-x kill-whole-line`
Si vous souhaitez supprimer un certain nombre de lignes entières, vous pouvez préfixer la commande avec un nombre:
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
Parfois, je trouve également C-x z
utile:
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
, c'est vraiment cool. Et réponse agréable et précise btw.C-k C-k
qui fonctionne un peu commed$ S-j
dans vim, mais cela peut assez bien supprimer les lignes en avant.C-cd
?Au cas où vous ne voudriez pas tuer la ligne (ce qui la mettrait dans le presse-papiers du système d'exploitation et le kill ring), mais supprimez-la simplement:
la source
Une autre méthode pour supprimer la ligne sans la placer dans le kill ring:
Cela laissera le point au début d'une ligne vide. Pour vous en débarrasser également, vous pouvez ajouter quelque chose comme
(delete-blank-lines)
à la fin de la fonction, comme dans cet exemple, qui est peut-être un peu moins intuitif:la source
Le moyen le plus rapide / le plus simple de supprimer (tuer) une ligne complète, à partir de n'importe quel point de la ligne, sans rien sélectionner, est:
Il est polyvalent pour supprimer tout ce qui est sélectionné, ou une ligne par défaut si rien n'est sélectionné.
Compte tenu de la question, vous êtes probablement également intéressé par la réplication du "yank" de Vim,
yy
(bien que dans le langage d'Emacs un "yank" soit déroutant "put" de Vim,p
). C'est:Sympa et cohérent, et assez facile à retenir. Même légèrement similaire à Vim
i_CTRL-W
.Une fois que vous avez mis quelque chose dans l'anneau de destruction avec l'un ou l'autre des éléments ci-dessus, vous voudrez probablement le «copier» (coller):
(Notez que CS-backspace peut ne pas fonctionner dans le terminal Emacs.)
la source
Plutôt que d'avoir une clé séparée pour supprimer la ligne, ou d'avoir à appeler l'argument préfixe. Vous pouvez utiliser crux-smart-kill-line qui "tuera jusqu'à la fin de la ligne et tuera toute la ligne au prochain appel". Mais si vous préférez
delete
au lieu dekill
, vous pouvez utiliser le code ci-dessous.Pour une opération point-à-chaîne (kill / delete), je recommande d'utiliser zop-to-char
la source
la source