Emacs에서 블록을 선택하거나 강조 표시하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/657672

  •  19-08-2019
  •  | 
  •  

문제

마우스를 사용하지 않고 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-modeEMACS 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 복사를 위해.
  • -와이 붙여 넣기.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top