侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

vim实用技巧

2022-06-13 星期一 / 0 评论 / 0 点赞 / 128 阅读 / 3042 字

今天把自己的vim配置文件重新整理了一番,去掉一些自己平常不用的配置,着重提升了vim自带的omni complete代码不全功能和vimgrep的查找功能配置。这里总结一下。 首先是vimgre

今天把自己的vim配置文件重新整理了一番,去掉一些自己平常不用的配置,着重提升了vim自带的omni complete代码不全功能和vimgrep的查找功能配置。这里总结一下。

首先是vimgrep, 用法很简单,:vimgrep /pattern/gi **,表示再当前文件夹(包括子文件夹)下的所有文件中查找pattern模式。默认情况查找到的匹配结果会更新quickfix窗口,如果没有打开quickfix窗口,则需要用:cw命令打开。这一点让我感觉很不好,我需要搜索完成后可以直接看到搜索结果。于是我查阅了vim的帮助文档,利用autocmd命令结合QuickFixCmdPost事件成功做了我想要的效果。QuickFixCmdPost表示在一个quickfix命令执行之后,跳转到第一个匹配之前。quickfix命令就是grep, vimgrep, make之类的命令。将一下代码添加到.vimrc配置文件中即可。


autocmd QuickFixCmdPost * :cl

第二个让我很兴奋的是new omni complete,vim默认支持多种主流语言的代码补全,css, javascript,php等等,尤为重要的是它还提供python代码的priview功能,请看下图。

很酷,对吧。vim默认没有开启这一功能,需要稍加设置,而且默认情况下priview的窗口是在窗口的顶端,而不是窗口的下面,同样我做了一些小手脚,来满足我完美主义者的一点私欲。

" omni complete setting autocmd FileType python set omnifunc=pythoncomplete#Complete autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS autocmd FileType html set omnifunc=htmlcomplete#CompleteTags autocmd FileType css set omnifunc=csscomplete#CompleteCSS autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags autocmd FileType php set omnifunc=phpcomplete#CompletePHP autocmd FileType c set omnifunc=ccomplete#Complete " use ctrl+o instead of ctrl+x ctrl+o for fast typing inoremap <C-O> <C-X><C-O>" Preview window on the bottom function! PreviewDown()     if !&previewwindow          silent! wincmd P      endif      if &previewwindow          silent! wincmd J          silent! wincmd p      endif  endf au BufWinEnter * call PreviewDown() " autoclose preview window when leave insert mode autocmd InsertLeave * if pumvisible() == 0|pclose|endif
All as you wish!

最后我要分享的是功能非常强大command-t插件,它可以像IDE一样给你一个当前目录下所有文件的列表,然后根据你的输入查找你想编辑的文件,非常快捷方便。给个预览。

github上的链接:https://github.com/wincent/Command-T,

Happy coding!

广告 广告

评论区