我發現:23y
會抽出整個第23行。 但我想要做的只是第23行的第一個字母。 我試過:23yw
,但這不起作用。是否有捷徑可尋?從特定行中抽出第一個字
這樣做可以不先行,然後打開然後輸入`
返回到我正在編輯的行?
我發現:23y
會抽出整個第23行。 但我想要做的只是第23行的第一個字母。 我試過:23yw
,但這不起作用。是否有捷徑可尋?從特定行中抽出第一個字
這樣做可以不先行,然後打開然後輸入`
返回到我正在編輯的行?
23ggyw
將做到這一點。我不認爲有更快的方法。
說明:23gg
將光標移動到第23行,yw
跳過一個單詞。 請注意,這僅適用於您設置了startofline
選項(這是默認設置)。否則,您需要明確移動到第一個非空白字符:23gg^yw
。
23jyw應該能夠做到這一點,它會帶你到23日線和猛拉第一個字
類型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|.
我不認爲有沒有辦法做到這一點,沒有移動光標。
無論如何,這裏是另一種方式來做到這一點:
:23norm! yw
擊穿:
:
,因爲我們使用的是Ex命令,
23
是在其上線我們想做點什麼,它的範圍是1,
norm[al]
在給定的範圍內執行正常模式命令,
yw
猛拉的第一個字。
添加<C-o>
回到你來自哪裏。
在這種情況下,我認爲'
你說得對,的確如此。 – romainl
通常使用':norm!'來避免與映射衝突,除非你有特殊的理由使用':norm'來代替。 –
:y
是一個:yank
Ex命令的縮寫,這就是爲什麼:yw
不起作用;這是一個正常模式命令。正如其他答案已經顯示的那樣,您可以通過:normal yw
從命令行觸發這些答案。
恐怕沒有辦法避免以實用的方式跳轉(但是,如上所述,<C-O>
可讓您跳回原始位置)。你可以使用Vimscript:
:let @" = matchstr(getline(23), '^\w\+')
但是,這是很容易輸入,只適用於一個功能。
以下方法可以在不移動光標的情況下按要求工作,但它很麻煩。
:23y|norm PJ0eld$
或者你可以嘗試制定一些與
:23t.|norm eld$
這不會帶你到第23行,將你移動到下方的起始位置第23行。 –