python源代码语法检查工具_7. VIM 系列 - 程序员利器(语法检测、代码块补全、symbol管理、函数跳转)...

1. 语法检查利器 ale

安装 ale

Plug 'w0rp/ale'

配置

显示状态栏+不需要高亮行

let g:ale_sign_column_always = 1

let g:ale_set_highlights = 0

错误和警告标志

let g:ale_sign_error = 'x'

let g:ale_sign_warning = '!'

文件保存时,显示警告

let g:ale_lint_on_text_changed = 'never'

let g:ale_lint_on_enter = 0

使用clang对c和c++进行语法检查,对python使用pylint进行语法检查

let g:ale_linters = {

\ 'c++': ['clang'],

\ 'c': ['clang'],

\ 'python': ['pylint'],

\}

使用clang分析的话,确保clang已经安装, 如若没有安装,即可运行如下命令进行安装

sudo apt-get install clang

效果图

2. 补全代码块

安装

Plug 'SirVer/ultisnips'

Plug 'honza/vim-snippets'

配置

let g:UltiSnipsExpandTrigger=""

let g:UltiSnipsJumpForwardTrigger=""

let g:UltiSnipsJumpBackwardTrigger=""

使用vim打开文件,输入main,然后敲 tab,会有如下效果

注:插件有默认的代码块模板,若是需要自定义,则去~/.vim/plugged/vim-snippets 路径下修改。

3. symbol 管理器 taglist.vim

taglist.vim 插件依赖ctags,所有首先得安装ctags。

安装ctags:

$ sudo apt install -y exuberant-ctags

在.vimrc上配置:

set tags=./.tags;,.tags

安装taglist.vim插件:

Plug 'vim-scripts/taglist.vim'

插件配置:

map :TlistToggle

效果图:

normal模式下按下

出现如下效果

自动更新symbol:

使用vim-gutentags 自动更新tags文件。

安装vim-gutentags插件:

Plug 'ludovicchabant/vim-gutentags'

配置插件

" gutentags 搜索工程目录的标志,碰到这些文件/目录名就停止向上一级目录递归

let g:gutentags_project_root = ['.root', '.svn', '.git', '.hg', '.project']

" 所生成的数据文件的名称

let g:gutentags_ctags_tagfile = '.tags'

" 将自动生成的 tags 文件全部放入 ~/.cache/tags 目录中,避免污染工程目录

let s:vim_tags = expand('~/.cache/tags')

let g:gutentags_cache_dir = s:vim_tags

" 配置 ctags 的参数

let g:gutentags_ctags_extra_args = ['--fields=+niazS', '--extra=+q']

let g:gutentags_ctags_extra_args += ['--c++-kinds=+px']

let g:gutentags_ctags_extra_args += ['--c-kinds=+px']

" 检测 ~/.cache/tags 不存在就新建

if !isdirectory(s:vim_tags)

silent! call mkdir(s:vim_tags, 'p')

endif

注:gutentags 需要靠上面定义的 project_root 里的标志,判断文件所在的工程,如果一个文件没有托管在 .git/.svn 中,gutentags 找不到工程目录的话,就不会为该野文件生成 tags,这也很合理。想要避免的话,你可以在你的野文件目录中放一个名字为 .root 的空白文件,主动告诉 gutentags 这里就是工程目录。

更新symbol:

function! UpdateCtags()

TlistUpdate

endfunction

autocmd BufWritePost *.c,*.h,*.cpp call UpdateCtags()

保存文件时候,更新symbol。

4. 函数跳转

函数跳转也是用到了tags文件,symbol管理已经将相关环境安装好了。

:跳转到定义处。

:往回跳转

]:新建一个窗口,并显示定义。

c:关闭窗口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值