마우스를 사용하지 않고 vim의 시각 모드처럼 키보드에서 수행하는 이맥스에서 블록을 선택하거나 강조 표시하고 싶습니다. 키보드에서이 작업을 수행하는 가장 쉬운 방법은 무엇입니까?
답변:
emacs에서 region-rectangle을 살펴보십시오.
즉, 당신은 평소처럼 선택을 시작 Control- Space다음으로 지역을 죽일 Control- x r k붙여 넣기 (또는 홱 당김 과 블록을 살해) Control- x r y.
질문을 올바르게 이해했다면 원래 직사각형 영역에 관한 것이 아닙니다.
C-Spc
현재 위치에 표시를합니다.
나중에 커서가 어디에 있든 마지막 표시와 현재 위치 사이의 텍스트가 "선택"됩니다 (를 활성화하여 강조 표시 할 수 transient-mark-mode
있지만 강조 표시를 원하지 않을 때 표시를 삭제해야 함을 의미합니다).
다음과 같은 명령을 사용하여 해당 지역에서 작업 할 수 있습니다.
C-w
. . 킬 지역. 이것은 영역을 삭제하고 킬 링에 넣습니다.
C-y
. . 양키. 킬 링의 마지막 스 니펫이 삽입됩니다.
M-y
. . 사이클 킬 링. 직후 C-y
에 이것은 킬 링의 다른 스 니펫으로 당겨진 부분을 대체합니다.
M-w
. . 킬 링에 영역을 저장합니다. 과 유사 C-w
하지만 삭제하지는 않습니다.
이것은 기본적인 사용법입니다. 마크는 다른 용도로도 사용됩니다. 튜토리얼 ( C-h t
)을 추천합니다 .
C-s
C-r
이 맥락에서 일반적으로 지역의 끝 / 시작을 찾기 위해 사용되는 점에 주목할 가치가 있습니다. (매크로에서 특히 유용합니다.)
M-x indent-region
.
indent-region
잘 작동하지만 c-indent-line-or-region
합니다 (바인딩하는 한, 탭 키)를하지 않습니다. 마지막 기능은 표시된 영역이 아니라 선택한 영역, 즉 마우스로 선택한 것처럼 강조 표시된 영역에서 .
C-Spc
마크를 두는 곳을 두 번 . 임시 표시 모드가 일시적으로 활성화됩니다 (취소 할 때까지 (사용 C-g
)). 그런 다음 포인트를 이동하여 선택한 영역이 나타나는지 확인합니다.
"직사각형 선택 작업" 문서 , 특히 주석 섹션을 참조하십시오. "CUA 직사각형 지원"이라는 제목 의 CUA 모드 문서 섹션도 참조하십시오 . vimeo에 멋진 비디오 도 있습니다 .
이기는 하지만 C-SPC
포인트가있는 곳에서 무언가를 표시하는 일반적인 방법 , 시작 / 종료 포인트로 명시 적으로 이동하지 않는 더 빠르고 쉬운 방법이 있습니다.
M-h
— 단락 을 표시 하는 중요한 수단 . "문단"은 종종 코드 블록을 의미합니다.
C-M-h
및 C-M-@
- 각각 sexps 및 defuns 를 표시 합니다. 이것은 lisps뿐만 아니라 여러 언어에서 작동합니다.
Shift 누르기 — 이동 중에 강조하는 또 다른 매끄러운 방법입니다. 예를 들어 M-S-f
전체 단어를 앞으로 선택합니다. 이것은이며
shift-select-mode
Emacs 24+에서 기본적으로 활성화되어 있습니다. 치 클릿이 아닌 일부 키보드에서는 C-S-
새끼 손가락 하나로 길게 누를 수 있어야합니다 .
이 중 하나를 반복해서 눌러 선택 영역을 늘릴 수 있습니다.
(참고 : C-g
실험 중 표시를 취소 하려면 자주 사용하십시오 .)
지역 및 사물 선택을 개선 하는 몇 가지 추가 패키지 가 있습니다. 이들은 모두 잘 어울리고 서로 다른 사용 사례에 적합합니다. 모두 사용하세요!
Expand-Region : 영역 확장은 선택된 영역을 의미 단위로 증가시킵니다. 원하는 것을 선택할 때까지 키를 계속 누르십시오. C-=
권장되는 바인딩입니다. 필요한 것을 얻으려면 몇 번 누르십시오.
Easy-Kill :M-w
및 니모닉을사용하여 단어, 성별, 목록 등과 같은 다양한 유형을 선택합니다.
Zop-to-Char : zap-to-char 와 비슷하지만 멋진 선택 및 기타 메뉴 기반 작업을 제공합니다.
diff-hl : 커밋되지 않은 변경된 영역을 강조 표시합니다. diff-hl-mark-hunk
덩어리를 선택 / 표시하는 데사용합니다.
Edin Salkovic의 답변을 확장하려면 CUA 모드를 사용하는 경우을 사용하여 시각적 블록 선택을 시작할 수 있습니다. CUA 문서에 설명 된 블록 선택을 제어하는 바로 가기가 많이 있습니다 .
mark-defun