2009-08-12 6 views
4

J'ai un mode de surbrillance (oubliez ce qu'on appelle) qui me montre, en mettant en évidence le texte, quelle région j'ai choisi entre marque et point. Cela est très pratique lorsque vous tuez des régions. Cependant, parfois, même quand aucun texte n'est visiblement mis en surbrillance mais que je presse accidentellement C-w, il tue parfois du texte. Ma question est comment puis-je arrêter ce comportement? Je veux seulement qu'il tue le texte SI je l'ai mis en évidence.comment éviter de tuer accidentellement du texte dans emacs?

+1

InRe votes serrés: puisque la réponse semble être en elisp, je pense que SuperUser n'est probablement pas * le meilleur endroit pour cela. Ça devrait rester ici. – dmckee

Répondre

8

définir votre propre fonction et remplacer les clés de liaison:

(defun my-kill-region() 
    (interactive) 
    (if (region-active-p) 
     (call-interactively 'kill-region) 
    (message "Region not active, didn't kill"))) 

(global-set-key (kbd "C-w") 'my-kill-region) 
1

Appuyez sur C-Space (set-mark-command) juste avant C-w pour définir la marque à la position du curseur afin qu'il n'y ait pas de texte entre la marque et la position du curseur à détruire.

+2

Donc, avant d'appuyer accidentellement sur C-w, il faut appuyer accidentellement sur C-space? – Beta

6
M-x transient-mark-mode 

va maintenir la région en surbrillance même après avoir commencé à taper, et lorsque vous utilisez C-Space pour définir la marque. Ensuite, vous verrez ce que C-w va tuer.

6

Définissez la variable mark-even-if-inactive-nil. De cette façon, vous ne pouvez tuer le texte que s'il est réellement mis en surbrillance.

Questions connexes