[regex] Vim의 각 줄 끝에 문자열을 어떻게 추가합니까?

*Vim의 각 줄 끝에 추가하고 싶습니다 .

코드를 성공적으로 시도하지 못했습니다

:%s/\n/*\n/g



답변

:%s/$/\*/g

작동해야합니다. 그래서해야 :%s/$/*/g으로 MrWiggles이 올바르게 지적한다.


답변

: search 명령보다 짧습니다.

:%norm A*

이것이 의미하는 바입니다.

 %       = for every line
 norm    = type the following commands
 A*      = append '*' to the end of current line


답변

또한:

:g/$/norm A*

또한:

gg<Ctrl-v>G$A*<Esc>


답변

비주얼 블록 모드를 사용하는 것이 이러한 유형의 문제를 처리하는 데 더 좋고 다양한 방법이라고 생각합니다. 예를 들면 다음과 같습니다.

This is the First line.
This is the second.
The third.

“Hello world”를 삽입하려면 이 각 줄의 끝에 (공백 + 클립 보드) :

  • 첫 번째 행의 문자에서 Ctrl-V를 누르십시오 (또는 Ctrl-V를 붙여 넣으면 Ctrl-Q).
  • jj를 눌러 시각적 블록을 세 줄로 확장합니다.
  • $를 눌러 시각적 블록을 각 줄의 끝까지 확장합니다. A를 누른 다음 공백을 누른 다음 Hello world를 입력하십시오. + 그런 다음 Esc.

결과는 다음과 같습니다.

This is the First line. Hello world.
This is the second. Hello world.
The third. Hello world.  

( Vim.Wikia.com의 예 )


답변

각 줄의 끝에 Hello world를 추가하려면 다음을 수행하십시오.

:%s/$/HelloWorld/

특정 라인 수에 대해이 작업을 수행하려면 20 ~ 30을 사용하십시오.

:20,30s/$/HelloWorld/

각 줄의 시작 부분 에서이 작업을 수행하려면 다음을 사용하십시오.

:20,30s/^/HelloWorld/


답변

당신은 정말로 g끝에 필요하지 않습니다 . 따라서 다음과 같이됩니다.

:%s/$/*

또는 *끝 부분을 원한다면 14-18 행을 말합니다.

:14,18s/$/*

또는

:14,18norm A*


답변

… 각 줄 앞에 *를 붙이려면 (시작을 추가하십시오),

%s/^/*/g