vim에서, 때때로 라인에서 처음 몇 번의 일치 항목을 교체 할 기회가 있지만 모든 것을 좋아하지 g
는 않습니다 . 예 :
a a a a a
에
b b b a a
나는을 사용할 수 있다는 것을 알고 :s/a/b/[enter]:[up][enter]:[up][enter]
있지만 세 번의 반복에서 충분히 지루합니다. 잠재적 인 10 + 대체가있는 줄이 있습니다.
난 노력 했어:
:s/a/b/3g
: vim은 후행 문자에 대해 불평했습니다.:s/a/b/3
:이 행과 다음 두 행에서 첫 번째 항목을 변경합니다.3:s/a/b
: 이전과 동일합니다.:s/a/b/g3
:이 행과 다음 두 행의 모든 발생을 변경합니다.:3s/a/b
: 3 행에서 첫 번째 항목을 변경합니다.:/a/,3/a/s/a/b
: 파일에a
포함a
된 다음 행 과 세 번째 행 사이의 각 행에서 첫 번째 발생을 변경 합니다 (필요한 경우 반전하도록 프롬프트).:/a/,/\([^a]*a\)\{3\}/s/a/b/
: 이것과 다음 행 사이의 각 줄에서 첫 번째 항목을 3a
초로 변경합니다 (여러 문자 검색으로 쉽게 확장 할 수 없었습니다).
그리고 다양한 다른 주소 지정 패턴 중 어느 것도 효과가 없었습니다. 나는 :s
이 문제에 대한 답을 찾으려고하는 명령 에 대해 상당한 금액을 배웠지 만 여전히 해결하지 못했습니다.
이 작업을 수행하는 방법을 아는 사람이 있습니까?
(특정 범위에 대한 보너스 포인트, 예 : 두 번째에서 네 번째 발생)
n
그리고 .
내가 여기를 사용하여 생각하지 않았지만,. 확실히 향상되었습니다. 감사합니다.
s/a/=something/
트릭을 수행해야합니다 ( :help sub-replace-=
). 나는 Vim something
에서 방망이 를 쓸만큼 유창하지 않다 .
:[up][enter]
로 대체 할 수 있습니다 . &
이상적이지는 않지만 적어도 덜 고통 스럽습니다.