vimマクロの保存


166

vimエディター内に記録されたマクロを適切に保存/再利用する方法を知っている人はいますか?

回答:


216

使用して、qマクロを記録するために文字が続きます。これは、コピー/貼り付けレジスタの1つに入るだけなので、通常モードで"xpまたは"xPコマンドを使用して、通常どおりに貼り付けることができます。

それを保存するには、.vimrcを開いて内容を貼り付けると、次にvimを起動したときにレジスタが表示されます。
形式は次のようなものです。

let @q = 'macro contents'

ただし、引用には注意してください。彼らは適切にエスケープする必要があります。

マクロを保存するには、次のようにします。

  • 通常モードから: qq
  • あらゆるコマンドを入力する
  • 通常モードから: q
  • .vimrcを開く
  • "qpマクロをlet @q = '...'行に挿入するには

3
また、特殊文字(私の場合はエスケープなど)を挿入する必要がある場合はCTRL-V <ESC>、挿入モードで使用して正しい文字を挿入します。リテラル<ESC>が機能しない
adam_0 2014年

5
「ただし、上記の:letを使用する方法は、<CR>または<NL>文字(復帰または改行)で終了するようにしたマクロに対して期待どおりに機能しないことに注意してください。」vim.wikia.com/wiki/Macros#Saving_a_macro
Paolo

2
(マクロの内容に関する)引用は必要ですか?
user2472071 2014年

15
Ctrl+r Ctrl+r registerName入力は内容を解釈せずに登録します-より良いです"qp。それでもin-vimメソッドの+1。
LAFKは、2015

@ adam_0これについて詳しく説明していただけますか?おそらく、例を含めますか?特殊文字、つまりescを埋め込む方法がわかりません。エスケープを入力するすべての組み合わせを試しても無駄になりました。「キーコード」はマクロを台無しにしてしまい、シーケンス全体が出力されます。
GH05T 2017

21

より堅牢なソリューションについては、Marvimをチェックアウトできます。

マクロを特定の名前空間に保存して(またはデフォルトの名前空間としてファイルタイプを使用して)、後で保存したマクロを検索して、すぐに使用できるレジスターにロードすることができます。

多数のマクロを再利用する場合、これは非常に役立ちます。


6
これを2番目に挙げて、単一のファイルを/ pluginディレクトリにmarvim-コピーするのがいかに簡単かを言い、次にF3を使用してマクロを保存し、F2を実行します。
Raine Revere

18

〜/ .vimrc内にマクロを記述して、例としてCTRL + Oによって起動されるマクロを定義するには、次の行を〜/ .vimrcに追加します。

map <C-O> MACROTEXT

入力してマクロを記録すると、次のように入力しqaてマクロテキストを取得できます。"ap


「apまたは同等のものを使用しても機能しませんでしたが、:regを使用して同じ情報にアクセスできます
DShook

「apはaレジスターに記録されたマクロを指します
タイラーファウレ

11

:mkexrc(または:mkvimrc)コマンドは、現在のすべて保存するために使用することができます:mapし、:setファイルに設定を。詳細:help mkexrcについては、を参照してください。


4

あなたはあなたのこのようにすることができます ~/.vimrc

:let @a="iHello World!\<CR>bye\<Esc>"

注:などの特殊キーを使用できるようにするには、二重引用符を使用する必要があります\<this silly example>

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.