14

1 行または複数行をヤンクする方法はたくさんあります。行の 10 文字だけのように、vi で行の一部をコピーする方法はありますか。

4

8 に答える 8

18

最も一般的な部分ヤンクは次のとおりだと思います。

yaw: 現在カーソルがある単語を
2yawヤンクする : 現在カーソルがある単語と次の単語をヤンクする (合計 2 単語)
ya(: カーソルを含む一致した括弧をヤンクする
yf.: カーソルから次の単語にヤンクする.
y$: カーソルから最後にヤンクするラインの

任意の移動キーを使用できます。

于 2012-10-11T22:51:30.553 に答える
8

カット&ペースト:

カットを開始する位置にカーソルを置きます。

  1. vを押して文字を選択します (または大文字のVを押して行全体を選択します)。
  2. カットしたい部分の最後にカーソルを移動します。
  3. dを押して切り取ります (またはyを押してコピーします)。
  4. 貼り付けたい場所に移動します。
  5. Pを押してカーソルの前に貼り付けるか、pを押して後に貼り付けます。
  6. dの代わりにyを押す手順 4 を除いて、コピー アンド ペーストは同じ手順で実行されます。

d = 削除 = カット

y = ヤンク = コピー

リソース: vim.wikia.com: コピー、切り取り、貼り付け

于 2015-05-01T11:14:48.843 に答える
4

yMovementを実行できるので、10 文字の場合:y10l現在のカーソル位置から (および含む) 10 文字をヤンクします。

于 2012-10-08T10:40:49.903 に答える
2

あなたもできる

yt<char> - yank 'till char - i use that a lot

or y/<pattern>/ - yank until pattern
于 2013-01-11T07:47:59.570 に答える
2

vキーを押してから、カーソルキーを使用して選択範囲を移動することをお勧めします。次に、満足したら y キーを押して、選択範囲をヤンクします。

于 2012-10-08T15:38:37.130 に答える
1

もちろん、カーソルを行の先頭に置いて、次のように入力します。

y10l

これにより、10 文字が右にヤンクされます。何らかの理由でこれを繰り返し行う必要がある場合は、次の一時的な kep マッピングを追加してください。

:noremap ,m ^y10l

を押すたびに、任意の行の最初の 10 文字がヤンクされます,m

于 2012-10-08T10:40:03.137 に答える
1

コピーする行が複数ある場合は、ビジュアル ブロック モードを試してください。

" beginning of line
C-v
" up-down move 10j or 5k
10l
" copy & paste
y
p 

詳しくはウィキ参照

于 2012-10-08T10:47:03.960 に答える
0

これは、特に現在のマウスカーソルがコピーターゲットから遠く離れている場合、または部分的な開始行または終了行を持つ複数の行を選択する場合に、マウスが実際にキーボードを打ち負かす可能性がある1つの場所です。

:set mouse=aマウスサポートを有効にするために使用します。次に、マウスで不規則なテキストブロックを選択し、を押します。y

于 2012-10-08T15:35:15.460 に答える