Emacs에서 선택한 텍스트 영역을 특정 간격만큼 이동하는 방법은 무엇입니까?


26

파이썬 코드를 작성 중이므로 각 행을 개별적으로 거치지 않도록 행 블록을 이동 / 이동하는 것이 중요합니다. 애드온없이 어떻게 할 수 있습니까? 이 작업을 수행 할 수있는 작업 키 입력 명령이 있습니까?


3
Python 이외의 답변은 emacs.stackexchange.com/q/11emacs.stackexchange.com/q/18을 참조하십시오 .
legoscia

답변:


40

기본적으로 indent-rigidly바인딩 된 command를 사용하십시오 C-x TAB.

접두어 인수 (예 : 등)를 사용하여 들여 쓰기 할 공백 수를 지정할 수 있습니다 C-5 C-x TAB.

또는 명령을 호출 한 다음 왼쪽 / 오른쪽 화살표를 사용하여 들여 쓰기 레벨을 대화식으로 조정할 수 있습니다.


접두사 인수를 어떻게 추가합니까?
Vass

1
C-5 C-x TAB를 들어 현재 영역을 5 칸 들여 쓰기하십시오.
glucas

훌륭하지만 왜 첫 번째 줄도 움직이지 않습니까? 원하는 선 세트를 이동하려면 선택 위의 선의 마지막 부분을 가져와야합니다.
Vass

1
이전 줄에서 아무것도 선택할 필요는 없지만 들여 쓰기하려는 첫 번째 줄의 시작 부분에서 선택하려고합니다. 예를 들어, C-a줄의 시작 부분으로 이동하고, C-SPC영역 표시를 시작 C-n C-n하고, 두 줄을 아래로 이동 C-5 C-x TAB하여이 두 줄을 들여 쓰기하십시오.
glucas

1
"왼쪽 / 오른쪽 화살표를 사용하여 들여 쓰기 수준을 대화식으로 조정하십시오"정말로? 큰! 나는 이것을 몰랐고 때로는 추가하거나 제거 해야하는 공간의 양을 추측해야했습니다. 이것이 도움이되기를 바랍니다.
imz-Ivan Zakharyaschev

9

python-mode.el을 사용 C-c >하거나 C-c <블록을 왼쪽 또는 오른쪽으로 이동하는 경우


위의 줄의 마지막 부분을 선택하지 않으면 선택의 첫 줄이 어떻게 움직이지 않습니까?
Vass

이 동작을 재현 할 수 없습니다. 선택의 모든 줄이 이동됩니다. Emacs 24.4
Lompik

glucas '의 코멘트는 라인의 시작에서 선택하지 않으면 이런 일이 일어날 것이라고 말합니다
Vass

6

string-rectangle명령 ( C-x r t) 선택된 영역의 임의의 텍스트 (공간 포함)에 삽입 할 수있다.

이 텍스트 블록이 있고 모든 줄 앞에 5 개의 공백을 삽입하려고한다고 가정합니다.

abc
  def
    ghi

먼저 아래와 같이 "0 컬럼"영역을 선택하십시오 (점은 문자 'a'에 있고 마크는 'ghi'를 포함하는 행에서 동일한 컬럼에 있습니다.

▮bc
  def
▯   ghi

이제를 사용 string-rectangle하여 선택한 영역에 삽입하려는 텍스트를 삽입하십시오. 이 예에서는 점과 마크를 포함하여 그 사이의 모든 행에 5 개의 공백을 삽입합니다.

C-x r t M-5 SPC RET

그것은 아래에 강제로 들여 쓰기 된 텍스트를 줄 것입니다.

     abc
       def
         ghi

4

있습니다 C-x TAB( indent-rigidly). 들여 쓰기하려는 공간 수를 나타내는 접두사 인수를 지정하면 음수로 많은 공간이 제거됩니다.


0

Alt-4를 누른 다음 SPC를 누르면 원하는 결과를 얻습니다. 이것이 최선의 방법인지 확실하지 않지만 잘 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.