Emacs에서 블록을 선택하거나 강조 표시하는 방법은 무엇입니까?
문제
마우스를 사용하지 않고 vim의 시각적 모드처럼 키보드에서 수행하여 emacs에서 블록을 선택하거나 강조 표시하고 싶습니다.키보드로 이 작업을 수행하는 가장 쉬운 방법은 무엇입니까?
해결책
EMACS의 지역 경관을 살펴보십시오.
요컨대, 당신은 평소와 같이 선택을 시작합니다 제어-우주, 그런 다음 지역을 죽입니다 제어-엑스 아르 자형 케이 그리고 붙여 넣기 (또는 양키)와 함께 죽인 블록 제어-엑스 아르 자형 와이.
다른 팁
질문을 올바르게 이해한다면 원래 직사각형 영역에 관한 것이 아닙니다.
C-Spc
현재 위치에 표시를합니다.
커서가 나중에 어디에 있든, 마지막 마크와 현재 위치 사이의 텍스트는 "선택"됩니다 (활성화하여이를 강조 할 수 있습니다. transient-mark-mode
, 그러나 이것은 또한 하이라이트를 원하지 않을 때 마크를 삭제해야한다는 것을 의미합니다).
다음과 같은 명령으로 해당 지역에서 작동 할 수 있습니다.
C-w
. . 지역을 죽입니다. 이것은 지역을 킬 링으로 삭제하고 넣습니다.
C-y
. . 양키. 이것은 킬 링에서 마지막 스 니펫을 삽입합니다.
M-y
. . 사이클 킬 링. 직후 C-y
, 이것은 킬 링의 다른 스 니펫으로 Yanked 부분을 대체합니다.
M-w
. . 지역을 킬 링으로 저장하십시오. 처럼 C-w
, 그러나 삭제하지 않습니다.
이것은 단지 기본 사용법입니다. 마크도 다른 용도로 사용됩니다. 튜토리얼을 추천합니다 (C-h t
).
Emacs 24.4에는 이제 직사각형 표시 모드가 있습니다.이를 호출하려면 C-x 공간을 사용하세요.
기사보기 : "직사각형 선택 작업", 특히 주석 섹션. 섹션도 참조하십시오 CUA 모드 문서 "CUA 사각형 지원"이라는 제목. 또한 a Vimeo에 대한 멋진 비디오.
하지만 C-SPC
요점이 어디에서나 무언가를 표시하기 시작하는 일반적인 방법입니다. 시작/종료점으로 명시 적으로 움직이지 않는 빠르고 쉬운 방법이 종종 있습니다 ...
내장 선택 단축키
M-h
- 중요한 수단 단락을 표시하십시오. "단락"은 종종 코드 블록을 의미합니다.C-M-h
그리고C-M-@
- 을 위한 Sexps와 Defuns를 표시합니다각각. 이것은 LISP뿐만 아니라 여러 언어에서 작동합니다.교대를 유지하십시오 - 움직임 중에 강조하는 또 다른 매끄러운 방법. 예,
M-S-f
전체 단어를 선택합니다. 이것은shift-select-mode
EMACS 24+에서 기본적으로 활성화됩니다. 일부 (비 체계) 키보드에서는C-S-
핑키로.
이 중 하나를 반복해서 눌러 선택을 늘릴 수 있습니다.
(참고 : 사용 C-g
실험하는 동안 마킹을 취소하기 위해 종종.)
애드온
몇 가지가 있습니다 애드온 패키지 그것은 지역과 사물을 선택하는 것을 향상시킵니다. 이것들은 모두 잘 재생되며 다른 사용 사례에 맞습니다. 그들 모두를 사용하십시오!
확장 지역: 확장 영역은 선택된 영역을 시맨틱 단위로 증가시킵니다. 원하는 것을 선택할 때까지 키를 계속 누르십시오.
C-=
권장되는 바인딩입니다. 필요한 것을 얻으려면 몇 번 쳤다.쉬운 킬: 사용
M-w
그리고 단어, sexps, 목록 등과 같은 다른 유형의 물건을 선택하는 니모닉.Zop-to-char: 처럼 zap-to-char, 그러나 좋은 선택 및 기타 메뉴 중심의 동작을 제공합니다.
diff-hl: 커밋되지 않은 변경된 지역을 강조하십시오. 사용
diff-hl-mark-hunk
덩어리를 선택/표시하려면.
사용 제어-우주 마크를 설정하고 커서를 움직입니다.
그만큼 transient-mark-mode
선택을 강조 할 것입니다. 중-엑스 transient-mark-mode
.
사용자 정의를 사용하여 기본적 으로이 모드를 활성화하도록 EMAC를 설정할 수 있습니다. 중-엑스 customize-option
ret transient-mark-mode
.
... 그리고 당신이 우분투를 사용하는 경우 C-SPC 당신을 위해 작동하지 않습니다 : 당신은 ibus "Next Input Method"KeyBinding을 지우야합니다.
운영
ibus-setup
"다음 입력 메소드"의 키 바인딩을 다른 것으로 변경하거나 "..."버튼을 클릭 한 다음 "삭제"버튼을 클릭하여 완전히 삭제).
인용문 답변 그렇게 질문에.
Edin Salkovic의 답변을 확장하려면 CUA 모드를 사용하는 경우 시각적 블록 선택을 시작할 수 있습니다. 다음에 설명 된 블록 선택을 제어하기위한 바로 가기가 많이 있습니다. CUA의 문서화.
EMACS 25를 사용하면 간단히 누르십시오 씨-우주 그런 다음 관심있는 텍스트 영역을 강조 표시/선택하려는 곳마다 커서를 이동하십시오. 그런 다음 다음 명령이 필요할 수 있습니다.
- 씨-w 절단을 위해.
- 중-w 복사를 위해.
- 씨-와이 붙여 넣기.