Programing

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

crosscheck 2020. 10. 16. 07:09
반응형

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


마우스를 사용하지 않고 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)을 추천합니다 .


Emacs 24.4에는 이제 사각형 표시 모드가 있습니다. 그것을 호출 할 Cx 공간.


"직사각형 선택 작업" 문서 , 특히 주석 섹션을 참조하십시오. "CUA 직사각형 지원"이라는 제목 CUA 모드 문서 섹션도 참조하십시오 . vimeo에 멋진 비디오 도 있습니다 .


C-SPC포인트가있는 곳에서 무언가를 표시하는 일반적인 방법 이지만 , 시작 / 종료 포인트로 명시 적으로 이동하지 않는 더 빠르고 쉬운 방법이 있습니다.

내장 된 선택 단축키

  • M-h단락표시 하는 중요한 수단 . "문단"은 종종 코드 블록을 의미합니다.

  • C-M-hC-M-@- 각각 sexps 및 defuns표시 합니다. 이것은 lisps뿐만 아니라 여러 언어에서 작동합니다.

  • Shift 누르기 — 이동 중에 강조하는 또 다른 매끄러운 방법입니다. 예를 들어 M-S-f전체 단어를 앞으로 선택합니다. 이것은이며 shift-select-modeEmacs 24+에서 기본적으로 활성화되어 있습니다. 치 클릿이 아닌 일부 키보드에서는 C-S-새끼 손가락 하나로 길게 누를 수 있어야합니다 .

이 중 하나를 반복해서 눌러 선택 영역을 늘릴 수 있습니다.

(참고 : C-g실험 중 표시를 취소 하려면 자주 사용하십시오 .)

부가 기능

지역 및 사물 선택을 개선 하는 몇 가지 추가 패키지 가 있습니다. 이들은 모두 잘 어울리고 서로 다른 사용 사례에 적합합니다. 모두 사용하세요!

  • Expand-Region : 영역 확장은 선택된 영역을 의미 단위로 증가시킵니다. 원하는 것을 선택할 때까지 키를 계속 누르십시오. C-=권장되는 바인딩입니다. 필요한 것을 얻으려면 몇 번 누르십시오.

  • Easy-Kill :M-w및 니모닉을사용하여 단어, 성별, 목록 등과 같은 다양한 유형을 선택합니다.

  • Zop-to-Char : zap-to-char 와 비슷하지만 멋진 선택 및 기타 메뉴 기반 작업을 제공합니다.

  • diff-hl : 커밋되지 않은 변경된 영역을 강조 표시합니다. diff-hl-mark-hunk덩어리를 선택 / 표시하는 데사용합니다.


사용 Control- Space마크를 설정하고 커서를 이동합니다.

transient-mark-mode의지는 당신을 위해 선택을 강조 표시합니다. M- x transient-mark-mode.

사용자 정의를 사용하여 기본적으로이 모드를 활성화하도록 Emacs를 설정할 수 있습니다. M- x customize-option RET transient-mark-mode.


... 우분투를 사용하고 있고 C-spc작동하지 않는 경우 : 다음과 같이 IBus "다음 입력 방법"키 바인딩을 지워야합니다.

ibus-setup"다음 입력 방법"에 대한 키 바인딩을 실행 하고 다른 것으로 변경합니다 (또는 "..."버튼을 클릭 한 다음 "삭제"버튼을 클릭하여 완전히 삭제).

SO 질문에 대한 답변 에서 인용 한 내용입니다 .


Edin Salkovic의 답변을 확장하려면 CUA 모드를 사용하는 경우을 사용하여 시각적 블록 선택을 시작할 수 있습니다. CUA 문서에 설명 된 블록 선택을 제어하는 ​​바로 가기가 많이 있습니다 .


Emacs 25를 사용하면 C- Space를 누른 다음 관심있는 텍스트 영역을 강조 표시하거나 선택하려는 위치로 커서를 이동합니다. 그 후에 다음 명령이 필요할 수 있습니다.

  • C- w절단 용.
  • M- w복사 용.
  • C- y붙여 넣기.

참고 URL : https://stackoverflow.com/questions/657672/how-to-select-or-highlight-a-block-in-emacs

반응형