답변:
:%s/$/\*/g
작동해야합니다. 그래서해야 :%s/$/*/g
으로 MrWiggles이 올바르게 지적한다.
g
플래그는 필요하지 않습니다.
: search 명령보다 짧습니다.
:%norm A*
이것이 의미하는 바입니다.
% = for every line
norm = type the following commands
A* = append '*' to the end of current line
:
다음 명령을 미리 채울 :'<,'>
수 있습니다.:'<,'>norm A*
I
대신 사용하십시오 –:%norm I*
또한:
:g/$/norm A*
또한:
gg<Ctrl-v>G$A*<Esc>
g
은 global
모든 일치하는 줄로 무언가를 수행하는 명령입니다. $
모든 줄과 일치합니다. ^
또는 일 수도 있습니다 .*
. norm은 일반적으로 명령 모드에서 사용하는 명령을 실행합니다. 따라서 줄의 끝에 A*
추가 *
하는 것을 의미 합니다.
비주얼 블록 모드를 사용하는 것이 이러한 유형의 문제를 처리하는 데 더 좋고 다양한 방법이라고 생각합니다. 예를 들면 다음과 같습니다.
This is the First line.
This is the second.
The third.
"Hello world"를 삽입하려면 이 각 줄의 끝에 (공백 + 클립 보드) :
결과는 다음과 같습니다.
This is the First line. Hello world.
This is the second. Hello world.
The third. Hello world.
( Vim.Wikia.com의 예 )
jj
하나 를 누르는 대신 G
마지막 줄로 이동할 수 있습니다 . j
마지막 줄에 닿을 때까지 누르는 것이 실용적이지 않은 큰 파일에 유용합니다 .
하나의 옵션은 다음과 같습니다.
:g/$/s//*
이것은 모든 라인 엔드 앵커를 찾아서로 대체합니다 *
. 나는 "대체"라고 말하지만 실제로 앵커는 일반 문자가 아닌 특별한 것이기 때문에 추가 사항입니다. 자세한 내용 은 g- 예제를 참조하십시오 .
: % s / \ n / * \ r / g
첫 번째 것은 다른 곳에서는 정확하지만 Vim은 어떤 이유로 다른 줄 바꿈 처리를해야합니다.
:s///
,\n
널 문자에 해당합니다. 이 섹션:help sub-replace-special
은 관련이 있습니다.