タグ付けされた質問 「macro」

マクロは、後で実行できる型付きコマンドの記録です。マクロはレジスターに保管されます。マクロの記録はqで実行でき、@で実行できます。

1
マクロで挿入モード補完を使用するにはどうすればよいですか?
ランダムな単語のリストをすばやく生成するマクロを定義しようとしています。 マクロでこれを次のようなリストに変換したい 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 lettera` <C-p>表示される補完リストの最後の項目を選択しますarezzo。私のシステムではその単語です。(注意:完了時にこのように動作するために必要な設定にlongest含めました:)。'completeopt'<C-p>'set completeopt=longest,menuone,preview' <C-y> 完了を受け入れる ^[^[ 挿入モードを終了 j 次の行に移動して、次の行で同じ操作を実行する準備ができました q 録音を停止 マクロを作成して手順を手動で実行すると、すべてが正常に動作しますが、マクロを実行すると、コマンドラインで次のようなメッセージが点滅します。 辞書ファイルのスキャン そして、何も起こりません。マクロのコマンドのみjが実行されます。つまり、カーソルは行の下に移動しますが、完了コマンドは実行されません。 マクロで挿入モードの補完を使用することは可能ですか?可能な場合、どうすれば実行できますか?

3
選択範囲または一致の各行に増分番号を挿入します
解決するための2つの一般的なアプローチについて考えることができる問題がありますが、どちらのアプローチの詳細かわかりません。 ... Level 1: cũng also Level 1: và and Level 1: như like; such as Level 2: các plural marker Level 2: của belonging to ... 「レベルn」で始まる各行に、「01」で始まる番号を挿入します。簡単にするために、数字を前に付けましょう。 アプローチ1:同じレベルのすべてのラインを手動で選択します。魔法を呼び出す私はすぐに学びます。 アプローチ2:すべての行が指定されたレベルに一致する検索と置換を記述します。これには、一致ごとに置換テキストに番号が含まれ、一致ごとに1ずつ増加します。 StackOverflowや他のVimサイトで同様の質問を見つけましたが、それぞれに次の問題が1つ以上あるようです。 任意の増加する番号ではなく、現在の行番号を挿入することです。 数字のゼロ詰めは行いません。 Windows 7で実行しているVim 7.4の選択では実際には機能しません(これらはエラーになりE481: No range allowedます)。 Windowsでmswin.vimを使用してgVimを実行していますが、セットアップをカスタマイズする必要なく、すべてのバニラVimインストールで機能するソリューションが最適です。
10 macro  replace 

2
マクロに最後のアクション(。)を保存する
使用事例 通常モードです。マクロの記録については明確に考えていませんが、コマンドを1つ変更します。これで、ドットを使用してこのアクションを繰り返すことができます。 毎回コマンド全体を入力するのではなく、後で使用するためにマクロに保存しておくと便利なアクションだと気づきました。ドットを使用して、このコマンドを必要とするすべての変更に今すぐ対応するか、編集を続行して、後でマクロに保存してこのコマンドを使用できます。 後者は私がやりたいことですが、変更を元に戻す最も簡単な方法は簡単ではありません。変更を元に戻し、マクロの記録を開始し、コマンドを再入力して必要な変更を行い、マクロの記録を停止します。 これまでに試したこと: マクロにドットを記録すると、ドットが実行される変更ではなくドットが記録されるため、機能しません。(たとえば、ドットで保存されたコマンドがd5w、マクロの記録を開始し、を介してアクションを実行した場合、マクロを実行するたびに5ワードが削除されることを期待すると、それは起こりません。次に実行するときマクロはコマンドではなくドットを実行しますd5w。つまり、マクロの記録後に他の変更を行った場合、たとえば、3つの単語を使用d3wして削除し、それが最後に行った変更である場合、マクロを実行すると3つ削除されます。 5ではなく単語です。実行しているだけなので.)


1
「標準」の後にexモードコマンドを続行しますか?
繰り返しの編集とリファクタリングを処理するときに、非常に長いマクロをよく使用します。可能な限り、これらをマクロとして記録するのではなく、ex-modeコマンドとして記述します。これは、対話的に(コマンドウィンドウを使用して)編集する方が簡単だからです。 ただし、いくつかの通常モードのコマンドを追加する必要がある場合があります。たとえば、後でマクロで使用するために、行全体ではなく行の一部だけをヤンクしたり、テキストを希望どおりに並べたりする必要があります。 が含まれた後にexモードコマンドを続行する方法はありnormますか? (私が話している種類の複雑さの実際の例については:) :'a+s/\_^\s*\(\S*\)::\_[^>]*>\s*\("[^"]*"\)\s*;\_s*\_$/ "\1", \2,/ | m 'a- | norm f,50a ^[d44| 最後にテキストを追加してexモードコマンドとして実行させる方法はありますか?

1
vimがマクロの最後に^ Jを追加するのはなぜですか?
カーソルの下の単語をgrepするのに役立つ短いマクロを作成しました。これは私の.vimrcにあります: let @a=":! git grep ^R^W^M" しかし、vimを開いてを実行する:reg aと、次のように表示されます。 "a :! git grep ^R^W^M^J ^ Jがマクロに追加されていることがわかります。 スクリプトから^ Mを削除すると、^ Jも消えます。 ^ Jは^ Mと同様に動作するようです。つまり、^ Mが2つあるようです。コマンドの結果が見えないので、これは私が望んでいることではありません。読む前にウィンドウが点滅します。 貼り付けてからコピーすることで、スクリプトを機能させることができました。この問題は、.vimrcを使用してロードしようとしたときにのみ発生します。

3
シンボルを含む式でカーソルの下のシンボルを囲むマッピング
vimスクリプトの投稿を1時間読んでいますが、これらの投稿を自分の問題に適用するスキルがありません。Latexドキュメントで数学を編集しているときに、+、-、=などの数学記号を\ Pad {+}、\ Pad {-}、\ Pad {=}に置き換えたいと思っています。ここで、\ PadはLatexマクロです。シンボルの周囲にスペースを配置するように定義されています。カーソルをそのような記号の上に置いて、2、3文字入力して、;Pこのアクションで記号を次のように置き換えられるようにしたい \Pad{whatever the symbol under the cursor is} どんな助けでも大歓迎です! `
7 macro  replace 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.