ランダムな単語のリストをすばやく生成するマクロを定義しようとしています。
マクロでこれを次のようなリストに変換したい
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
。私のシステムではその単語です。(注意:完了時にこのように動作するために必要な設定に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>
...ステップを私はvimの中で、それだけでメッセージを与えることを行うときback at original
-最後の項目を選択していません..私は最後の単語(私の場合を選択するために二回、矢印キーを使用azures
)、入力して押され、次にEsc+j+q
..マクロを実行すると非常にうまく機能します