zoukankan      html  css  js  c++  java
  • vim配置手册

    背景

    个人vim显示风格,以及一些控制命令的备忘。

    系统信息:

      Linux debian9 4.9.0-7-amd64 #1 SMP Debian 4.9.110-1 (2018-07-05) x86_64 GNU/Linux

    编译器和vim等辅助程序,都是系统自带的原始版本。

    --------------------------------------2019/12/30更新-----------------------------------------------

    最初使用VIM时尝试配置插件失败后,就一直没再试过,但今天竟然意外完成。youcomplete + ctags + taglist 已经可以实现IDE的大部分常用功能了,简直不要太爽!

    配置文件

    "---------------------------------------Display---------------------------------------------------
    syntax on
    filetype plugin indent on "文件类型检测
    set nocompatible "去除vi一致性
    set number "行号
    set cursorline "当前行下划线
    set tabstop=4 "tab键宽度
    set shiftwidth=4 "缩进长度
    set incsearch "实时搜索
    set laststatus=2 "底部状态栏
    set scrolloff=5 "光标距底部/顶部行数
    set noerrorbells "禁止警告声
    set statusline=[%F]%y%r%m%=[Hex:%B,ASCII:%b][Line:%l/%L,Column:%c][%p%%] "状态栏

    "----------------------------------------Plugins--------------------------------------------------
    "------------------Vundle(plugins manager)---------------------------
    set nocompatible
    filetype off
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()
    Plugin 'VundleVim/Vundle.vim'
    Plugin 'Valloric/YouCompleteMe'
    Plugin 'taglist.vim'
    call vundle#end()
    filetype plugin indent on
    "------------------YouComplyteMe----------------------
    let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/.ycm_extra_conf.py'

    "------------------tags----------------------

    set tags=/home/orejia/ems/lastedcode/design/tags

    显示

    在xshell的"new black"配色方案下的显示效果如下

    插件

    Vundle

    这里vim插件管理器,其本身也是需要安装的

    YouCompleteMe

    这是代码提示功能插件,通过vundle来安装

    ctags

    生成代码索引文件tags源码跳转,同时用于taglist生成变量符号列表

    taglist

    生成变量、类及函数列表

    插件安装

    ctags安装

    sudo apt-get install ctags

    vundle源码下载,其中~/.vim/bundle目录是由vundle来管理的插件的源码目录,它只需要源码然后进行在.vimrc中配置路径就行,不需要额外的安装命令

    git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

    YouCompleteMe源码下载及安装(YouCompleteMe也可以通过vundle安装,但因为源码太大容易出现下载超时错误)

    cd ~/.vim/bundle
    git clone https://github.com/Valloric/YouCompleteMe.git
    cd YouCompleteMe
    git submodule update --init --completer
    ./install.py --clang-completer

    如果编译正常完成,将在~/.vim/bundle/YouCompleteMe/third_party/ycmd/下面生成一个包含c/c++语法的用于语法提示的配置文件.ycm_extra_conf.py

    taglist安装(通过vundle)

    打开vim,执行插件安装命令:PluginInstall,因为vundle和YouCompleteMe已经通过源码完成安装,这里将直接安装taglist,

    安装完成后在~/.vim/bundle下生成taglist.vim目录树

    插件配置

    ctags

    遍历当前目录树并生成索引文件tags

    ctags -R *

    在vim配置文件中指定索引文件路径

    set tags=/home/orejia/ems/lastedcode/design/tags

    YouCompleteMe

    在vim配置文件中指定全局配置文件路径

    let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/.ycm_extra_conf.py'

    除了这个,好像还有很多其他可配置项,暂时不需要了解。

    针对一些glibc的头文件,默认没有提示,但可以通过修改上面的全局配置文件来实现:

     这里的第45,46行是我自行添加的,,可添加多个路径(每添加一个新路径,必须在它前面添加一行声明'-isystem')。

    语法提示使用说明

    • 语法错误时,在错误代码位置会高亮显示,同时在窗口底部会显示当前光标所在行的错误信息;
    • 编辑代码时,出现代码提示列表,tab键向下选择的同时,光标处的内容自动补全为所选项,接着写后面的代码即可;

    插件命令

    ctags

    指定索引文件名

    set tags=/home/orejia/tags

    预先在配置文件中指定索引文件,实现在任意路径下打开并且光标定位到指定函数入口处

    orejia@debian9:test$ vi -t main      ##打开配置文件中指定的索引文件中的main函数入口

    打开某个文件后,跳转到某个标签定义的位置

    :ta main    ##跳转到当前打开的文件的main函数入口处

    在命令模式下

    ctrl + ]      ##跳转到光标所在位置的符号的定义位置
    ctrl + t      ##返回

    taglist

    快捷键 说明
    <enter> 跳转到光标所在位置tag的定义的位置
    <space> 同enter,但是在新建窗口中打开
    u 根据源文件的修改,更新tag列表
    s 更新排序方式,按名称或位置
    x 显示/隐藏文件编辑窗口
    + 展开光标所在位置被折叠的文件
    - 收起光标所在位置已经展开的文件
    * 展开所有文件
    = 收起所有文件
    [[ 跳转到与光标最近的上一个文件头
    ]] 跳转到与光标最近的下一个文件头
    q 关闭taglist窗口


    快捷键是由taglist本身来响应,但有时需要通过vim命令来控制taglist窗口:

    VIM命令  说明 备注
    TlistClose 关闭窗口 常用
    TlistOpen 打开窗口 常用
    TlistToggle 打开/关闭窗口 常用
    Tlist_Use_Right_Window 是否在右侧显示taglist窗口,默认0在左侧显示  
    Tlist_Ctags_Cmd 指定ctags路径,可不指定,默认从PATH获取 不常用
    Tilst_Show_One_File 是否显示已打开的多个文件的tag列表,默认0显示多个 不常用
    Tlist_Sort_Type ="name"按名称显示,默认按位置显示 不常用
    Tlist_Exit_OnlyWindow 最后一个文件退出时,是否退出taglist窗口,默认0不退出 常用
    Tlist_Auto_Open 是否自动打开taglist窗口,默认0不打开 常用
    Tlist_Close_On_Select 选择tag后,是否自动关闭taglist窗口,默认0不关闭 不常用
    Tlist_File_Fold_Auto_Close 打开多个文件时,是否只展开光标所在文件的tag列表并收起其他文件,默认0全部展开 常用
    Tlist_GainFocus_On_ToggleOpen 使用TlistToggle命令时,光标是否自动跳转到taglist窗口,默认0不跳转 常用
    Tlist_WinHeight taglist窗口高度 不常用
    Tlist_WinWidth taglist窗口宽度 常用
    Tlist_Process_File_Always 是否解析所有文件的tag,默认0只解析已打开的文件 不常用

    补充

    快捷键映射

    map <silent> <F9> :TlistToggle<cr>

    这是只对快捷键的设置方式做个记录,但我觉得不太实用,用原生命令就很方便了。 注意中间的空格,缺少必要的分隔符可能会出错。

    控制命令

    分屏

    命令 说明
    ctrl + w + h 光标跳转到左屏
    ctrl + w + l(小写的L) 光标跳转到右屏
    ctrl  + w + j 光标跳转到下屏
    ctrl + w + k 光标跳转到上屏
    :sp filename 横屏打开
    :vsp filename 竖屏打开
    :vert res +n 将竖屏增加n列宽度
    :res +n 将横屏高度增加n行

     

    参考

    youcompleteme编译错误解决:https://www.cnblogs.com/willsonli/p/6559705.html

    vim打开文件时提示的youcompleteme无法加载python错误的解决方法:https://www.cnblogs.com/p/11209813.html

  • 相关阅读:
    阿里云CDN缓存加速学习总结
    阿里云SLB学习总结
    zabbix3.2安装
    drf中的增删改查接口
    drf中二次封装Response
    drf常用模块
    Django—auth模块
    csrf跨站请求伪造与CBV装饰器
    Django—cookie与session
    Django—中间件(待更新)
  • 原文地址:https://www.cnblogs.com/orejia/p/12112812.html
Copyright © 2011-2022 走看看