2009-08-12 9 views
4

私は、テキストを強調表示して、私がマークとポイントの間でどの領域を選択したかを示すハイライトモードを持っています。これは地域を殺すときに非常に便利です。しかし、時には、テキストが目に見えるように強調表示されていても、間違ってC-wを押しても、時にはテキストが殺されることがあります。私の質問は、どうやってこの行動を止めるのだろうか?私はそれを強調表示している場合のみ、テキストを殺すことが欲しい。Emacsでテキストを誤って削除するのを避けるには?

+1

InRe close votes:答えがelispにあるようだから、私はSuperUserがおそらくこれのための最良の場所ではないと思う。それはここにとどまるべきです。 – dmckee

答えて

8

は独自の関数を定義し、キーバインディングを上書き:

(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

C-wの直前でC-wを押すと、カーソル位置にマークが設定され、マークとカーソル位置の間にテキストがなくなります。

+2

誤ってC-wを押す前に、誤ってC-spaceを押すべきですか? – Beta

6
M-x transient-mark-mode 

は、入力を開始してからC-Spaceを使用してマークを設定しても、領域をハイライト表示したままにします。それでC-wが殺すものが見えます。

6

nilに変数mark-even-if-inactiveを設定します。そうすれば、実際に強調表示されているテキストのみを削除することができます。

関連する問題