配置vim为程序编辑器

1 篇文章 0 订阅

程序员圈子里有这样一个传说,用vim编程的都是大神。工作近七年未见一人是这种操作,本周开始我决定改用vim进行编程,最终实现双手不离键盘不动鼠标的终极目标!

本文讲解vim配置方法,后面还会讲到常用快捷键,使用中的一些心得。已经使用了三天左右进行开发调试,没比clion差太多,右手去触碰鼠标的次数明显降低,就是比较费脑子,因为你的移动,复制粘贴,替换等所有操作都需要思考如何去做。

vim的配置总共分为两个部分:1、添加插件,2、修改vim配置文件。

1、添加插件

我查看博客总结了5个插件,已经打包上传,免积分下载,直接替换使用。其中Trinity-2.2插件在打开vim的时候会报错,错误是windows和linux文本格式问题,上传的插件已经解决,直接使用即可。报的错误是类似 " ^M " 这种错误,如下面截图所示:

Trinity2-2.zip直接替换报错

我是参照这篇文章解决的点这里,里面有相关操作,如下图所示:

系统文本格式转换

下面讲解一下替换方式:

omnicppcomplete-0.41 解压后包含after, autoload 和 doc 3个文件夹。将 after 文件夹拷贝到 vim 文件所在位置,我的位置是:/usr/share/vim/vim80/ 。拷贝完如下图所示。

将 autoload 文件夹内的 omni 文件夹拷贝到 vim 的 autoload 文件夹下,如下图所示:

将 doc 文件夹下的 omnicppcomplete.txt 文件拷贝到 vim 的 doc 文件夹下,如下图所示:

第一个插件文件拷贝完成,其他插件操作方式类似,下面我大概描述一下。

SrcExpl-6.0 解压后简单很多,只有 doc/srcexpl.txt 和 plugin/srcexpl.txt 这2个文件,doc 文件夹截图有 srcexpl.txt 文件,plugin 截图如下所示:

taglist_46 和 SrcExpl-6.0 解压后操作一致。

Trinity-2.2-fix 解压后有 NERD_tree.vim 和 trinity.vim 这两个文件,都拷贝到 vim 的 plugin 文件夹下,上面的第四个截图细节显示。

vim-autocomplpop 插件解压后除了 doc 和 plugin 外,还存在一个 autoload 文件夹。doc 和 plugin 操作和上面一致,autoload 直接拷贝到 vim 位置,如第一张图片所示。

进行到这里插件拷贝过程已经结束,之所以没有将插件整合后再打包是为了能够让大家熟悉 vim 强大的整个过程,在操作过程中有更深的理解,包括那步报错的转换其实页可以自己操作。后面我会把插件的开源地址贴上,里面有更纯粹的内容,可以更自由的操作。下面讲解配置文件的修改。

2、修改vim配置文件

vim 的配置文件叫 .vimrc,在~/文件夹下,vim ~/.vimrc 即可打开。内容如下所示:

syntax on
set number
set autoindent
set cindent
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set cino=g0,:0
let Tlist_Show_One_File=1
let Tlist_WinWidth=30
let Tlist_Exit_OnlyWindow=1
let Tlist_Use_Left_Window=1


" // The switch of the Source Explorer
nmap <F8> :SrcExplToggle<CR> 

" // Set the height of Source Explorer window 
let g:SrcExpl_winHeight = 8 

" // Set 100 ms for refreshing the Source Explorer 
let g:SrcExpl_refreshTime = 100 

" // Set "Enter" key to jump into the exact definition context 
let g:SrcExpl_jumpKey = "<ENTER>" 

" // Set "Space" key for back from the definition context 
let g:SrcExpl_gobackKey = "<SPACE>" 

" // In order to avoid conflicts, the Source Explorer should know what plugins except
" // itself are using buffers. And you need add their buffer names into below list
" // according to the command ":buffers!"
let g:SrcExpl_pluginList = [
        \ "__Tag_List__",
        \ "_NERD_tree_",
        \ "Source_Explorer"
    \ ]

" // The color schemes used by Source Explorer. There are five color schemes
" // supported for now - Red, Cyan, Green, Yellow and Magenta. Source Explorer
" // will pick up one of them randomly when initialization.
let g:SrcExpl_colorSchemeList = [
        \ "Red",
        \ "Cyan",
        \ "Green",
        \ "Yellow",
        \ "Magenta"
    \ ]

" // Enable/Disable the local definition searching, and note that this is not 
" // guaranteed to work, the Source Explorer doesn't check the syntax for now. 
" // It only searches for a match with the keyword according to command 'gd' 
let g:SrcExpl_searchLocalDef = 1 

" // Workaround for Vim bug @https://goo.gl/TLPK4K as any plugins using autocmd for
" // BufReadPre might have conflicts with Source Explorer. e.g. YCM, Syntastic etc.
let g:SrcExpl_nestedAutoCmd = 1

" // Do not let the Source Explorer update the tags file when opening 
let g:SrcExpl_isUpdateTags = 0 

" // Use 'Exuberant Ctags' with '--sort=foldcase -R .' or '-L cscope.files' to 
" // create/update the tags file 
let g:SrcExpl_updateTagsCmd = "ctags --sort=foldcase -R ." 

" // Set "<F12>" key for updating the tags file artificially 
let g:SrcExpl_updateTagsKey = "<F12>" 

" // Set "<F3>" key for displaying the previous definition in the jump list 
let g:SrcExpl_prevDefKey = "<F3>" 

" // Set "<F4>" key for displaying the next definition in the jump list 
let g:SrcExpl_nextDefKey = "<F4>" 


" Open and close all the three plugins on the same time 
nmap <F8>  :TrinityToggleAll<CR> 

" Open and close the Source Explorer separately 
nmap <F9>  :TrinityToggleSourceExplorer<CR> 

" Open and close the Taglist separately
nmap <F10> :TrinityToggleTagList<CR> 

" Open and close the NERD Tree separately 
nmap <F11> :TrinityToggleNERDTree<CR>

set mouse=a
nmap <F10> :TrinityToggleTagList<CR> 

" Open and close the NERD Tree separately 
nmap <F11> :TrinityToggleNERDTree<CR>

set nocp
filetype plugin on

" NERDTree.vim
let g:TrinityWinPos="left"

位置完后使用vim打开文件看看效果!用 ffmpeg-4.1 举例。在 ffmpeg 文件夹下输入执行 ctags -R 生成工程结构表。如果没有 ctags 命令,执行 apt-get install ctags 安装一下即可,很小。这个和 vim 无关,是两回事。执行完 ctags -R 后会在当前目录生成一个 tags 的文件夹,有兴趣可以看一下内容,估计一般人也没兴趣。vim fftools/ffplay.c 看一下,如下图所示,是不是和常用编辑器或IDE一样了。到这里你的苦日子马上就要开始了,装逼之路上全是苦逼。让我们装逼装到底!干就完了!奥里给!

 

项目地址:

omnicppcomplete-0.41:https://www.vim.org/scripts/script.php?script_id=1520

SrcExpl-6.0:https://www.vim.org/scripts/script.php?script_id=2179

taglist_46:https://www.vim.org/scripts/script.php?script_id=273

Trinity-2.2:https://www.vim.org/scripts/script.php?script_id=2347

vim-autocomplpop:https://vim.sourceforge.io/scripts/script.php?script_id=1879

关于 .vimrc 的配置可以参考下面项目:

nerdtree:https://github.com/preservim/nerdtree

SrcExpl:https://github.com/wesleyche/SrcExpl

Trinity:https://github.com/wesleyche/Trinity

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值