Vim에서 이동을 포함한 마지막 일반 모드 명령을 반복합니다.

Vim에서 이동을 포함한 마지막 일반 모드 명령을 반복합니다.

Vim에서는 를 사용하여 .마지막 일반 모드 명령을 반복할 수 있습니다. 예를 들어:

dd.

한 줄을 두 번 삭제합니다.
하지만 내가 입력하면

5j.

커서가 10줄 아래로 이동하지 않습니다. 마지막 일반 모드 명령, 특히 이동을 어떻게 반복합니까?

답변1

바닐라 vim에서도 가능하지만 적용 가능성은 사용 사례에 따라 다릅니다. 반복 가능하게 만들려면 키 입력이 몇 번 더 필요하기 때문에 얼마나 자주 반복해야 합니까?


옵션 1: 명령 모드 작업으로 전환

예를 들어 5줄 아래로 이동하면 다음과 같이 할 수 있습니다.

  1. Enter 키를 누르면 :norm 5j커서가 5줄 아래로 이동합니다.
  2. @:동작을 반복하는데 사용

:normNormal을 의미하며 다음 문자열은 일반 모드에서 키 입력으로 간주됩니다.


옵션 2: 매크로 사용

  1. qa(레지스터에 매크로를 저장하면 a, 와 같은 자신만의 레지스터를 선택할 수 있습니다 qb. qc)
  2. 5j
  3. q(매크로 기록 종료)
  4. @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 '.'

관련 정보