Vim에서는 를 사용하여 .
마지막 일반 모드 명령을 반복할 수 있습니다. 예를 들어:
dd.
한 줄을 두 번 삭제합니다.
하지만 내가 입력하면
5j.
커서가 10줄 아래로 이동하지 않습니다. 마지막 일반 모드 명령, 특히 이동을 어떻게 반복합니까?
답변1
바닐라 vim에서도 가능하지만 적용 가능성은 사용 사례에 따라 다릅니다. 반복 가능하게 만들려면 키 입력이 몇 번 더 필요하기 때문에 얼마나 자주 반복해야 합니까?
옵션 1: 명령 모드 작업으로 전환
예를 들어 5줄 아래로 이동하면 다음과 같이 할 수 있습니다.
- Enter 키를 누르면
:norm 5j
커서가 5줄 아래로 이동합니다. @:
동작을 반복하는데 사용
:norm
Normal을 의미하며 다음 문자열은 일반 모드에서 키 입력으로 간주됩니다.
옵션 2: 매크로 사용
qa
(레지스터에 매크로를 저장하면a
, 와 같은 자신만의 레지스터를 선택할 수 있습니다qb
.qc
)5j
q
(매크로 기록 종료)@a
기록된 작업을 반복하려면(a
선택한 레지스터 이름으로 바꾸십시오. 예:@b
,@c
)
매크로를 설정하려면 더 많은 영적인 힘이 필요하지만 최신 작업으로 재정의되지 않고 여러 작업을 다른 레지스터에 저장할 수 있다는 점에서 반복성이 더 높습니다.
답변2
vim
불행히도 이것을하지 않습니다. 당신이 할 수 있는 최선의 방법은repmo.vim횟수가 있는 이동 명령을 반복하는 플러그인입니다.
답변3
를 사용하여 변경을 반복할 수 있습니다 .
. 명령 을 사용하여 이동을 반복할 수 있습니다 ;
. 이 명령은 새로운 것으로 보이며 다른 답변에서 언급된 repmo.vim 스크립트와 비슷한 작업을 수행합니다.
예를 들어 두 번째 다음 으로 이동하려면 c
을 누르세요 2fc
. 그런 다음 다시 수행하려면 ;
.
답변4
변경하려는 라인을 선택하고 마지막 일반 점 명령을 실행할 수 있습니다.
v5j .............. visual select next 5 lines
:'<,'>norm! . normal mode execute over selection last command '.'