我们可以为vi / vim设置默认搜索关键字吗?

时间:2017-07-22 08:50:18

标签: vim vi

我希望在文件打开时找到文件中的尾随空格(如果存在)。为此我想为vi / vim设置默认搜索关键字(模式以查找尾随空格 - \ s + $),以便每当我用vi / vim打开任何文件时,都会搜索到这个默认关键字。这可能吗?

3 个答案:

答案 0 :(得分:2)

我曾经想过这一点并提出了尾随空间。但它只适用于insert mode,并显示突出显示的尾随空格。

我的.vimrc配置了额外的空格

highlight ExtraWhitespace ctermbg=red guibg=red
matchExtraWhitespace /\s\+\%#\@<!$/
:au InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
:au InsertLeave * match ExtraWhitespace /\s\+$/

它会突出显示

enter image description here

要删除空格,我仍然使用sed

手动删除
:%s/[\ \t]*$//gc

(或)

使用BufWritePre运行命令删除尾随空格。

参考:http://vim.wikia.com/wiki/Remove_unwanted_spaces(风险自负)

答案 1 :(得分:2)

要完全按照您的要求行事,您可以

au BufReadPost * let @/='\v\s+$'

请注意@/是全局的,因此它会更改所有缓冲区的搜索。

如果您只想突出显示尾随空格,您可以执行以下操作:

hi TrailingSpaces ctermbg=red guibg=red
au BufReadPost * call matchadd('TrailingSpaces', '\v\s+$')

答案 2 :(得分:1)

对于此特定用例(查找尾随空格),您可能需要考虑我的ShowTrailingWhitespace plugin,这是一个强大的实现,破坏搜索模式。 (插件页面也有许多替代插件的链接。)