Vim で行全体を複製する
-
09-06-2019 - |
質問
Vim で同じような方法で行全体を複製するにはどうすればよいですか? Ctrl+D IntelliJ IDEA/Resharper または Ctrl+オルタナティブ+↑/↓ エクリプスで?
解決
yy または Y 行をコピーするには
または
dd 線を削除(カット)するには
それから
p コピーまたは削除したテキストを貼り付けるには 後 現在の行
または
P コピーまたは削除したテキストを貼り付けるには 前に 現在の行
他のヒント
ノーマルモード:他の回答を参照してください。
の 元 方法:
: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
YP
または Yp
または yyp
.
これ以上にシンプルなものは他にありません。通常モードから:
yy
次に、貼り付けたい行に移動し、
p
yy
現在の行を削除せずにヤンクします
dd
現在の行を削除します
p
意思 put
前述のいずれかの方法で取得された行
別の方法が必要な場合:-)
"ayy
これにより行がバッファに保存されます a
"ap
これはバッファの内容を置きます a
カーソルのところ。
これには多くのバリエーションがあります。
"a5yy
これにより、5行がバッファに保存されます a
見る http://www.vim.org/htmldoc/help.html もっと楽しむために
これを行う:
初め、 yy 現在の行をコピーしてから、 p 貼り付ける。
yyp - 「yippee!」で覚えてください。
間に数字が入った複数の行:
y7yp
yyp - 後に貼り付けます
yyP - 前に貼り付けます
<C-x><C-l> を試すこともできます。これは、挿入モードの最後の行を繰り返し、すべての行を含む完了ウィンドウを表示します。<C-p> とほぼ同じように機能します。
別のオプションは、次のようにすることです。
nmap <C-d> mzyyp`z
カーソルの位置を保持できるという利点があります。
vi を知らない人にとって、上記の回答は「貼り付け...」のようなフレーズで誤解を招く可能性があります。前後に 現在の行".
それは実際には「ペースト」です...前後に カーソル".
yy または Y 行をコピーするには
または
dd 行を削除するには
それから
p コピーまたは削除したテキストを貼り付けるには 後 の カーソル
または
P コピーまたは削除したテキストを貼り付けるには 前に の カーソル
キー バインディングの詳細については、次のサイトを参照してください。 vi 完全なキー バインド リスト
好き:シフト+v (行全体をすぐに選択し、必要に応じて他の行を選択できるようにするため)、y、p
1 つの注意点:「p」を使用して行を挿入すると、それが挿入されます 後 カーソルが置かれている行なので、ヤンクしている行の後に行を追加したい場合は、新しい行を配置する前にカーソルを 1 行下に移動しないでください。
デフォルトは yyp, しかし、私はこのリバインディングを 1 年ほど使用しており、とても気に入っています。
" set Y to duplicate lines, works in visual mode as well.
nnoremap Y yyp
vnoremap Y y`>pgv
パーティーに遅れてしまったのはわかっていますが、それでもいいのです。私の .vimrc にはこれがあります:
nnoremap <C-d> :copy .<CR>
vnoremap <C-d> :copy '><CR>
の :copy
このコマンドは、選択した行または範囲 (常に行全体) を、引数として指定された行番号の下にコピーするだけです。
通常モードでは、これが行うことは次のとおりです copy .
この行をこの行のすぐ下にコピーします.
ビジュアルモードでは次のようになります '<,'> copy '>
選択範囲の先頭から選択範囲の末尾までを選択範囲の末尾の下の行にコピーします.
ここでは、vi を学習し始めている人向けに、vi コマンドと一般的な Windows GUI エディターのカーソル移動およびショートカット キーを並べてリストすることで、vi についての優れた入門書を提供します。以下を含むすべての基本的なコマンドがリストされています。 やあ (行をコピー) と p (後に貼り付け) または P(前に貼り付けます)。
Sublime のように、行を複製して現在の「いいね!」の下にすぐに貼り付けたい場合は、 Ctrl+シフト+D, 、これを .vimrc
ファイル。
imap <S-C-d> <Esc>Yp
私はこのマッピングを使用するのが好きです。
:nnoremap yp Yp
ネイティブと併用することで一貫性が得られるため、 YP
指示。