3

:23y23行目全体をヤンクすることがわかりました。しかし、私がやりたいのは、23 行目の最初の単語だけをヤンクすることです。試してみまし:23ywたが、うまくいきません。これを行う簡単な方法はありますか?

これは、最初に行に移動してからヤンクしてから入力`して、編集していた行に戻ることなく実行できますか?

4

6 に答える 6

3

23ggywやります。もっと手っ取り早い方法はないと思います。

説明:23ggカーソルを 23 行目に移動し、yw1 単語をヤンクします。startoflineこれは、オプション セット (デフォルト) がある場合にのみ機能することに注意してください。それ以外の場合は、最初の非空白文字に明示的に移動する必要があります: 23gg^yw.

于 2013-01-23T09:55:26.957 に答える
1

カーソルを移動せずにそれを行う方法はないと思います。

とにかく、ここにそれを行う別の方法があります:

:23norm! yw

壊す:

  • :Ex コマンドを使用しているため、

  • 23は何かを実行したい行で、範囲は 1 です。

  • norm[al]指定された範囲で通常モード コマンドを実行し、

  • yw最初の単語をヤンクします。

<C-o>あなたが来た場所に戻るために追加します。

于 2013-01-23T11:01:04.297 に答える
1

はEx コマンド:yの省略形であるため、機能しません。通常モードのコマンドです。他の回答がすでに示されているように、コマンドラインから を介してそれらをトリガーできます。:yank:yw:normal yw

残念ながら、実際にジャンプを回避する方法はありません (ただし、前述のよう<C-O>に、元の位置にジャンプして戻ることができます)。Vimscript を使用できます。

:let @" = matchstr(getline(23), '^\w\+')

しかし、それは入力するのがほとんど簡単ではなく、関数にのみ適しています.

于 2013-01-23T12:15:38.257 に答える
0

以下は、要求どおりにカーソルを移動しなくても機能しますが、入力するのは面倒です。

:23y|norm PJ0eld$

または、何かを試してみることができます

:23t.|norm eld$
于 2013-01-24T21:07:03.693 に答える
0

通常モードで入力23Gywすると、仕事をするはずです。

G           Goto line [count], default last line, on the first
            non-blank character |linewise|.  If 'startofline' not
            set, keep the same column.
            G is a one of |jump-motions|.
于 2013-01-23T09:59:53.463 に答える
-1

23jyw で実行できるはずです。23 行目に移動し、最初の単語をヤンクします。

于 2013-01-23T09:49:34.773 に答える