Grep
無法在 Vim 中 grep 源文件
我有我在我的文件中獲取的文件。當我在具有這些來源的文件中時,我想搜尋它們。
我跑不成功
!bufdo grep source
和
!bufdo grep source %
.zshrc 的範例,它來源於我想要 grep 的路徑
# ~/bin/shells/Zsh/describtion # ~/bin/shells/Zsh/bugs # ./bin/shells/zsh/alphaOptions . /Users/masi/bin/shells/.personal/ssh . /Users/masi/bin/shells/.personal/shellVariables . /Users/masi/bin/shells/.personal/alias . /Users/masi/bin/shells/externalPrograms . /Users/masi/bin/shells/codingSettings # . /Users/masi/bin/shells/OS/ubuntu/alias # ~/bin/shells/Zsh/sources
假設您在我的 .zshrc 中。你想在 Vim 的所有源文件中搜尋單詞“manual”。
您將如何僅在源文件中搜尋手冊一詞?
這對我有用:
:! grep manual `sed -n 's/^\. \(.*\)/\1/p' %`
sed 部分查找源文件並將它們作為參數提供給 grep。
為避免每次都必須鍵入此命令,您可以創建如下命令:
:command! -nargs=1 SourceGrep :! grep <args> `sed -n 's/^\. \(.*\)/\1/p' %`
搜尋多個單詞時要小心,您必須使用引號。例如:
:SourceGrep "sudo ssh"
編輯:
要搜尋帶有 ‘source’ 和 ‘.’ 的行:
:! grep manual `sed -rn 's/^(\.|source) (.*)/\2/p' %`
該命令將如下所示:
:command! -nargs=1 SourceGrep :! grep <args> `sed -rn 's/^(source|\.) (.*)/\2/p' %`