Ubuntu14 搭载vim环境查看源码
首先是下载完整的vim74,然后编译安装。遗憾的是当编译时,没有开启图形界面。
在安装新版本的Vim之前,你需要卸载原来安装的老版本Vim,依次在终端下执行下列命令:
sudo apt-get remove vim sudo apt-get remove vim-runtime sudo apt-get remove gvim sudo apt-get remove vim-tiny sudo apt-get remove vim-common sudo apt-get remove vim-gui-common
编译安装
cd ~/downloads/vim74/
设置Vim源码的编译属性
./configure --with-features=huge --enable-rubyinterp --enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config-i386-linux-gnu/ --enable-perlinterp --enable-gui=gtk2 --enable-cscope --enable-luainterp --enable-perlinterp --enable-multibyte
需要重新配置可 输入 make distclean
#清理一下上一次编译生成的所有文件
其中参数说明如下:
- --with-features=huge:支持最大特性
- --enable-rubyinterp:启用Vim对ruby编写的插件的支持
- --enable-pythoninterp:启用Vim对python编写的插件的支持
- --enable-luainterp:启用Vim对lua编写的插件的支持
- --enable-perlinterp:启用Vim对perl编写的插件的支持
- --enable-multibyte:多字节支持 可以在Vim中输入中文
- --enable-cscope:Vim对cscope支持
- --enable-gui=gtk2:gtk2支持,也可以使用gnome,表示生成gvim
- --with-python-config-dir=/usr/lib/python2.7/config-i386-linux-gnu/ 指定 python 路径
sudo make
sudo make install
vim74安装完成。
然后我用安装了gvim,使用的是命令:sudo apt-get install gtk(这个记不清了,输入 sudo apt-get install gvim 时不能安装,必须安装下面四个之一,我就选择gtk)
至此,gvim安装完成。
1.安装Vim基本插件
首先安装Vim的基本插件。这些使用apt-get安装即可:
lingd@ubuntu:~/arm$sudo apt-get install vim-scripts vim-doc
其中vim-scripts是vim的一些基本插件,包括语法高亮的支持、缩进等等。
vim中文帮助文档tar包下载地址:
http://sourceforge.net/projects/vimcdoc/files/vimcdoc/
解压后其中有个doc文件夹, 将其中的内容全部复制到~/.vim/doc, 或者vim安装目录下的doc目录中, 此时vim中的help信息已经是中文的了.
网页版中文帮助文档网址http://vimcdoc.sourceforge.net/doc/help.html
首页就时vim帮助文档的目录,阅读起来更方便有效、更有针对性!
2、Vim配置文件
Vim强大的功能,其来源基本上就两个地方:Vim插件以及Vim配置文件。
Vim本身的系统配置文件夹是在/usr/share/vim/和/etc/vim/两个文件夹下。一般情况下,我们不会去改变这两个文件夹下的配置文件,而是在用户文件夹/home/user(其中,user为用户名,我的用户名是lingd)下建立自己的配置文件。进入用户文件夹(/home/user/)之后,用gedit新建一个名叫.vimrc的文件:
lingd@ubuntu:~/arm$ cd ~
lingd@ubuntu:~$ gedit .vimrc
注:使用gedit主要是为了方便大段大段的文字粘贴!
然后把下面的文字拷贝进这个文件之后保存:
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 一般设定 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 设定默认解码 set fenc=utf-8 set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936 " 不要使用vi的键盘模式,而是vim自己的 set nocompatible " history文件中需要记录的行数 set history=100 " 在处理未保存或只读文件的时候,弹出确认 set confirm " 与windows共享剪贴板 set clipboard+=unnamed " 侦测文件类型 filetype on " 载入文件类型插件 filetype plugin on " 为特定文件类型载入相关缩进文件 filetype indent on " 保存全局变量 set viminfo+=! " 带有如下符号的单词不要被换行分割 set iskeyword+=_,$,@,%,#,- " 语法高亮 syntax on " 高亮字符,让其不受100列限制 :highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white :match OverLength '\%101v.*' " 状态行颜色 highlight StatusLine guifg=SlateBlue guibg=Yellow highlight StatusLineNC guifg=Gray guibg=White """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 文件设置 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 不要备份文件(根据自己需要取舍) set nobackup " 不要生成swap文件,当buffer被丢弃的时候隐藏它 setlocal noswapfile set bufhidden=hide " 字符间插入的像素行数目 set linespace=0 " 增强模式中的命令行自动完成操作 set wildmenu " 在状态行上显示光标所在位置的行号和列号 set ruler set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%) " 命令行(在状态行下)的高度,默认为1,这里是2 set cmdheight=2 " 使回格键(backspace)正常处理indent, eol, start等 set backspace=2 " 允许backspace和光标键跨越行边界 set whichwrap+=<,>,h,l " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位) set mouse=a set selection=exclusive set selectmode=mouse,key " 启动的时候不显示那个援助索马里儿童的提示 set shortmess=atI " 通过使用: commands命令,告诉我们文件的哪一行被改变过 set report=0 " 不让vim发出讨厌的滴滴声 set noerrorbells " 在被分割的窗口间显示空白,便于阅读 set fillchars=vert:\ ,stl:\ ,stlnc:\ """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 搜索和匹配 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 高亮显示匹配的括号 set showmatch " 匹配括号高亮的时间(单位是十分之一秒) set matchtime=5 " 在搜索的时候忽略大小写 set ignorecase " 不要高亮被搜索的句子(phrases) set nohlsearch " 在搜索时,输入的词句的逐字符高亮(类似firefox的搜索) set incsearch " 输入:set list命令是应该显示些啥? set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$ " 光标移动到buffer的顶部和底部时保持3行距离 set scrolloff=3 " 不要闪烁 set novisualbell " 我的状态行显示的内容(包括文件类型和解码) set statusline=%F%m%r%h%w\[POS=%l,%v][%p%%]\%{strftime(\"%d/%m/%y\ -\ %H:%M\")} " 总是显示状态行 set laststatus=2 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 文本格式和排版 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 自动格式化 set formatoptions=tcrqn " 继承前一行的缩进方式,特别适用于多行注释 set autoindent " 为C程序提供自动缩进 set smartindent " 使用C样式的缩进 set cindent " 制表符为4 set tabstop=4 " 统一缩进为4 set softtabstop=4 set shiftwidth=4 " 不要用空格代替制表符 set noexpandtab " 不要换行 set nowrap " 在行和段开始处使用制表符 set smarttab """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " CTags的设定 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 按照名称排序 let Tlist_Sort_Type = "name" " 在右侧显示窗口 let Tlist_Use_Right_Window = 1 " 压缩方式 let Tlist_Compart_Format = 1 " 如果只有一个buffer,kill窗口也kill掉buffer let Tlist_Exist_OnlyWindow = 1 " 不要关闭其他文件的tags let Tlist_File_Fold_Auto_Close = 0 " 不要显示折叠树 let Tlist_Enable_Fold_Column = 0 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Autocommands """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示 if has("autocmd") autocmd FileType xml,html,c,cs,java,perl,shell,bash,cpp,python,vim,php,ruby set number autocmd FileType xml,html vmap <C-o> <ESC>'<i<!--<ESC>o<ESC>'>o--> autocmd FileType java,c,cpp,cs vmap <C-o> <ESC>'<o autocmd FileType html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal textwidth=100 autocmd Filetype html,xml,xsl source $VIMRUNTIME/plugin/closetag.vim autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe " normal g`\"" | \ endif endif "has("autocmd") " F5编译和运行C程序,F6编译和运行C++程序 " 请注意,下述代码在windows下使用会报错 " 需要去掉./这两个字符 " C的编译和运行 map <F5> :call CompileRunGcc()<CR> func! CompileRunGcc() exec "w" exec "!gcc % -o %<" exec "! ./%<" endfunc " C++的编译和运行 map <F6> :call CompileRunGpp()<CR> func! CompileRunGpp() exec "w" exec "!g++ % -o %<" exec "! ./%<" endfunc " 能够漂亮地显示.NFO文件 set encoding=utf-8 function! SetFileEncodings(encodings) let b:myfileencodingsbak=&fileencodings let &fileencodings=a:encodings endfunction function! RestoreFileEncodings() let &fileencodings=b:myfileencodingsbak unlet b:myfileencodingsbak endfunction au BufReadPre *.nfo call SetFileEncodings('cp437')|set ambiwidth=single au BufReadPost *.nfo call RestoreFileEncodings() " 高亮显示普通txt文件(需要txt.vim脚本) au BufRead,BufNewFile * setfiletype txt set foldmethod=syntax " 用语法高亮来定义折叠 set foldlevel=100 " 启动vim时不要自动折叠代码 set foldcolumn=5 " 设置折叠栏宽度 " minibufexpl插件的一般设置 let g:miniBufExplMapWindowNavVim = 1 let g:miniBufExplMapWindowNavArrows = 1 let g:miniBufExplMapCTabSwitchBufs = 1 let g:miniBufExplModSelTarget = 1 " 新加的winManger let g:winManagerWindowLayout='FileExplorer|TagList' nmap wm :WMToggle<cr> "新加的cscopequickfix :set cscopequickfix=s-,c-,d-,i-,t-,e- "新加的c/h文件间相互切换 -- 插件: A nnoremap <silent> <F12> :A<CR> "在工程中查找 -- 插件: Grep nnoremap <silent> <F3> :Grep<CR> "智能补全 filetype plugin indent on set completeopt=longest,menu "加速你的补全 -- 插件: SuperTab let g:SuperTabRetainCompletionType=2 let g:SuperTabDefaultCompletionType="<C-X><C-O>" "设置colorscheme 主题 colorscheme desert
3、管理vim插件——vim-addons
通过vim-addons,我们可以管理vim插件。我们在sudo apt-get install vim vim-scripts vim-doc时,一般会自动安装上vim-addons。若未安装可通过sudo apt-get install vim-addon-manager手动安装。安装完成后,就可以用vim-addons管理vim插件了。
# 系统中已有的vim-scripts中包含的插件及其状态:
lingd@ubuntu:~$ vim-addons status # Name User Status System Status align removed removed alternate removed removed bufexplorer removed removed calendar removed removed closetag removed removed colors sampler pack removed removed cvsmenu removed removed debPlugin removed removed detectindent removed removed doxygen-toolkit removed removed editexisting removed removed enhanced-commentify removed removed gnupg removed removed info removed removed justify removed removed lbdbq removed removed markdown-syntax removed removed matchit removed removed minibufexplorer installed removed nerd-commenter removed removed omnicppcomplete installed removed po removed removed project installed removed python-indent removed removed secure-modelines removed removed snippetsEmu removed removed sokoban removed removed supertab removed removed surround removed removed taglist installed removed tetris removed removed utl removed removed vcscommand removed removed vimplate removed removed whatdomain removed removed winmanager removed removed xmledit removed removed
之后就是按照手把手教你把Vim改装成一个IDE编程环境(图文) 设置
参考网址:
http://www.linuxidc.com/Linux/2014-04/99717.htm
http://blog.chinaunix.net/uid-21289517-id-3081793.html
http://www.cnblogs.com/pingandezhufu/articles/4374556.html
http://www.cnblogs.com/witcxc/archive/2011/12/28/2304704.html