1
A
回答
1
我不確定這是否可以接受。 你可以離開光標放在您要搜索的是線,然後按:
/<c-r>=getline('.')<cr>
或
Y/<c-r>"<BS><cr>
或
:let @/=getline('.')<cr>
的想法是一樣的,行復制到/
搜索。但是,這將不會對而是適用於所有情況,例如,你的行包含一個「正則表達式」:
aaa.*foo (cursor here)
aaabbfoo
aaa.*foo
vim將匹配所有三行。
注意,你可能想包裝行文本^
和$
以獲得更好的結果。
1
有這個沒有預定義命令,但你可以做這樣的事情:
:map <F7> 0v$hy/\V<C-R>"<CR>
命令的第一部分,整條生產線複製到默認的寄存器,而第二部分執行它的搜索。 然後,只需在正常模式下按F7,這就是所有人。
另外一個我愛:
:map µ yiw:vim /<bslash><lt><C-R>"<bslash>>/ *<CR>
它擴展了「*」在當前目錄下的所有文件進行搜索。
0
肯特答案稍微修改後的版本應該始終有效,不會被特殊符號混淆。 (即刺痛是什麼也沒有解釋爲正則表達式匹配字面上)
/\V\^<c-r>=escape(getline('.'), '\')<cr>\$
的\V
開啓非常nomagic意味着,唯一的特殊字符是反斜槓。我們使用轉義函數來逃避所有的反斜槓(由於英戈Karkat)
或者在映射
:nnoremap <silent> ,* /\V\^<c-r>=escape(getline('.'), '\')<cr>\$<cr>
+0
您可以使用內置的'逃生(函數getline( ''), '\')',而不是'替代()'。 –
0
有幾個插件,擴展*
命令在視覺模式選擇工作;其中之一是我的SearchHighlighting plugin。 (該插件頁面有鏈接到替代插件。)
因此,搜索當前行是一個快速V*
(轉到線性視覺模式,搜索選擇)。
相關問題
- 1. Vim:找到下一行
- 2. VIM:找到一個模式,跳過一個字,並在所有匹配的行
- 3. Vim在一行中替換不匹配多個匹配項
- 4. 可以找到第一個或最後一個匹配嗎?
- 5. cvMatchTemplate找到沒有一個的匹配
- 6. Ruby:如何找到數組中的下一個匹配
- 7. 正則表達式,找到匹配後的下一個單詞
- 8. 匹配直到下一行開始
- 9. 行匹配和「n」(下一個)命令
- 10. 在正則表達式中匹配字符(包括換行符)直到找到下一個匹配
- 11. 替換Vim後面幾行的第一個匹配模式
- 12. 在vim的另一條匹配行之前添加一行
- 13. 找到匹配項後選擇下一個條件
- 14. Perl不更新到下一個匹配
- 15. 從字符串匹配到vim中的第一個逗號
- 16. sed找到匹配後的第一個空行並替換
- 17. 找到第一個與VBA不匹配的行
- 18. MySQL,找到與另一個匹配參數的雙行
- 19. vlookup找到匹配並返回行中的另一個元素
- 20. 匹配所有內容,直到下一個匹配
- 21. Vim的匹配怪異的行爲
- 22. Vim跳轉到下一個匹配而不影響搜索模式
- 23. VIM SED匹配多於一個換行符和一個換行符
- 24. MySQL的找到最近的匹配行
- 25. 一個接一個地找到一個匹配
- 26. jQuery的,發現情況的下一個X號,直到未找到匹配
- 27. Vim語法匹配
- 28. vim repeat查找下一個字符'x'
- 29. 在隨機序列運行中找到第一個匹配項
- 30. 找到匹配項後插入一個字符串行
很酷。我猜,我可以很容易地將它分配給一個快捷鍵。 – Thruston
因此'nmap/ = getline('。')'似乎工作正常。爲什麼我需要2 s雖然我想知道? –
Thruston
@Thruston一個結束''和一個結束'/' –
FDinoff