Vim noob はこちら。複数行のコードを選択して、他の領域にコピー アンド ペーストしようとしています。マウスを使わずにこれを行う方法はありますか?
3 に答える
ビジュアル モードをまったく使用しない他のいくつかの方法:
マークの使用
~のどこかに痕跡を残す
ma別の場所に移動する
でここからあそこに引っ張る
y'a
検索モーションの使用
ヤンクしたい部分の最後にある一意のトークンをローカライズします
y/foo<cr>(前方検索) またはy?bar<cr>(後方検索)を使用して、ここからそこにヤンクします。
テキストオブジェクトの使用
ヤンクしたいものにどのテキストオブジェクトがマップされるかを決定します。
内側/外側の単語、
iw/aw内側/外側のペア、
i'"([{</a'"([{<内側/外側の html タグ、
it/at文、
s段落、
p"ブロック"、
]…</p>
そのテキストオブジェクトをヤンクします。たとえば、
yip
他のモーションを使用する
関数の最後にヤンクします:
y]}ファイルの最後にヤンクします:
yG
ビジュアルモードを使用した上記のすべてのソリューション
V'ayV/foo<cr>yV?bar<cr>yVipyなどV]}yVGy
:h motion.txt私のように、うまくいけばあなたの心を吹き飛ばすでしょう。
コピーする最初の行にカーソルを置き、コピーする行数を入力nyyしnます。たとえば2yy、カーソルの下の 2 行をコピーするには、次のように入力します。
次に、 を使用して貼り付けることができますp。
カーソルをどこかに置いて Shift キーを押したままにすると、複数の行を選択することもできます。カーソルを目的の選択の最後に移動し、Shift キーを押すのをやめます。次に、 just y(and not yy) を使用してコピーし、 を使用して貼り付けpます。
はい、通常モードで入力V[direction]すると、複数の行が強調表示されます。行全体が必要ない場合は、v代わりにV. コピーするには、yを押して貼り付けたい領域に移動し、 を押しますp。削除するには、代わりyにx.
あるいは、単純に を使用[number of lines]yyして、いくつかの行をヤンクしたり[number of lines]dd、いくつかの行をカットしたりすることもできます。この場合、貼り付けは同じです。