是否有类似于 Bash 的 HISTIGNORE 的选项可以从命令历史记录中转储一些无用的行(比如说:wq
or :help.*
)?
如果没有,我认为一个简单的 DIY 方法是使用正则表达式谓词手动解析.viminfo
文件。是否有特定的 VIM 链接可以将解析与.viminfo
文件中的更改同步?
是否有类似于 Bash 的 HISTIGNORE 的选项可以从命令历史记录中转储一些无用的行(比如说:wq
or :help.*
)?
如果没有,我认为一个简单的 DIY 方法是使用正则表达式谓词手动解析.viminfo
文件。是否有特定的 VIM 链接可以将解析与.viminfo
文件中的更改同步?
不幸的是,答案是否定的。但如果你允许H
输入你的打字命令,它也许是可能的。这个怎么样?
https://gist.github.com/5864587
let g:histignore = '^buf:^history'
function! s:h(commandline)
call histdel(':', '^H\s')
let oldhist=&history
try
if len(filter(split(g:histignore, ':'), 'a:commandline =~ v:val')) == 0
call histadd(':', a:commandline)
endif
set history=0
exe a:commandline
catch
echohl ErrorMsg | echomsg v:exception | echohl None
finally
let &history=oldhist
unlet oldhist
endtry
endfunction
command! -nargs=+ H call s:h(<q-args>)
放入这个文件作为你的 ~/.vim/plugin/h.vim
:H buffers
这不存储在:history
, 但是
:H ls
这将被存储。
它会导致一点点延迟,但这会起作用:(
如果只有一个HISTIGNORE
for vim))
augroup StripHistoryOfQAndW
autocmd!
autocmd
\ CmdLineLeave
\ *
\ echom histdel(":", '^[wq]')
augroup END