微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

历史忽略了VIM

是否有一个类似于 Bash的HISTIGnorE的选项来从命令历史中转储一些无用的行(比方说:wq或: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

这将被存储.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐