Vim의 "점"명령
2543 단어 masteringvimquicklyvim
소프트웨어 엔지니어링에서 이것은 모든 종류의 반복을 줄이는 데 초점을 맞추는 소프트웨어 개발 원칙입니다. 책 전체에서 볼 수 있듯이 Vim에는 다양한 종류의 작업을 자동화하는 여러 가지 방법과 명령이 있으므로 작업을 반복할 필요가 없습니다.
반복을 피하는 것과 관련하여 가장 강력한 Vim 명령 중 하나는
.
("점") 명령입니다.일반 모드에서
.
를 치면 실행한 마지막 기본 Vim 명령이 반복됩니다.커서 앞으로 5개 단어를 삭제하고 싶다고 가정해 봅시다. 이미 알고 있듯이
5dw
를 누르면 완료됩니다. 그러나 때로는 단어의 수를 정신적으로 계산하는 것이 편리하지 않습니다.대안은
dw
를 사용하여 한 단어를 삭제하는 것입니다. 그런 다음 ....
를 눌러 점 명령을 네 번 호출합니다. 이 경우 최신 dw
명령을 4번 더 반복하면 단어를 세지 않고도 동일한 효과를 얻을 수 있습니다.dd를 사용하여 한 줄을 삭제하고 4줄을 더 삭제하려면
4.
를 누르는 대신 ....
를 실행할 수도 있습니다. 그것도 작동합니다.점 명령으로 실제로 반복 가능한 것을 이해하는 것이 매우 중요합니다. 예를 들어 다음과 같은 샘플 코드가 있는 경우:
my $i
my $learn
my $quickly
커서가 첫 번째 줄에 있습니다. 세 줄 모두에
;
를 추가하려고 합니다. 다음과 같은 명령을 실행할 수 있습니다. A;<Esc>j
•
A
– 삽입 모드에서 첫 번째 줄 끝에 커서를 놓습니다.•
;
– 를 눌러 실제로 삽입한 다음 Esc를 눌러 일반 모드로 돌아갑니다.•
j
– 한 줄 아래로 이동이제 커서가 두 번째 줄에 있습니다. 그런 다음
.
를 눌러 다음(두 번째) 줄에서 변경을 반복하면 작동하지 않습니다. 얻을 수 있는 것은 다음과 같습니다.my $i;
my $learn;
my $quickly
커서는 여전히 세 번째 줄이 아니라 두 번째 줄에 있지만
;
가 추가됩니다.이것은 원래 명령의 이 부분만 반복되었다는 결론에 이르게 합니다.
A;<Esc>
.자, 왜 그럴까요?
점 명령으로 버퍼의 내용을 변경하는 명령을 반복할 수 있다는 것을 기억하는 것이 중요합니다.
변경은 텍스트를 수정하는 데 사용할 수 있는 모든 명령입니다. 이 예에서는 명령
j
이 반복되지 않고 커서가 세 번째 줄로 이동하지 않은 경우가 있었습니다.j
와 같은 명령을 동작(또는 명사)이라고 하며 텍스트 자체에는 영향을 주지 않습니다. 명령j
은 커서만 움직일 뿐 텍스트는 변경되지 않으므로 반복할 수 없습니다.모국어의 문법을 생각해 보십시오. 명사가 아니라 동사가 일종의 행동을 표현하는 데 사용됩니다. Vim에서도 마찬가지입니다. 명사(또는 동작)는 텍스트에 영향을 줄 수 없으므로 점 명령으로 반복할 수 없습니다.
버퍼의 텍스트에 영향을 줄 수 있는 모든 명령을 보려면 :help change.txt를 살펴보십시오.
물론 여러 변경 사항을 반복하거나 움직임과 변경 사항의 조합을 반복하려는 경우 이를 매크로에 쉽게 기록할 수 있습니다.
내 책Mastering Vim Quickly: From WTF to OMG in no time의 매크로 장(무료 다운로드)에서 매크로에 대해 필요한 모든 것을 배울 수 있습니다.
아직도 읽고 계십니까?
매주 화요일 나는 내 Mastering Vim Quickly Newsletter 구독자인 6K+ Vim 팬에게 Vim에 대한 멋진 팁을 보냅니다. 무료로 가입하세요.
이 게시물은 원래 my blog에 게시되었습니다.
Reference
이 문제에 관하여(Vim의 "점"명령), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jovica/the-dot-command-in-vim-34k4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)