내가 방금 레지스터 " x
"에 기록한 매크로 를 내 커서에서 버퍼의 끝까지, vim에서 열린 버퍼의 모든 단일 행 에서 실행하고 싶습니다 . 어떻게하나요?
매크로를 n 번 재생할 수 있다는 것을 알고 있습니다.
15@x
... 또는 @
마지막 줄에 도달 할 때까지 계속 누르고 있지만 몇 번의 키 입력 만 누르면 끝납니다.
미리 감사드립니다.
답변:
재귀 매크로 만들기 :
qa@aq
전의:
qa0gUwj@aq
단일 @a를 사용하여 현재 줄에서 파일 끝까지 첫 단어를 UPCASE합니다. 그러나 "레지스터가 비어 있는지 확인하십시오.
let @a=""
%:normal
매크로 내의 모든 선 이동을 존중 하므로 접근 방식 보다 더 유용 하므로 선이 형태가 동일하지 않은 경우 유용합니다. 매크로 'a'를 만들어 동작을 정의한 다음 매크로 'b'가 재귀 비트 (예 : qb @ a @ bq)를 수행하도록하는 것이 더 쉽습니다.
ctrl-c
그런 일이 발생하면 중지하십시오!
:set nowrapscan
파일 끝에 도달하면 실패하고 중지합니다.
qaq
려면 매크로 전에 수행 하십시오 qaqqa0gUwj@aq
.. 또한 @q
끝에 를 넣는 것을 잊은 경우 언제든지 qA
레지스터 추가를 시작한 다음 @q
. 쉽기 때문에 (재귀 매크로의 경우 특히) 일반적 qqqqqgUiwj@qq
으로 두 개의 매크로 대신 수행하기 때문에 어떤 이유로 든 reg q에 기록 합니다. 처음 세 q
초는 reg q를 지우고 두 번째 두 q
초는 녹음을 시작합니다. 참조 vim.wikia.com/wiki/Record_a_recursive_macro
a
간단하게 입력 할 수 있습니다 레지스터 일qaq
999999@x
, 매우 큰 버퍼가없는 경우 ...
%:normal @x
아니면 1,$:normal @x
?
99999@x
당신이
vim 위키에서 단축 버전 : qqqqq 매크로 기록 @qq 기록 완료 @q 기록 완료 (파일 끝까지 실행 됨)