linux vim 编程插件,vim编程插件

vim用法

vim用法

建议使用vim7.0以上版本

设置tab的行为

通用设置

" Set 4 spaces per tab

set expandtab

set tabstop=4

set softtabstop=4

set shiftwidth=4

自动检测源文件的tab设置,并使用相同的配置

这个使用了插件系统,需要放到vundle的段落里面,参见插件管理

" use tab or space according to contents.

Plugin 'conormcd/matchindent.vim'

设置leader

在~/.vimrc中设置leader的值

" Set map leader

let mapleader = ","

自动删除行尾空格

在~/.vimrc中增加如下配置:

" 去掉行尾空格

autocmd BufWritePre * :%s/\s\+$//e

插件管理

可以通过vundle插件来管理其他插件,使vim的配置维护更简单。

下载vundle

cd ~/.vim/bundle

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

在.vimrc中配置使用vundle

vim ~/.vimrc

输入以下内容:

"------------------------------------------->

" Bundle begin

" ------------------------------------------>

filetype off                   " required!

set rtp+=~/.vim/bundle/Vundle.vim

call vundle#begin()

Plugin 'gmarik/Vundle.vim'

" add other plugin here

call vundle#end()            " required

" Enable file type plugin and indent

filetype plugin indent on

"-------------------------------------------<

" Bundle end

" ------------------------------------------<

保存并退出

执行以下命令初始化插件

vim +PluginInstall +qall

到这里,初始化完成,后续如果新增插件,还需要再次执行这个命令初始化新的插件。

用法:

安装新插件::PluginInstall

更新插件::PluginUpdate

自动补全插件

采用YouCompleteMe插件来实现自动补全功能

在.vimrc配置中增加配置

" YCM for completions

Plugin 'Valloric/YouCompleteMe'

let g:ycm_confirm_extra_conf = 0

let g:ycm_filepath_completion_use_working_dir = 1

let g:ycm_key_list_select_completion = []

let g:ycm_key_list_previous_completion = []

let g:ycm_collect_identifiers_from_tags_files = 1

let g:ycm_filetype_whitelist = {'c': 1, 'cpp': 1, 'python': 1}

nnoremap :YcmDiags

nnoremap :YcmForceCompileAndDiagnostics

nnoremap ] :YcmCompleter GoTo

nnoremap gh :YcmCompleter GoToInclude

nnoremap gd :YcmCompleter GoToDefinition

nnoremap gc :YcmCompleter GoToDeclaration

保存并退出

安装插件

vim +PluginInstall +qall

安装cmake

安装clang(3.8+)

安装boost(1.49+)

编译YouCompletMe

cd ~/.vim/bundle/YouCompleteMe

./install.py --clang-completer --system-libclang --system-boost

编写.ycm_extra_conf.py

对于每个工程,都需要编写一个.ycm_extra_conf.py,用于指导ycm如何编译工程下的文件。 SkybilityHA工程已经实现了该文件,所以不需要做额外动作,hadm2目前还没有这个文件, 后续需要增加。

用法:

在., ->, ::后自动提示补全,通过ctrl + n, ctrl + p上下移动选择,或继续输入减少筛选范围。

在normal模式下,通过,]跳转到定义的地方,如果找不到定义,跳转到声明的地方

在normal模式下,通过,gd跳转到定义的地方 YCM只能跳转到本文件中定义的函数,不能跳转到别的文件

对这种情况,一般这样处理: ,] 跳转到声明处

* 选中光标下的函数名

:A跳转到对应的.c或.cpp文件

n找到定义的地方

或者使用ctags插件,用ctrl + ]跳转

在normal模式下,通过,gc跳转到声明的地方

在normal模式下,通过,gh跳转到所在行的头文件

git插件

git可以使用vim-fugitive这个插件来管理

修改~/.vimrc配置

Plugin 'tpope/vim-fugitive'

保存退出

安装插件

vim +PluginInstall +qall

用法

这个插件功能很强大,通过:help fugitive查看

最常用的是:Gblame查看历史记录

ctags插件

使用ludovicchabant/vim-gutentags来管理工程中的tags。 这个插件会在项目的根目录下生成tags文件(根据.git目录来识别)。

修改~/.vimrc配置

Plugin ’ludovicchabant/vim-gutentags‘

let g:gutentags_cache_dir = '/tmp/tags/'

安装插件 在vim里面执行下面三个指令:

:w

:so %

:PluginInstall

安装ctags软件exuberant-ctags

与YCM结合,YCM要求使用-l参数来识别tags所属的语言,以实现更准确的匹配。

echo 'fields+=-l' >> ~/.ctags

用法: ctrl + ]来跳转到函数定义的地方

snippet插件

这是一个提高代码效率的插件,在输入关键字后,按tab键,可以将预定义的代码片段补全出来, 用户再根据自己的需要修改即可。

修改~/.vimrc配置

Plugin 'SirVer/ultisnips'

Plugin 'honza/vim-snippets'

let g:UltiSnipsSnippetDirectories=["UltiSnips", 'mysnips']

let g:snips_author = 'Songmin.Li (Li)'

let g:snips_email = 'lsm@skybility.com'

let g:snips_github = ''

let g:snips_company = 'Skybility Software Co.,Ltd.'

姓名,邮箱根据实际情况替换

保存退出

安装插件

vim +PluginInstall +qall

增加文件头的注释的补全

1.创建mysnips目录

mkdir ~/.vim/bundle/vim-snippets/mysnips

cd !$

2.在目录下,增加补全文件c.snippets

priority -40

snippet docs "file docs ..."

/**

\file `!v expand('%:t')`

\brief ${1}

\author `!v g:snips_author`, `!v g:snips_email`

\copyright Copyright (c) `!v strftime('%Y')`, `!v g:snips_company` All rights reserved.

*/

endsnippet

3.在目录下,增加补全文件python.snippets

priority -40

snippet docs "file docs ..."

"""

File: `!v expand('%:t')`

Author: `!v g:snips_author`

Email: `!v g:snips_email`

Copyright: Copyright (c) `!v strftime('%Y')`, `!v g:snips_company` All rights reserved.

Description: ${0}

"""

endsnippet

用法:

输入补全关键字, 按tab键

按ctrl + j跳到下一处修改点

按ctrl + k跳转到上一处修改点

在~/.vim/bundle/vim-snippets/UltiSnips/目录下查看支持的补全关键字

可以在~/.vim/bundle/vim-snippets/mysnips/下增加自定义的补全

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值