작은 웹사이트를 구성하는 HTML 파일이 여러 개 있습니다. 여러 줄의 코드가 파일 상단에 중복되어 있고(비록 다르지만 <title>
) 하단에 몇 줄이 중복되어 있습니다.
Jekyll과 같은 사전 컴파일러를 사용하고 레이아웃을 사용하면 코드를 한 번만 변경하면 되지만 이로 인해 프로젝트가 불필요하게 복잡해진다는 느낌이 듭니다. 정규 표현식을 사용할 수 있습니다(현재 제가 하고 있는 작업은 다음과 같습니다.DirDo.vim), 그런데 이게 좀 번거롭네요.
그렇다면 파일 세트에서 동일한 부분을 감지하고 모든 부분을 한 번에 편집할 수 있는 플러그인이 있습니까? 아니면 제가 생각하지 못했던 다른 방법이 있을까요?
답변1
Vim에서 이 문제는 두 부분으로 나눌 수 있습니다:
- 여러 파일에 편집 내용 적용
- 같은 편집 반복
1.의 경우 다음을 사용하고 있습니다.DirDo플러그인; 대안은 내장 , 등이 될 것 :argdo
입니다 :bufdo
.
2.의 경우 Vim 명령을 조합하여 사용할 수 있습니다. 가장 강력한 방법은 :substitute
a를 사용하여 :[range]
줄을 선택하고 정규 표현식을 사용하여 해당 줄의 텍스트를 수정하는 것입니다.
매크로를 기록하고 를 통해 다시 적용할 수도 있습니다 :normal! @a
. 물론, 이것이 단일 라인의 시작 부분에서 단일 편집인 경우 반복을 통해 충분할 것입니다(그러나 단일 편집 작업과 라인의 시작 부분에 커서를 위치시키는 :[address]normal! .
사실로 제한됩니다 ).:normal
답변2
당신이 사용할 수있는CtrlSF.vim모든 파일에서 특정 패턴을 검색한 다음 다음을 사용하여 검색 결과 주변 부분을 동시에 편집합니다.vim-다중 커서. 그러나 몇 가지 제한 사항이 있습니다. 예를 들어 줄을 추가하거나 삭제할 수 없습니다( 참조 README.md
).