2011-09-15 2 views
2

정기적으로 . 키를 사용하여 마지막 vim 명령을 반복하십시오. 마커를 사용하여 명령을 사용하는 방법이 있는지 궁금합니다. 다음은 간단한 예제이다vim 마커는 반복 키로 작동합니까?

  • 마크 몇 줄 아래로 m'a
  • 이동을 사용하여 텍스트의 라인, 예를 들어, 5j
  • 들여 >'a 사용하여 라인 - 들여 쓰기 6 개 라인
  • 을 눌러 같은 6 개 라인에 위의 명령 반복 .-만 방식이 있는가 1 라인

에 영향을 미칠 것 . 명령을 사용할 때 vim에 이전 명령의 동일한 마커 범위를 적용 시키시겠습니까?

ps. 위의 예가 6>>으로 더 쉬웠을 것이라는 것을 알고 있습니다. 이는 .과 작동하며, 단지 예제로 사용하고 있습니다. 나는 더 복잡한 명령이나 긴 명령에 마커를 사용하기도합니다.

답변

1

문제는 당신이 반복하고있는 명령 >'a,하지만 것입니다 때문에 (:help operator에서), >'a "에 운영 된 텍스트의 시작 부분에 커서가 대부분 남아 연산자를 적용하면"규칙의 커서가 시작 위치 위에 있었던 경우 a에 커서를 놓습니다. 그런 다음 >'a을 반복하면 해당 행에서 라인 자체로 이동하게되고, 한 행만 다시 들여 씁니다.

텍스트 블록의 시작 부분에 남아있어 이후의 로 이동 `] (charwise) 운동을, 다시는 '] (라인 방식)를 사용하여 동일한 텍스트 블록에 영향을 미치거나하는 방금 영향을받은 텍스트 블록. 따라서 >']을 사용하여 동일한 블록을 다시 들여 쓰고 커서가 이번에는 같은 위치에서 시작하고 끝나기 때문에 .으로 추가 횟수를 반복 할 수 있습니다.

더 간단한 선택은 ma5j>'a 대신 V5j>을 사용하는 것입니다. V은 현재 위치에서 시각 모드 (줄무늬)를 시작하고 5j은 5 줄 아래로 이동 한 다음 > 들여 쓰기를 표시합니다. .을 사용하여 반복 할 때도 동일한 시각적 선택이 적용되므로 위 또는 아래로 움직여도 원하는 결과를 얻을 수 있습니다.

+0

귀하의 의견 "... 시작된 텍스트의 시작"은 단서를주었습니다. 내가 마커를 사용하는 것보다 당신의 솔루션을 더 좋아하는 동안, 나는 'backtick +'가 이전에 조작 된 텍스트의 끝으로 이동한다는 것을 발견했다. 그래서'backtick +]. '을 사용하면 같은 마커 범위에 걸쳐 마지막 명령을 반복 할 것입니다. – bejonbee

+1

@somethingkindawierd 그것은 나에게 아주 멋지고 새로운 것이다. 나는 그것을 내 대답에 포함시킬 것이다. – hobbs

관련 문제