:23y
23行目全体をヤンクすることがわかりました。しかし、私がやりたいのは、23 行目の最初の単語だけをヤンクすることです。試してみまし:23yw
たが、うまくいきません。これを行う簡単な方法はありますか?
これは、最初に行に移動してからヤンクしてから入力`
して、編集していた行に戻ることなく実行できますか?
:23y
23行目全体をヤンクすることがわかりました。しかし、私がやりたいのは、23 行目の最初の単語だけをヤンクすることです。試してみまし:23yw
たが、うまくいきません。これを行う簡単な方法はありますか?
これは、最初に行に移動してからヤンクしてから入力`
して、編集していた行に戻ることなく実行できますか?
23ggyw
やります。もっと手っ取り早い方法はないと思います。
説明:23gg
カーソルを 23 行目に移動し、yw
1 単語をヤンクします。startofline
これは、オプション セット (デフォルト) がある場合にのみ機能することに注意してください。それ以外の場合は、最初の非空白文字に明示的に移動する必要があります: 23gg^yw
.
カーソルを移動せずにそれを行う方法はないと思います。
とにかく、ここにそれを行う別の方法があります:
:23norm! yw
壊す:
:
Ex コマンドを使用しているため、
23
は何かを実行したい行で、範囲は 1 です。
norm[al]
指定された範囲で通常モード コマンドを実行し、
yw
最初の単語をヤンクします。
<C-o>
あなたが来た場所に戻るために追加します。
はEx コマンド:y
の省略形であるため、機能しません。通常モードのコマンドです。他の回答がすでに示されているように、コマンドラインから を介してそれらをトリガーできます。:yank
:yw
:normal yw
残念ながら、実際にジャンプを回避する方法はありません (ただし、前述のよう<C-O>
に、元の位置にジャンプして戻ることができます)。Vimscript を使用できます。
:let @" = matchstr(getline(23), '^\w\+')
しかし、それは入力するのがほとんど簡単ではなく、関数にのみ適しています.
以下は、要求どおりにカーソルを移動しなくても機能しますが、入力するのは面倒です。
:23y|norm PJ0eld$
または、何かを試してみることができます
:23t.|norm eld$
通常モードで入力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|.
23jyw で実行できるはずです。23 行目に移動し、最初の単語をヤンクします。