91

vi / vimエディターで、ブロックをコピーする必要があります。多くの方法がありますが、1つの方法は非常に高速です。

  1. なんらかの方法で最初の行にラベルを付けます。

  2. 次に、何らかの方法で終了行にラベルを付けます。

  3. 次に、ラベル付きの行をコピーするコマンドを入力します。

  4. 次にコピーします。「p」を使用できますが、わかりません。

誰かがコマンドを知っていますか(yyまたは10yyではありません)?前もって感謝します。

4

7 に答える 7

154

V行を選択するかv、文字Ctrlvを選択するか、ブロックを選択するために使用するだけです。

選択範囲がコピーしたい領域にまたがっている場合は、押すだけでyp好きな場所に貼り付けることができます...

于 2012-11-19T03:10:56.203 に答える
120

彼らのドキュメンテーションは言う:

カット&ペースト:

  1. 切り取りを開始する場所にカーソルを置きます。
  2. を押しvて文字を選択します(または大文字Vで行全体を選択します)。
  3. 切り取りたいものの最後にカーソルを移動します。
  4. を押しdて切り取ります(またはyコピーします)。
  5. 貼り付けたい場所に移動します。
  6. を押しPてカーソルの前に貼り付けるか、カーソルのp後に貼り付けます。

コピーアンドペーストは、dの代わりにyを押すステップ4を除いて、同じステップで実行されます。

d= delete=cut

y= yank=copy

于 2015-09-22T11:52:33.363 に答える
44

覚えやすいもう1つのオプションは、とを使用して2行にマークを付けてmaからmb、を実行すること:'a,'byankです。

このタスクを実行するためのさまざまな方法。別の方法を提供するだけです。

于 2012-11-19T11:34:53.257 に答える
23

以下のコマンドの方がはるかに便利だと思いました。6行から12行に行をコピーして、現在のカーソル位置から貼り付ける場合。

:6,12 co .

6行目から12行目にコピーして、100行目から貼り付けます。

:6,12t100

ソース:https ://www.reddit.com/r/vim/comments/8i6vbd/efficient_ways_of_copying_few_lines/

于 2018-05-09T15:34:42.497 に答える
20

ファイルにマークを付けたいようです。

mxカーソルの下にxという名前のマークを置きます

y'xカーソルの現在の位置とマークxを含む行の間のすべてをヤンクします。

を使用'xして、マークのある行にカーソルを移動するだけです。

`x(バックティック)を使用して、マークの正確な位置に移動できます。


私がいつもしていることの1つは、カーソルとマークxの間のすべてをクリップボードにヤンクすることです。

あなたはこのようにそれを行うことができます:

"+y'x

*注:一部の環境では、クリップボードバッファーは。ではなくaで表され+ます。


いくつかの良い答えを持つ同様の質問:

于 2012-11-19T03:28:48.383 に答える
11

そのためのキーボードショートカットは次のとおりです。

  1. コピーの場合:ブロックの先頭にカーソルを置き、mdを押してから、ブロックの末尾に移動してy'd を押します。これにより、貼り付けるブロックが選択され、pを押します。

  2. カットの場合:ブロックの先頭にカーソルを置き、ma を押してから、ブロックの末尾に移動してd'aを押します。これにより、貼り付けるブロックが選択され、pを押します。

于 2018-03-15T18:49:46.627 に答える
1

viの場合と同じように実行できます。たとえば、3020から最後まで行をヤンクするには、次のコマンドを実行します(ブロックをファイルに書き込みます)。

:3020、$ w / tmp / yank

そして、このブロックを別の行/ファイルに書き込むには、目的の位置に移動して次のコマンドを実行します(前に書き込んだファイルを挿入します)。

:r / tmp / yank

(注意:ファイルを削除することを忘れないでください:/ tmp / yank)

于 2017-12-13T01:44:43.323 に答える