2009-08-12 1 views
4

텍스트를 강조 표시하여 마크와 포인트 사이에서 내가 선택한 영역을 보여주는 강조 표시 모드가 있습니다 (호출 된 것을 잊어 버림). 이것은 지역을 죽일 때 매우 편리합니다. 그러나 때로는 텍스트가 눈에 띄게 강조 표시되어 있지만 우연히 C-w를 눌러도 때때로 일부 텍스트가 죽는 경우가 있습니다. 내 질문은이 행동을 어떻게 멈추게 할까? 나는 강조 표시 한 경우에만 텍스트를 죽이기를 원합니다.이맥스에서 실수로 텍스트를 죽이는 것을 피하는 방법은 무엇입니까?

+1

InRe close votes : 답변이 elisp에있는 것 같아서 수퍼 유저가 아마도이 장소에 가장 적합하지 않을 것입니다. 여기 있어야 해. – dmckee

답변

8

은 자신의 함수를 정의하고 키 바인딩을 오버라이드 (override) :

(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 (set-mark-command)를 C-w 바로 전에 눌러 커서 위치에 마크를 설정하여 마크와 커서 위치 사이에 텍스트가 없도록하십시오.

+2

실수로 C-w를 누르기 전에 실수로 C-space를 눌러야합니까? – Beta

6
M-x transient-mark-mode 

입력을 시작한 후에도 C- 스페이스를 사용하여 마크를 설정하더라도 영역이 강조 표시됩니다. 그러면 C-w가 죽일 것입니다.

6

nil에 변수 mark-even-if-inactive를 설정합니다. 그렇게하면 실제로 강조 표시된 텍스트 만 죽일 수 있습니다.