打造Vim

安装vim

需要安装vim 7.4.1578以上,建议安装8.0及以上版本的,Ubuntu 19 默认是8.1的,直接sudo apt-get install vim就可以了。

sudo apt-get install vim

Vundle 插件管理工具

通过git来下载Vundle

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

在home目录下面的.vimrc配置文件中配置Vundle。

" Vundle manage
set nocompatible
filetype off

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

" All of your Plugins must be added before thre following line
call vundle#end()
filetype plugin indent on

只要在该配置文件中添加“Plugin xxx”,即安装名为“xxx”的插件。

接着启动Vim,然后运行命令“:PluginInstall",即可下载并安装,有的插件可能会下载很久或者失败。

YouCompleteMe 自动补全插件

YouCompleteMe需要Vim版本在7.4.1578以上,并支持python2或者python3,还有一些相关的软件包。

查看vim版本

$ vim -version

查看python版本
一般系统默认就安装了几个python版本
按pythone再敲一下Tab健就可以看到有哪些版本了。
查看默认的python版本

$ python --version

安装相关软件包

$ sudo apt-get install build-essential cmake python-dev python3-dev

接着下载YouCompleteMe,在.vimrc中添加:

Plugin ‘Valloric/YouCompleteMe’

接着“PluginInstall”安装即可,这个下载比较久,耐心等待,过程可能会出现一些错误,自行百度。

接着编译YouCompleteMe

$ cd ~/.vim/bundle/YouCompleteMe
$ ./install.py --clang-completer

–clang-completer表示对C/C++的支持。

发生编译报错:

Cannot find path to libclang in prebuilt binaries

解决:

$ cd third_party/ycmd/clang_archives
$ mv libclang-8.0.0-x86_64-unknown-linux-gnu.tar.bz2 mlibclang-8.0.0-x86_64-unknown-linux-gnu.tar.bz2

重新下载

$ wget https://dl.bintray.com/micbou/libclang/libclang-8.0.0-x86_64-unknown-linux-gnu.tar.bz2

重新编译

$ ./install.py --clang-completer

拷贝文件

$ cp ~/.vim/bundle/YouComleteMe/third_party/ycmd/examples/.ycm_extra_conf.py ~/.vim

配置.vimrc

let g:ycm_server_python_interpreter=’/usr/bin/python’
let g:ycm_global_ycm_extra_conf=’~/.vim/.ycm_extra_conf.py’

这样就完成YouCompleteMe了。

ctags C源码跳转查找工具

安装ctags

$ sudo apt-get install ctags

使用方法,在需要工程目录下使用如下命令即可生成引索文件tags。默认只能在tags的所在目录下使用vim,在其子目录下使用Vim是不能使用ctags的跳转功能的。

$ ctags -R .

启动Vim后需要加载这个tags,使用如下命令即可加载。

:set tags=tags

常用的快捷键

Ctrl + ]

使用Ctrl + ] 跳转到光标处的函数或者变量的定义所在的地方。

Ctrl + T

Ctrl + T 返回跳转之前的地方

taglist

Taglist是vim的一个插件,提供源代码符号的结构化视图。

下载taglist:https://sourceforge.net/projects/vim-taglist/files/

解压后将doc,plugin放到.vim目录下即可。

taglist相关配置,打开.vimrc,加入如下:

""""""""""""""""""""""""""""
"Tag list (ctags)
""""""""""""""""""""""""""""
let Tlist_Ctags_Cmd='/usr/bin/ctags'  "设定ctags程序路径
let Tlist_Show_One_File=1             "不同时显示多个文件的tag,只显示当前文件的  
let Tlist_Exit_OnlyWindow=1           "如果taglist窗口是最后一个窗口,则退出vim
"let Tlist_Use_Right_Window=1          "在右侧窗口显示taglist窗口
let Tlist_Use_SingleClick=1         "单击tag就跳转
"let Tlist_Auto_Open=1               "启动VIM自动打开taglist
"let Tlist_Close_On_Select=1         "选择tag后自动关闭taglist
let Tlist_File_Fold_Auto_Close=1    "多文件时只显示当前文件的tag,其它的tag折叠
let Tlist_WinHeight=200       "taglist窗口高度
let Tlist_WinWidth=20        "taglist窗口宽度
"let Tlist_Use_Horiz_Window=1   "设置taglist窗口横向显示
"映射F8打开关闭taglist窗口
map <expr> <F8> bufloaded("__Tag_List__")?"q":":TlistOpen\<cr>"   

效果如下:
使用TlistOpen打开taglist,使用Ctrl w + Ctrl w实现两个窗口的切换
在这里插入图片描述

vimrc常用命令

set fenc=utf-8 "设定默认解码 
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936 

syntax on                       "自动语法高亮
syntax enable                   "语法高亮


set expandtab	                "将tab键转换为空格
set formatoptions=tcqro         "使得注释换行时自动加上前导的空格和星号
set history=50                  "设置冒号命令和搜索命令历史列表长度为50
set hlsearch                    "搜索时高亮显示被找到的文件
"set ignorecase smartcase       "搜索时忽略大小写,但有一个或以上大写字母仍保持对大小写敏感
set incsearch                  "输入搜索内容时就显示搜索结果
set mouse=                      "设定在任何模式下鼠标都可用
"set nobackup                    "覆盖文件时不备份
set nocompatible                "设定gvim运行在增强模式下, 不设置< cr > 不起作用
"set noignorecase                "默认区分大小写
"set nolinebreak                 "在单词中间断行
"set scrolloff=5                 "设定光标离窗口上下边界5行时窗口自动滚动
"set showcmd                     "在状态栏显示目录所执行的指定,未完成的指令片段也会显示出来
set wrap                        "自动换行显示
set tabstop=4                   "设置tab长度为4
set softtabstop=4               "使得按退格键时可以一次删除4个空格    
set shiftwidth=4                "设定>命令移动时宽度为4
set autoindent                  "自动缩进
set ruler			            "标尺信息,显示光标在哪
"set cindent                    "C语言缩进风格
set number          			"显示行号
set backspace=indent,eol,start    "不设定的话在插入模式里无法使用退格键,delete和回车符等

""""""""""""""""""""""""""""
"Tag list (ctags)
""""""""""""""""""""""""""""
let Tlist_Ctags_Cmd='/usr/bin/ctags'  "设定ctags程序路径
let Tlist_Show_One_File=1             "不同时显示多个文件的tag,只显示当前文件的  
let Tlist_Exit_OnlyWindow=1           "如果taglist窗口是最后一个窗口,则退出vim
"let Tlist_Use_Right_Window=1          "在右侧窗口显示taglist窗口
let Tlist_Use_SingleClick=1         "单击tag就跳转
"let Tlist_Auto_Open=1               "启动VIM自动打开taglist
"let Tlist_Close_On_Select=1         "选择tag后自动关闭taglist
let Tlist_File_Fold_Auto_Close=1    "多文件时只显示当前文件的tag,其它的tag折叠
let Tlist_WinHeight=200       "taglist窗口高度
let Tlist_WinWidth=20        "taglist窗口宽度
"let Tlist_Use_Horiz_Window=1   "设置taglist窗口横向显示
"映射F8打开关闭taglist窗口
map <expr> <F8> bufloaded("__Tag_List__")?"q":":TlistOpen\<cr>"   

"跨文件复制粘贴
vnoremap "y  :w! /tmp/hgl.vim<CR><CR>	
vnoremap "p  :r /tmp/hgl.vim<CR><CR>
nnoremap "p  :r /tmp/hgl.vim<CR><CR>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值