
で行を切り取りdd、その行全体を別の行の末尾に貼り付けたいのですが、問題は、 がdd行全体を切り取るため、おそらく改行文字も含まれてしまうことです。
そして、 で貼り付けるとp、自動的に次の行に配置されます。また、Shift+を実行するとp、貼り付けようとしている行の前に配置されます。
では、切り取った行全体を行末に貼り付ける方法はあるのでしょうか?
答え1
改行せずに行を切り取るには、カーソル位置からd$
または を押しますD
。別の行の末尾に貼り付けるには、その行の末尾に移動して を押しますp
。期待どおりに行を貼り付けることができない場合は、貼り付けたい行の末尾に移動できます。次に を押してから、(Control-R) と(二重引用符)i
を押します。最近切り取った、またはコピーしたテキストが貼り付けられます。<C-R>
"
答え2
現在の行の後に行を貼り付けた後、前の行でp別の行を押すだけでj2 つの行が結合され、不要な改行がなくなります...
答え3
現時点で私が考えられる最善の解決策は次のとおりです。
A<C-r>+
つまり、行末で挿入モードを有効にし、レジスタの内容を貼り付けます+
。
改行も貼り付けられます。 は、dd
単に完全な行に対して操作します ( の省略形1dd
)。
答え4
実際、多くの場合、使用例は次のようになります。行全体 (改行を含むため、d$
/D
は機能せず、空行が残ります) を削除したいのですが、新しい行を作成せずに、これを行の末尾または既存の行内に貼り付けます。
私の無条件貼り付けプラグインレジスタの内容を目的のユースケースに自動的に変換するマッピングがいくつか用意されています。例としてはdd
、ターゲット行に移動する、などがあります$gcp
。gcp
は、文字ごとに貼り付け。