1 行または複数行をヤンクする方法はたくさんあります。行の 10 文字だけのように、vi で行の一部をコピーする方法はありますか。
8 に答える
最も一般的な部分ヤンクは次のとおりだと思います。
yaw
: 現在カーソルがある単語を
2yaw
ヤンクする : 現在カーソルがある単語と次の単語をヤンクする (合計 2 単語)
ya(
: カーソルを含む一致した括弧をヤンクする
yf.
: カーソルから次の単語にヤンクする.
y$
: カーソルから最後にヤンクするラインの
任意の移動キーを使用できます。
カット&ペースト:
カットを開始する位置にカーソルを置きます。
- vを押して文字を選択します (または大文字のVを押して行全体を選択します)。
- カットしたい部分の最後にカーソルを移動します。
- dを押して切り取ります (またはyを押してコピーします)。
- 貼り付けたい場所に移動します。
- Pを押してカーソルの前に貼り付けるか、pを押して後に貼り付けます。
- dの代わりにyを押す手順 4 を除いて、コピー アンド ペーストは同じ手順で実行されます。
d = 削除 = カット
y = ヤンク = コピー
y
Movementを実行できるので、10 文字の場合:y10l
現在のカーソル位置から (および含む) 10 文字をヤンクします。
あなたもできる
yt<char> - yank 'till char - i use that a lot
or y/<pattern>/ - yank until pattern
vキーを押してから、カーソルキーを使用して選択範囲を移動することをお勧めします。次に、満足したら y キーを押して、選択範囲をヤンクします。
もちろん、カーソルを行の先頭に置いて、次のように入力します。
y10l
これにより、10 文字が右にヤンクされます。何らかの理由でこれを繰り返し行う必要がある場合は、次の一時的な kep マッピングを追加してください。
:noremap ,m ^y10l
を押すたびに、任意の行の最初の 10 文字がヤンクされます,m
コピーする行が複数ある場合は、ビジュアル ブロック モードを試してください。
" beginning of line
C-v
" up-down move 10j or 5k
10l
" copy & paste
y
p
詳しくはウィキ参照
これは、特に現在のマウスカーソルがコピーターゲットから遠く離れている場合、または部分的な開始行または終了行を持つ複数の行を選択する場合に、マウスが実際にキーボードを打ち負かす可能性がある1つの場所です。
:set mouse=a
マウスサポートを有効にするために使用します。次に、マウスで不規則なテキストブロックを選択し、を押します。y