1. vim/gvim/vimgdb 编译安装
1.1 准备工作
1.1.1 源代码
vim一直以来都是Linux程序员所推崇的编辑利器,研究了很多天,终于折腾出一点眉目,特此总结,方便日后查找。
vim有两种安装方式,一种是直接从软件源安装,一种是编译源码安装,因为需要对gdb的支持来方便调试,所以这里采用源码编译的方式。
下载 vim-7.3.tar.bz2
http://ishare.iask.sina.com.cn/f/9317317.html
下载 vimgdb-for-vim7.3
https://github.com/larrupingpig/vimgdb-for-vim7.3
解压到指定目录,假定此目录为~/MyEditor,则现在两个源码文件夹均位于~/MyEditor下。
需要注意的是,vimgdb 是针对vim 源码的一个补丁,加入了vim 对gdb 的支持,最新的vim 版本是7.4,然而,并没有发现vimgdb 的for 7.4 版,所以暂且使用了vim 7.3,如果需要使用更早版本的vim,那么请自己下载对应版本的vimgdb 即可。
1.1.2 需要的库支持
因为还想同时编译出gvim,所以需要安装以下特定的库。
sudo apt-get install libncurses5-dev
sudo apt-get install libx11-dev libxt-dev libgtk2.0-dev
很多人编译vim都编译不出来gvim,这是因为源码自动编译的时候,找不到相关图形库,然后自动略过了gvim的编译。另外,要保证系统存在C/C++ 开发包,里面包括gcc gdb等等。
sudo apt-get install build-essential
1.2 编译安装
cd ~/MyEditor
patch -p0 < vimgdb-for-vim7.3/vim73.patch
cd vim73/src
./configure --enable-gui=auto --enable-gdb --enable-cscope --enable-multibyte --enable-xim --enable-fontset --with-features=huge
要注意这么几点:
其他编译开关,可以用./configure --help 查看,比如可以加入 --enable-tclinterp 等等
注意看回车之后的输出信息,如果 --enable-gdb 出现问题,则证明前面patch打补丁没有成功
注意看check的结果,是否GUI真的check成功了。
如果一切都没有问题的话
make
sudo make install
现在vim和gvim应该都已经安装完毕,下面复制vimgdb的运行时文件
cd ~/MyEditor
cp -rf vimgdb-for-vim7.3/vimgdb_runtime/ ~/.vim
如果现在启动gvim的话,会发现gvim的菜单无法显示,并且中文乱码,这是由于系统使用的是utf8,而vim使用的是utf-8,就差一点,所以做一个软链接就可以解决了。
cd /usr/local/share/vim/vim73/lang/
sudo ln -s menu_zh_cn.utf-8.vim menu_zh_cn.utf8.vim
最后,在~/ 目录下,创建一个.vimrc文件,注意前面有一个点儿,并非是vimrc,在里面写入
syntax enable
set previewheight=12 " set gdb window initial height
run macros/gdb_mappings.vim " source key mappings listed in this document
set asm=0 " don't show any assembly stuff
set gdbprg=/usr/bin/gdb
保存关闭。此时大功告成。在终端输入vim,可以正常进入vim;在终端输入gvim,可以启动gvim,并且菜单等等各项正常,如果注销后再次登录,可以在附件菜单中找到gvim的快捷方式。启动vim/gvim后,按F7键,再敲空格,可以呼叫出命令行窗口,并启动gdb。
如果重启后在应用程序里面找不到gvim,那么可以自己做一个启动项。
cd /usr/share/applications/
新建一个文件,名字是gvim.desktop,内容是
[Desktop Entry]
Name=GVim Text Editor
Comment[zh_CN]=Gvim编辑器
Exec=gvim
Icon=/usr/share/pixmaps/gnome-word.png
Terminal=false
X-MultipleArgs=false
Type=Application
Categories=Application;Development;
Encoding=UTF-8
StartupNotify=true
保存后,就可以在编程菜单里面找到gvim的启动项了。Categories决定了启动项出现在什么位置。可选的地方有
Application;Network; //添加到internet中
Application;Office; //添加到办公中
Application;Graphics; //添加到图像中
Application;AudioVideo; //添加到影音中
Application;Game; //添加到游戏中
Application:Development; //添加到开发中
Application:Utility // 添加到附件中
2. VIM 配置
vim主要配置的是.vimrc文件,在上文中已经写了几行了,另外就是在~/.vim中,新建colors和plugin两个文件夹,方便放自己的主题和插件
mkdir ~/.vim/colors
mkdir ~/.vim/plugin
2.1 vim 中文文档
vim有中文帮助,地址是
http://vimcdoc.sourceforge.net/
下载之后,解压,cd到源码文件夹内,install文件详述了使用方法。
./vimcdoc.sh -i
安装完毕后,运行vim,之后,:help 可以打开中文帮助
2.2 vim 颜色主题
vim有多种多样的配色,一般大家似乎比较偏爱那种黑色背景,感觉像黑客似的。我使用的是经典的molokai,下载地址是
http://www.vim.org/scripts/script.php?script_id=2340
下载后,将其放入 ~/.vim/colors/,之后,在.vimrc文件中,写入
set t_Co=256 " 设置终端为256色
colorscheme molokai
highlight Comment ctermfg=darkmagenta guifg=darkmagenta
前两句一定要有,最后一句是我觉得默认的注释颜色太浅,改了一个别的颜色。用户可以在主题的基础上,根据自己的需要做微调。具体方法可以参看帮助文档。在vim中,使用命令
:runtime syntax/colortest.vim
可以预览所有支持的颜色的效果。
2.3 ctags 插件
ctags是很常用的,用于在程序里面来回跳转。下载地址是
http://ctags.sourceforge.net
我用的是ctags-5.8. 解压后,cd到源码包目录
./configure
make
sudo make install
2.4 TagList 插件
taglist类似于source insight 提供的symbol跳转功能,就是有一个symbol窗口,可以看到程序所有的符号。下载地址是
http://www.vim.org/scripts/script.php?script_id=273
解压后,将plugin和doc文件夹的内容分别放到~/.vim/plugin 和 ~/.vim/doc 下。
2.5 WinManager 插件
提供多个窗口的管理功能。下载地址是
http://www.vim.org/scripts/script.php?script_id=95
同样,解压后,将对应目录下的文件放入到~/.vim/ 下对应的文件夹里面
2.6 统一配置
首先,打开vim,使用命令
:helptags ~/.vim/doc
可以生成插件的帮助文档。
个人的配置文件如下,其中引号起注释作用,不需要的可以用引号注释掉。(未完待续)
"=============================== VIMRC =============================
" Author:CongCong
" date: 2014-2-16
"===================================================================
" 关闭乌干达儿童提示
set shortmess=atI
" 设置窗口位置和大小
winpos 5 5
set lines=30 columns=80
" 关闭vi键盘,用vim自己的键盘
set nocompatible
" 设定编码方式
set termencoding=utf-8 " vim所在终端采用的编码
set encoding=utf-8 " vim内部使用的编码
set fileencodings=utf-8,ucs-bom,gb18030,cp936 "vim探测编码的顺序
set fileencoding=utf-8 " vim保存文件是采用的编码
" 设置文本编辑习惯
set smartindent " 自动缩进
set autoindent " 继承前一行的缩进
set cindent " 使用C样式的缩进
set tabstop=4 " tab键宽度为4
set softtabstop=4 " 统一缩进为4
set shiftwidth=4
set noexpandtab " 不用空格代替tab
set smarttab " 在行和段的开始处使用tab
set history=400 " 历史文件记录400条
set backspace=indent,eol,start " 允许退格键用来删除。
set confirm " 在处理未保存或只读文件的时候,弹出确认
set iskeyword+=_,$,@,%,#,- " 带这些符号的单词不要被换行分割
set nobackup " 覆盖文件时不备份
" 显示相关信息
set number " 显示行号
set ruler " 右下角显示坐标
set laststatus=2 " 总显示状态行
set guioptions-=T " 隐藏gvim工具栏
set guioptions-=m " 隐藏gvim菜单栏
" 高亮当前行和当前列
set cursorline
set cursorcolumn
" 开启语法高亮
syntax enable
syntax on
" 开启文件类型检测
filetype on
filetype plugin on " 载入文件类型插件
filetype indent on " 为特定文件类型载入相关缩进文件
" 允许任何地方使用鼠标
set mouse=a
set selection=exclusive
set selectmode=mouse,key
" 颜色主题,molokai为自主下载,默认情况并不存在。
"默认颜色主题位于/usr/local/share/vim/vim73/colors
set t_Co=256 " 设置终端为256色
colorscheme molokai
highlight Comment ctermfg=darkmagenta guifg=darkmagenta
"====================================================================
" Taglist 配置
"====================================================================
if has("win32") "设定windows系统中ctags程序的位置
let Tlist_Ctags_Cmd = 'ctags'
elseif has("linux") "设定linux系统中ctags程序的位置
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
endif
let Tlist_Show_One_File = 1 " 不同时显示多个文件的tag,只显示当前文件的
let Tlist_Exit_OnlyWindow = 1 " 如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window = 1 " 在右侧窗口中显示taglist窗口
let Tlist_Compart_Format = 1 " 以压缩的方式显示
"=====================================================================
" WinManager 配置
"=====================================================================
let g:winManagerWindowLayout = "FileExplorer|TagList"
nmap wm :WMToggle
"=====================================================================
" VIMGDB 配置
"=====================================================================
set previewheight=12 " set gdb window initial height
run macros/gdb_mappings.vim " source key mappings listed in this document
set asm=0 " don't show any assembly stuff
set gdbprg=/usr/bin/gdb