簡體   English   中英

在 Vim 中搜索當前行?

[英]Search in the current line in Vim?

我喜歡 vim 中的增量搜索 ( /pattern ),它與我鍵入時的模式匹配。 但它在文件范圍內。 是否可以限制它以便在當前行中搜索並在到達行尾時環繞? 這將有助於加速一行中的導航,因此如果不引入額外(更多)的擊鍵,那就太好了。

你可以做這樣的事情。

noremap <F6> /\%<C-R>=line('.')<CR>l

這使用\\%l原子來匹配當前行。 例如, \\%15l匹配第15行。這將搜索限制在該行。 看一看:h \\%l 為了獲得當前的行號,我們使用表達式寄存器和line函數。

vim文檔中模式原子來看,vim不支持當前行中的搜索。 但是還有兩種其他方法可以做類似的事情。

  • 首先選擇當前行,然后使用\\%V進行選擇。
  • 使用\\%* l在指定的行中搜索,就像使用/ \\%12laaa在第12行中搜索aaa。

還有其他一些方法可以在標記之間進行搜索,但是對於這種情況而言,看起來太復雜了。

您可以使用fFtT,; 在行中搜索單個字符:

f(
2T=

如果您不喜歡思考,也可以wWbBeE

請參閱:help navigation

Vim 8.2.3110(2021 年 7 月)以來,為此添加了一個新的匹配模式:

\%.l    Matches at the cursor line.

所以你現在可以在最新的 Vim 版本中使用例如/keyword\%.l/\%.lkeyword

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM