단어가 여러 번 나타나는 텍스트가 주어지면 텍스트를 대화형으로 검색하고 foo
N번째 발생 시 foo
편집하고 싶습니다.
그러한 작업에 대한 패턴 만 찾을 수 있지만 search and replace
요점은 모든 항목을 편집하고 싶지 않고 foo
일부 컨텍스트에서 찾은 패턴만 편집하고 싶다는 것입니다.
답변1
c
실행할 때 플래그를 사용할 수 있습니다검색 및 바꾸기:
:%s/foo/bar/gc
vim
발견될 때마다 교체를 확인하라는 foo
메시지가 표시됩니다 .yes/no
또는 n번째 항목을 검색하려면 다음을 foo
수행할 수 있습니다.
n/foo
그런 다음 교체 여부를 결정할 수 있도록 vim
n번째 항목으로 이동합니다 .foo
답변2
내가 올바르게 이해했다면:
찾다
/foo
Enter다음으로n
- "아, 이거 지우고 싶어"
- dw
- 계속하다n
- "아, 이걸로 바꾸고 싶어
bar
"- cw
bar
Esc
- cw
- 계속하다 n...
- "아, 이걸로 바꾸고 싶어
baz
"- cw
baz
Esc
- cw
- 계속하다 n...
편집/수정:
편의상 다음을 추가했습니다.
imap <C-d> <ESC>
to .vimrc
- 이것을 잊어버리고 이것이 기본 매핑이라고 생각했습니다. 수정되었습니다.
답변3
일반 검색 및 바꾸기 옵션과 마찬가지로 vim
확인 옵션을 전달하여 사용할 수 있습니다 gc
.
예를 들어, 단어를 바꾸려면 다음 줄을 추가하세요 foo
.bar
:%s/foo/bar/gc
따라서 단어를 찾을 때마다 foo
해당 단어를 바꿀 것인지 확인을 요청합니다 bar
. 누르면 교체되고 그렇지 않으면 y
교체되지 n
않습니다.
답변4
vim
명령을 반복할 빈도를 먼저 입력하면 여러 명령을 반복할 수 있습니다. 이는 명령에도 적용됩니다 n
.
예를 들어 9번째 발생 foo
유형을 변경합니다.
/foo
Enter 첫 번째 위치로 이동하려면 Enter를 누르세요.foo
8n
다음 위치로 8번 점프하려면 입력하세요 . 그럼 당신은 아홉 번째로 나타납니다cw
단어를 변경하고 새 단어를 입력하려면 입력하세요 .
에 설명된 대로 2단계와 3단계를 계속할 수 있습니다.이 답변