6

q"名前のないレジスターへのマクロの記録開始 ( ) とマクロ記録の停止( )の両方に使用できるカスタムの単一キー Vim マッピングを作成したいと考えていqます。

Vim が記録モードにあるかどうかを Vim スクリプトから検出できますか?

録画モードの検出が可能な場合、録画モードで自分の機能が呼び出された場合 (録画を停止する)、問題はありますか? つまり、関数呼び出しがマクロ内に記録される可能性はありますか?

4

2 に答える 2

1

これはお勧めしません。キーを 2 回押すだけで録音を開始でき、レジスタを柔軟に選択できるからです。

とはいえ、これを行う方法は次のとおりです。録音モードを直接検出する方法はわかりませんが、キーを押すたびに自分自身を再マッピングするマッピングを作成して、録音の開始と停止を交互に切り替えることができます。

" Helper mappings
nnoremap @{ :nmap ; @}<CR>qq
nnoremap @} q:nmap ; @{<CR>

" Toggle recording
nmap ; @{

" Playback
nnoremap , @q

マップする独自のキーを選択してください。

また、記録レジスタに使用することはお勧めしません"。上書きされやすいからです。

于 2016-06-01T23:50:00.147 に答える
0

へのマッピングを使用できますq"<esc>。通常モードにあるとき (および設定されていないとき) にのみ記録を開始すると仮定するとinsertmode、これはまさにあなたが望むことを行うでしょう。

于 2016-06-01T18:50:07.207 に答える