무작위 단어 목록을 빠르게 생성하는 매크로를 정의하려고합니다.
매크로가 이것을 다음과 같은 목록으로 바꾸고 싶습니다.
a
b
c
d
e
이것으로
arezzo
bywords
czars
détente
eyrie
내가 지금까지 무엇을 :
- 편지에 커서를 놓다
a
- 매크로 기록 시작
qq
a
삽입 모드에 들어갑니다<C-x><C-k> - perform dictionary completion on the character before cursor - in this case the letter
a`<C-p>
내 시스템에 표시되는 완료 목록에서 마지막 단어를 선택하십시오arezzo
. (NB 나는longest
내'completeopt'
설정에 포함 시켰는데 , 이는<C-p>
완료하는 동안 이런 방식으로 작동 하는 데 필요합니다 .'set completeopt=longest,menuone,preview'
).<C-y>
완료를 수락^[^[
삽입 모드 종료j
다음 줄로 이동하여 다음 줄에서 동일한 작업을 수행 할 수 있습니다.q
녹화 중지
매크로를 만들고 수동으로 단계를 수행하면 모든 것이 잘 작동하지만 매크로를 실행하면 명령 줄에서 다음과 같은 메시지가 깜박입니다.
사전 파일 스캔
매크로의 명령 만 j
실행됩니다. 즉 커서가 줄 아래로 이동하지만 완료 명령은 실행되지 않습니다.
매크로에서 삽입 모드 완료를 사용할 수 있습니까? 그렇다면 어떻게 할 수 있습니까?
set completeopt=longest,menuone,preview
하는 longest
옵션을 사용 하고 <C-p>
있습니다. 문자열 longest
에서 제거 completeopt
하면 동일한 동작이 나타납니다. 또한, 화살표 키가 작동했습니다! 감사합니다 (완료 목록을 탐색하는 데 사용할 수 있음을 잊었습니다)
:set completeopt=
및 a<c-x><c-k><esc>j
매크로 등.
<C-p>
... 단계를 내 정력에, 그냥 메시지를 준다 수행 할 때back at original
- 마지막 항목을 선택하지 않습니다 .. 내가 마지막으로 할 말은 (내 경우를 선택하려면 두 번 화살표 키를 사용azures
) 입력을 누르면 및 다음Esc+j+q
.. 그 다음 실행 매크로에 아주 잘 작동