vim 검색에서 대화형 편집이 N번째로 나타납니다.

vim 검색에서 대화형 편집이 N번째로 나타납니다.

단어가 여러 번 나타나는 텍스트가 주어지면 텍스트를 대화형으로 검색하고 fooN번째 발생 시 foo편집하고 싶습니다.

그러한 작업에 대한 패턴 만 찾을 수 있지만 search and replace요점은 모든 항목을 편집하고 싶지 않고 foo일부 컨텍스트에서 찾은 패턴만 편집하고 싶다는 것입니다.

답변1

c실행할 때 플래그를 사용할 수 있습니다검색 및 바꾸기:

:%s/foo/bar/gc

vim발견될 때마다 교체를 확인하라는 foo메시지가 표시됩니다 .yes/no

또는 n번째 항목을 검색하려면 다음을 foo수행할 수 있습니다.

n/foo

그런 다음 교체 여부를 결정할 수 있도록 vimn번째 항목으로 이동합니다 .foo

답변2

내가 올바르게 이해했다면:

  1. 찾다

    /fooEnter

  2. 다음으로n

  3. "아, 이거 지우고 싶어"
    • dw
  4. 계속하다n
  5. "아, 이걸로 바꾸고 싶어 bar"
    • cwbarEsc
  6. 계속하다 n...
  7. "아, 이걸로 바꾸고 싶어 baz"
    • cwbazEsc
  8. 계속하다 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유형을 변경합니다.

  1. /fooEnter 첫 번째 위치로 이동하려면 Enter를 누르세요.foo
  2. 8n다음 위치로 8번 점프하려면 입력하세요 . 그럼 당신은 아홉 번째로 나타납니다
  3. cw단어를 변경하고 새 단어를 입력하려면 입력하세요 .

에 설명된 대로 2단계와 3단계를 계속할 수 있습니다.이 답변

관련 정보