반복을 위해 명령 시퀀스를 함께 묶기 (.)


10

치다:

apple
pear

커서를 첫 번째 줄에 놓고을 입력 Yp하여 다음을 생성하십시오.

apple
apple
pear

커서를 pear줄 에 놓고 입력 .하여 마지막 명령을 반복하십시오. 이것은 p(조합 대신) 만 반복 Yp하여 다음을 생성합니다.

apple
apple
pear
apple

.마지막 N 명령을 반복하도록 지시 하는 방법을 원합니다 . 같은 뭔가 2.조합 반복 Yp농산물을 :

apple
apple
pear
pear

작동하지 않는 Ofc- p두 번 반복 됩니다. 그러나 아이디어는 " 마지막 두 명령 의 순서 를 반복 "하는 것입니다.

나는 q명령 시퀀스를 기록하고 반복 할 수 있다는 것을 알고 @@있지만,이 솔루션은 모든 것을 미리 계획해야하기 때문에 이상적이지 않지만 실제로는 나중에까지 반복해야한다는 것을 깨닫지 못합니다. 당신은 그것을했습니다.

내가 원하는 것을 달성 할 수있는 방법이 있습니까?

위로 상 : 위의 방법으로 불가능한 경우 마지막 매크로 재생을 반복 할 수 있습니까? 예를 들어, @@마지막 매크로를 재생하도록 입력 한 경우 후속 매크로 .@@다시 입력하는 것과 같기를 원합니다 (예 : 결과가 @@현재 줄 에 의존하는 경우).


문제의 첫 번째 부분에 대한 해결책을 모르지만 두 번째 부분에서는이 매핑을 시도 할 수 있습니다. nno <silent> @@ @@:sil! call repeat#set('@@', v:count1)<CR>하지만 작동하려면이 플러그인을 설치해야합니다 : github.com/tpope/vim-repeat
user9433424

답변:


4

Vim은 마지막으로 실행 된 명령 만 저장하며이 명령 만 .; 제 생각에는 다른 어떤 것도 다루기가 어려울 것입니다.

Yp콤보를 단일 엔터티로 반복해야한다고 생각되면 하나의 명령으로 만들어야합니다. Tim Pope의 repeat.vim 플러그인 은 커스텀 매핑을 위해 쉽게 할 수 있습니다. 물론, 매핑에 짧은 키 [시퀀스]를 선택하면 (대신 .) 해당 키를 빠르게 다시 입력 하고 repeat.vim 통합을 피할 수 있습니다.

BTW, 내 LineJuggler 플러그인]d현재 행을 복제 하는 매핑을 제공하며 repeat.vim을 통한 반복을 지원합니다.


2

에서 Yp반복 유일한 "변화"입니다 p. .일반 모드에서 동작을 변경하는 유일한 방법 ycpoptions옵션 을 추가 하는 것입니다.

set cpoptions+=y

마지막 변경과 마지막 변경을 반복 할 수 있습니다.

그러나 Yp여전히 두 가지 명령 인 yank 다음에 변경이 있기 때문에 문제가 변경되지 않습니다 .

사소한 스크립팅 없이는 원하는 것을 얻을 수 있다고 생각하지 않습니다. vim.org의 스크립트 섹션을 보았습니까 ?


1

map이 효과를 얻기 위해 자주 사용 합니다. 예를 들면 다음과 같습니다.

map <F12> Yp

그런 다음 F12반복해서 누르면 YpYpYp등 이 실행됩니다 . 모든 붙여 넣기 후에 다음 줄로 이동하려면 Yp+대신 키를 매핑하십시오 .


1

RepeatLast 플러그인 (우리의 @joeytwiddle에 의한 ) 인 놀라운 contraption 은 매크로로하는 모든 것을 기록하는 부정한 방법을 통해이 기능을 제공합니다 .

그것은 많은 새로운 매핑을 제공하지만, 문서를 올바르게 읽고 있다면 편집을 수행하기 위해 일련의 명령을 사용할 수 있습니다 (기본값 <leader>을 사용한다고 가정 \).

  • Yp얀크를 넣고 선을 붙여 넣습니다 apple.
  • j줄을 아래로 이동하여 커서가 지금 줄에있게합니다 pear.
  • \Dj명령을 잊어 버려
  • 2\.두 명령을 반복 Y하고p

참으로, 참으로! 그러나 나는 야심에 감사합니다.
요나
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.