1

概要:

let @c = "dd/##completed <CR> p"

うまくいかない、何か提案はありますか?


行を削除し、別の行 (##completed セクション) に移動して、その行をここに貼り付けるマクロを記録しました。

これは、マーク( 'c - ##completed セクションを指す)がテキストではなく、行自体に付着していることに気付くまでは正常に機能していました(今考えれば明らかです)。

その代わりに、.vimrc を変更して ##completed 行を検索し、その下に内容を貼り付けました。

コードは次のとおりです...

let @c = "dd/completed <CR> p"

しかし、これは機能しません。代わりに、コマンドライン内に「/completed p」が表示されます。vimrc がキャリッジ リターンを正しく処理していないようですが、ここで構文が間違っているのでしょうか?

または、これが行を移動するひどい方法である場合、誰かがより良い代替手段を提供できますか?

4

1 に答える 1

4

マッピングを完全には理解していません\<CR>が、キャリッジリターンを取得するには、二重引用符で囲む必要があります。バックスラッシュがありません。Ctrlまたは、 + V(またはQ多くのWindowsインストールの場合)を介して直接挿入し、その後に。を続けることもできますEnter


c一般的に、私はあなたの.vimrcにレジスター(あなたが誤って「マーク」と呼んでいるもの)をプリセットしません。これが頻繁に必要な場合は、を介してマッピングを定義して:nnoremapください。任意のフリーキーシーケンスにマッピングを割り当てることができます(<Leader>つまり、バックスラッシュを使用すると、フリーの開始キーがあります)が、名前付きレジスタは26個しかありません。


テキストを移動するには、:moveコマンドを調べてください。これはあなたが望むことをするかもしれません:

:move /##completed
于 2012-08-22T11:29:47.710 に答える