모든 줄에 접두사를 추가하는 방법은 무엇입니까?


35

아래 코드가 있습니다.

Hello
There
I am some code

그리고 앞에 코드를 추가하고 싶습니다 :

I said Hello
I said There
I said I am some code

각 줄에 접두사를 어떻게 추가합니까?

답변:


47

M-x string-rectangle으로 묶인 접두사를 추가 할 수 있습니다 C-x r t. 이것은 사각형 선택에서 작동하는 일련의 명령의 일부입니다 . 이것은 사각형의 모든 줄에 텍스트를 삽입합니다.

첫 번째 줄의 시작 부분에 표시를 설정하고 시작 하려는 마지막 줄 의 첫 번째 문자로 커서를 이동하십시오 .

*Hello
 There
▮I am some code

그런 다음을 사용 C-x r t하고 접두사 ( I said)를 입력하고을 누릅니다 RET. 그러면 사각형의 각 줄에 텍스트가 추가됩니다.

I said Hello
I said There
I said I am some code

마크와 같은 열에 커서를 놓지 않으면 사각형의 해당 부분을 덮어 씁니다.

*Hello
 There
 I am▮ some code

동일한 명령으로 다음을 수행합니다.

I said o
I said e
I said  some code

3
당신은 좋은 답변 배지 를 얻는 두 번째 사람입니다 :)
nicael

대안은을 사용하는 것 M-x string-insert-rectangle입니다. 그것은 매우 비슷하지만 선택의 각 줄의 시작 부분에 string-insert-rectangle 삽입 하는 반면 string-rectangle 대체는 대체 하므로 후자를 사용하면 아무것도 덮어 쓰지 않으려면 선택에 대해 더 정확해야합니다.
Jeff Clites

32

multiple-cursors-mode를 사용 하여 모든 줄에 커서를 놓을 수 있습니다 . 그런 다음 입력 한 텍스트가 각 줄에 삽입됩니다.

코드 조각의 시작 부분부터 시작합니다.

▮Hello
 There
 I am some code

그런 다음 C->두 번 누르십시오 . (이것은 제안 된 키 바인딩입니다. 직접 설정해야합니다.) 그러면 다음 두 줄에 두 개의 추가 커서가 만들어집니다.

▮Hello
▮There
▮I am some code

그런 다음을 입력하십시오 I said. 텍스트는 각 줄에 추가됩니다 :

I said ▮Hello
I said ▮There
I said ▮I am some code

마지막으로 RET여러 커서 모드를 종료하고 마지막 커서에서 포인트를 남기려면 누르십시오.

I said Hello
I said There
I said ▮I am some code

작동 방식을 보여주는 비디오는 다음과 같습니다 .


26

개인적으로 선호합니다 replace-regexp( "^"을 "I said"로 대체).


12

또 다른 옵션은 매크로를 사용하는 것입니다. 매크로는이 특정 경우에 약간 복잡하더라도 직사각형 선택이나 여러 커서보다 많은 작업을 처리 할 수 ​​있습니다.

커서를 첫 번째 줄의 시작 부분에 놓고을 F3눌러 기록을 시작하고 텍스트를 삽입 한 다음 커서를 다음 줄의 시작 부분으로 이동하고을 F4눌러 기록을 중지하십시오. 이제 F4매크로 C-2 F4를 반복하거나 두 번 C-0 F4반복 하거나 오류 (예 : 라인 부족)가 발생할 때까지 반복하려면 다시 누르십시오 .


9

당신은 악을 설치 하고 여러 가지 생생한 방식으로 그것을 할 수 있습니다 -나는 Ctrl+ V를 사용하여 각 줄을 표시 한 다음 Shift+ I를 삽입하고 삽입하려는 텍스트를 입력하고 입력하고 ESC삽입 모드를 종료하기 위해 누르십시오. 각 줄 앞에 텍스트가 추가됩니다. 이것은 emacs 사각형 선택과 매우 유사하지만 몇 번의 키 입력은 적습니다.


7

이것은 artagnon의 답변과 매우 유사하지만 replace-regexp어떤 키에도 구속되지 않습니다.

그래서, 실제로 사용 query-replace-regexp에 기본적으로 구속 된 C-M-%후 교체 ^, 지정된 접두사로 I said다음 입력 !더 이상 메시지를 표시하지 않고 모든 것을 바꿀 수 있습니다.


4

당신이 경우 cua-mode활성화, 다음 :

  • C-a 줄의 시작으로 이동
  • C-RET 직사각형을 시작하려면
  • 세 번째 줄로 이동하려면 (아래로 키)를 두 번
  • I said 삽입 할 텍스트로
  • C-RET 직사각형을 끝내려면

나는 cua-modeEmacs 표준 사각형에 비해 작업 방식을 선호합니다 .

  • C-a 줄의 시작으로 이동
  • C-SPC 직사각형을 시작하려면
  • 세 번째 줄로 이동하려면 (아래로 키)를 두 번
  • C-x r t I said RET 텍스트를 삽입

cua-mode표준 이맥스 사각형에 비해 두 개의 키 입력을 저장합니다.

그러나 나를 위해 cua 모드의 추가 장점은 사각형에 텍스트를 추가 할 수 있다는 것입니다 (개인적 으로 표준 Emacs 사각형으로 텍스트 를 추가 하는 방법을 모릅니다 ). cua 모드에서는 RET키 앞에 한 번만 누르면 I said.

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