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

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

2
記録(記録されたマクロ)を表示および編集するにはどうすればよいですか?
私は(私の操作を記録するために複雑な繰り返しを使用していますqq、レコードにいくつかの操作を、q停止する)と私は間違いをしました。 記録した内容を確認して、間違いを修正することはできますか? 記録されたキャラクターを@q作品ごとに呼び出しますが、マッピング(:map q- No mapping found)に表示されません。 次のように入力しても、ヘルプにはあまり情報がありません:help recording。


8
永続的な行番号をファイルに追加する方法は?
このようなテキストファイルがあります(WindowsでgVimを使用) foo bar baz quux corge grault garply waldo fred plugh [...150 more lines...] xyzzy thud ファイルの各行に数字を追加したい。を使用せず:set number、次のように各行の前にテキストとして番号を追加するため、番号はファイルの一部です。 1. foo bar baz quux 2. corge grault garply 3. waldo fred plugh [...~150 more lines...] 155. xyzzy thud

2
関数の引数を交換する
コードをリファクタリングするとき、関数の引数を交換できると便利です。 変更例: func(foo[0], bar(), baz.spam) に func(baz.spam, foo[0], bar()) 引数を左/右に交換して、関数の括弧とコンマを保持する方法はありますか? 注:それ自体が独自の引数を持つ関数呼び出しである引数を考慮する場合、これは非常に複雑にfunc(baz->spam, foo[0], bar(a, b, c))なる可能性があります。
19 macro  refactor 


5
「ドット演算子」でマクロを繰り返すことはできますか?
.コマンドでマクロを繰り返すことはできますか?たとえば、次のように入力できるようにしたいと思います。 @q... 効果的に@q4回呼び出す。デフォルトの動作では、これは「Q」は、たとえば、単一のコマンドを保持している場合にのみ動作しdw、xまたはiHello<esc>。(ただし、「。」は最後のキーストローク/コマンドではなく、最後の変更を繰り返すため、これは理にかなっています) 私もこの作品を数に入れてみたいです。たとえば、次のように入力します。 3@q. 実質的に@q6回実行するのと同じです。この動作を構成するにはどうすればよいですか?
15 macro  count 

1
vimrcで作成したばかりのマクロを保存する
時々マクロを作成します。時々、同じマクロを複数回作成します。 同じマクロを繰り返し作成するのにうんざりすることがあります。マクロを保存できますか?マクロのプリセットをロードできますか?マクロを作成して永久に保存できますか?
14 macro 


3
一連のキーストロークを単語のすべての出現に適用するにはどうすればよいですか?
すべての単語を削除したい場合は、次のようなことをするので簡単です。 :s%/WORD//g しかしxyz、「WORD」のすべての出現に対して実行したい場合はどうなりますか?たとえば、「WORD」を含むすべての行を削除するとします。これを行うにはいくつかの方法が考えられますが、どれも理想的とは思えません。 1) /WORD そして、ddnddnddnddn...発生がなくなるまで手動で押します。ただし、これを行う行が多数ある場合、これには時間がかかります。 2) qd/WORD<enter>ddq そしてWORDが何回出現するかを推測してから、例えば: 500@d しかし、これは、A)行の束を見逃すか、B)余分な行の束を削除します。 これを行うより良い方法はありますか?
13 search  macro 

6
連続した重複をすべて削除する
このようなファイルがあります。 Move to 230.00 Hold Hold Hold Hold Hold Hold Move to 00.00 Hold Hold Hold Hold Hold FooBar Hold Spam Hold 次のようになりたいです。 Move to 230.00 Hold Move to 00.00 Hold FooBar Hold Spam Hold vimがこれをすばやく実行できる方法が必要であると確信していますが、どのように頭をかき回すことはできません。これはマクロの力を超えており、vimscriptが必要ですか? また、「Holds」の各ブロックに同じマクロを適用する必要がある場合でも問題ありません。ファイル全体を取得する単一のマクロである必要はありませんが、それは素晴らしいことです。

1
マクロの再生速度を改善しますか?
簡単なマクロを記録して次の行で再生しましたが、再生速度が非常に遅いようです(1秒あたり数行しか処理しません)。これは予想されたものであり、そのような速度を改善する方法はありますか?
12 macro 

2
ネストされたマクロを記録するにはどうすればよいですか?
次のように、マクロ内にマクロを記録したい: qa [ first macro ... ] qb [ second macro ... ] q [ some more stuff, involving @b ... ] q ただし、2番目qは最初のマクロを停止する要求として解釈され、残りはコマンドとして解釈されます。 マクロ内で2番目のマクロの記録を開始する方法はありますか? そうでない場合、すでにマクロ内にある間に特定のキーストロークのシーケンスを繰り返すという望ましい効果を達成する他の方法はありますか?
11 macro 

3
vimにわずかな違いがある繰り返しのテキストを挿入する方法は?
このようなテキストを挿入したい: similar text wordA similar text ... similar text wordB similar text ... similar text wordC similar text ... テキストを何度も貼り付けてから、置換を使用して各行の1つの単語を変更できることはわかっていますが、この方法は依然として非常に不便です。 単語または単語リストを「変数」に保存し、この変数を使用して同様のテキストを生成する方法はありますか? 編集私は元の質問で何かを不明確にしました、実際私はいくつかの非常によく似た関数定義を作ろうとしているので、wordA wordB...はテキストの各クローンに何度も現れ、テキストには多くの行が含まれる場合があります。パターンは次のとおりです。 similar_text1 wordA similar_text2 wordA similar_text3 ... similar_text1 wordB similar_text2 wordB similar_text3 ... similar_text1 wordC similar_text2 wordC similar_text3 ... (テキストには改行が含まれている可能性があり、wordA、wordB ...は何度も存在する可能性があります) 2番目の編集 "similar_text"の部分は、そのような仕事をするたびに異なる可能性があるため、この仕事の解決策は再利用可能である方がよいでしょう。私は非常によく似た関数定義、または文字列から関数へのマッピングテーブルを作成しようとしているためです。 回答といくつかの練習を読んだ後、改行を含む可能性のある別々の「part1」、「part2」...「partN」を書くのは難しいので、この仕事をある種の置換と考える方が便利だと思います。まずテンプレート: similar_text1 $WORD similar_text2 $WORD …

2
vimscriptで記録しているかどうかを検出する方法はありますか?
のようなものはありますか eval("is_recording()") vimscriptで呼び出して、現在マクロを記録しているかどうかを確認できますか?私はこれがうまくいくと思ったでしょう: eval("mode(1)") しかし、それだけを返します"n"。 それが重要かどうかはわかりませんが、私はneovimを使用しているので、neovim専用の場合はそれで問題ありません。


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