web-dev-qa-db-ja.com

Vimで一行全部を複製する

どうやってVimの全行を複製するのですか。 Ctrl+D IntelliJ IDEA/Resharperの場合 Ctrl+Alt+/ Eclipseで?

1492
sumek

yy または Y 行をコピーする
または
dd 行を削除(切り取り)する

それから

p コピーまたは削除されたテキストを現在の行の後に貼り付ける
または
P コピーまたは削除されたテキストを現在の行の前に貼り付ける

2555
Mark Biek

通常モード:他の答えを見てください。

way:

  • :t.は行を複製します、
  • :t 7は7行目以降にコピーします。
  • :,+t0は、現在行と次の行をファイルの先頭にコピーします(,+.,.+1の範囲の同義語です)。
  • :1,t$は、行の先頭からカーソル位置までの行をコピーします(1,は、範囲1,.の同義語です)。

コピーする代わりに移動する必要がある場合は、:mの代わりに:tを使用してください。

これを:gまたは:vと組み合わせると非常に強力になります。 

  • :v/foo/m$は、パターン「foo」に一致しないすべての行をファイルの末尾に移動します。
  • :+,$g/^\s*class\s\+\i\+/t.は、カーソルの直後にclass xxxという形式の後続の行をすべてコピーします。

参照::help range:help :t:help :g:help :mおよび:help :v

375
Benoit

YPまたはYpまたはyyp

279
Linulin

copy and paste in vim

これ以上単純にはならないでしょう。通常モードから:

yy

貼り付けたい行に移動して

p
229
Adam

yy

現在の行を削除せずにヤンクします

dd

現在の行を削除します

p

上記のいずれかの方法で取得した行をputにします。

49
pjz

これを行う:

最初、 yy 現在の行をコピーしてから p 貼り付けます。

38
Eric Z Beard

他の方法が欲しいなら:-)

"ayyこれはその行をバッファに格納しますa

"apこれはバッファの内容aをカーソルの位置に置きます。

これには多くのバリエーションがあります。

"a5yyこれは5行をバッファに格納しますa

http://www.vim.org/htmldoc/help.html を参照してください。

38
Kwondri

yyp - 「yippee!」で覚えています

間に数字が入った複数行

y7yp

37
theschmitzer

yyp - 後に貼り付ける

yyP - 前に貼り付ける

22
yemu

また、<C-x> <C-l>を試してみると、挿入モードから最後の行が繰り返され、すべての行が表示された完了ウィンドウが表示されます。それはほとんど<C-p>のように働きます

11
nikolavp

もう1つの選択肢は、次のようなものです。

nmap <C-d> mzyyp`z

カーソル位置を保持するという利点があります。

11
Rook

好き: Shift+v (すぐに行全体を選択し、必要に応じて他の行を選択できるようにする)、y、p

10
Gabe

Viを知らない人のために、上からのいくつかの答えは "paste ... after/before"のようなフレーズで彼を誤解させるかもしれません 現在行"#:。
実際には「貼り付けて...前後に」 カーソル"#:。

yy または Y 行をコピーする
または
dd 行を削除する

それから

p コピーまたは削除したテキストの後に貼り付ける カーソル
または
P コピーまたは削除されたテキストの前に貼り付ける カーソル


他のキー割り当てについては、このサイトにアクセスしてください。 vi Complete Key Binding List

10
Michael

1つの注意:あなたが行を置くために "p"を使うとき、それはそれを置く after カーソルがある行新しい行を配置する前に、行の下にカーソルを置きます。

3
cori

デフォルトは yypしかし、私は1年かそこらのためにこの再結合を使っていて、それを愛しています:

" set Y to duplicate lines, works in visual mode as well. nnoremap Y yyp vnoremap Y y`>pgv

2
Chris Penner

Viを学び始める人のために、ここに典型的なWindows GUIエディタのカーソル移動とショートカットキーに並んだviコマンドを並べることによってviのよい入門書があります。それは含むすべての基本的なコマンドをリストします yy (コピー行)そして p (後に貼り付ける)または P(前に貼り付け).

Windowsユーザーのためのvi(Vim)

1
ap-osd

私はパーティーに遅刻していることを知っていますが、何でも。私の.vimrcにこれがあります。

nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>

:copyコマンドは、選択された行または範囲(常に行全体)を、引数として指定された行番号の下にコピーするだけです。

通常モードでこれがすることはcopy . この行をこの行のすぐ下にコピーする です。

そしてビジュアルモードではそれは'<,'> copy '> 選択範囲の始まりから選択範囲の終わりまでの範囲を選択範囲の終わり の下の行にコピーします。

1
DarkWiiPlayer

Sublimeと同じように、行を複製して現在のlikeのすぐ下に貼り付ける場合 Ctrl+Shift+Dその後、これを.vimrcファイルに追加できます。

imap <S-C-d> <Esc>Yp

0
jedi

私はこのマッピングを使うのが好きです。

:nnoremap yp Yp

ネイティブのYPコマンドと一緒に使用するのが一貫しているからです。

0
yolenoyer