• 7. VIM 系列


    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="<tab>"
    let g:UltiSnipsJumpForwardTrigger="<c-h>"
    let g:UltiSnipsJumpBackwardTrigger="<c-l>"
    

    使用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 <silent> <F10> :TlistToggle<cr>
    

    效果图

    normal模式下按下<F10>
    出现如下效果

    自动更新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-]>:跳转到定义处。

    <c-t>:往回跳转

    <c-w>]:新建一个窗口,并显示定义。

    <c-w>c:关闭窗口

  • 相关阅读:
    负载、系统oracle 系统调优之 利用CPUby小雨
    进程、检查oracle 性能调优 解决CPU问题by小雨
    数据、保存【sqlite】——使用记录by小雨
    MySQL中间变量的用法by小雨
    函数、返回Sql Server常用函数之统计、算数、字符串函数by小雨
    数据库、实体数据库设计原则by小雨
    查看、设置centos下在线安装配置mysqlby小雨
    重启、无效Oracle使用raw via lvmby小雨
    总线、虚拟机VMware 创建虚拟机的磁盘操作by小雨
    驱动、数据库Java HIVE 使用Jdbc连接Hiveby小雨
  • 原文地址:https://www.cnblogs.com/standardzero/p/10744648.html
Copyright © 2020-2023  润新知