VIM设置吐血整理(可以胜任工程编辑和ACM竞赛编辑)
来源:互联网 发布:控制网络 技术特点 编辑:程序博客网 时间:2024/06/06 03:07
VIM设置吐血整理(可以胜任工程编辑和ACM竞赛编辑)
Linux系统版本:ubuntu 10.10
真相:
• vim安装和中文帮助文档
vim 安装直接选择apt-get install vim(所有的都装上吧,包括vim-gtk,vim-gnome),或者去vim官方下载源码安装。
中文帮助文档下载:http://sourceforge.net/projects/vimcdoc/files/vimcdoc/
先将其解压缩:
tar zxvf vimcdoc-<version>.tar.gz
然后进入 vimcdoc-<version> 目录并执行
./vimcdoc.sh -i
就可以了。该安装程序会自动识别 Vim 的安装路径,将中文的文档拷贝到相应的地方。原有的英文文档不受影响。
这种方法对 root 和非 root 用户都适用。但建议以 root 身份安装。具体见vimcdoc目录下INSTALL文件。
以后用vim时直接:help就可以查看中文帮助文档。
• 语法高亮,自动缩进
可以参考中文帮助文档中所述,这里只介绍一些简单的。
设置语法高亮度
syntax enable
syntax on
设置缩进的空格数为4
set shiftwidth=4
设置自动缩进:即每行的缩进值与上一行相等;使用 noautoindent 取消设置:
set autoindent
设置使用 C/C++ 语言的自动缩进方式(如果遇到分支或者函数段会自动缩进一格):
set cindent
• 智能自动补全
vim在对不同类型的文件进行补全时,会根据文件类型,为其设置不同的补全函数。也就是说,要实现全能补全功能,
需要把下面的命令加到你的vimrc中:
filetype plugin indent on
表示打开文件类型检测
set completeopt=longest,menu
上面的设置表明,只在下拉菜单中显示匹配项目,并且会自动插入所有匹配项目的相同文本。
Ctrl+P 向前切换成员
Ctrl+N 向后切换成员
Ctrl+E 表示退出下拉窗口, 并退回到原来录入的文字
Ctrl+Y 表示退出下拉窗口, 并接受当前选项
整行补全 CTRL-X CTRL-L
根据当前文件里关键字补全 CTRL-X CTRL-N
根据字典补全 CTRL-X CTRL-K
根据同义词字典补全 CTRL-X CTRL-T
根据头文件内关键字补全 CTRL-X CTRL-I
根据标签补全 CTRL-X CTRL-]
补全文件名 CTRL-X CTRL-F
补全宏定义 CTRL-X CTRL-D
补全vim命令 CTRL-X CTRL-V
用户自定义补全方式 CTRL-X CTRL-U
拼写建议 CTRL-X CTRL-S
• ctags
功能就是查找你代码中某个函数的声明和定义位置的跳转。
ctags源码官方地址:http://ctags.sourceforge.net 用下面的命令解压安装:
$ tar -xzvf ctags-xx.tar.gz
$ cd ctags-xx
$ make
# make install // 最好root权限,这样应该所有用户可以使用了
然后去你的源码目录, 如果你的源码是多层的目录, 就去最上层的目录, 在该目录下运行命令: ctags -R
此时在该目录下会生成一个 tags 文件, 再用vim打开某个代码时需要加上如下命令:
:set tags=/源码的目录/tags
表示加载该tags。
• taglist
功能是列出所有的函数,宏定义,变量等。
官方下载地址:http://www.vim.org/scripts/script.php?script_id=273 下载后,把该文件在~/.vim/目录中解压缩。
这会在你的~/.vim/plugin和~/.vim/doc目录中各放入一个文件:
plugin/taglist.vim – taglist插件
doc/taglist.txt - taglist帮助文件
在.vimrc文件中需要添加代码:
map <F3> :Tlist<CR> // 快捷键设置
let Tlist_Use_Right_Window=1
let Tlist_File_Fold_Auto_Close=1
这样只要在vim中按住F3就可以查看Tlist窗口了。
• winmanager
功能主要是打开源代码所在目录所有的文件列表,这样方便在vim中切换工程代码文件。
官方源码地址:http://www.vim.org/scripts/script.php?script_id=95
同taglist一样,把解压后的*.vim,*.txt放入plugin/,doc/目录下。
然后在你的~/.vimrc中加上下面两句代码:
let g:winManagerWindowLayout='FileExplorer|TagList' // Taglist同时打开。
nmap wm :WMToggle<cr>
这样只要按快捷键wm就可以实现文件查看和tags查看。
• cscope
功能主要是实现了比ctags更强势的函数,变量查询,包括查询谁调用次函数,次函数调用了哪些函数,某个字符串在哪些地方出现过等等。
官方地址:http://cscope.sourceforge.net下载一个源码包, 解压后编译安装:
# ./configure
# make
# make install // 需要root权限
使用时,想ctags那样需要在该目录执行 cscope -Rbq 命令,具体含义可以cscope --help查看。
然后会生成三个文件:cscope.in.out等。
进入vim后需要把刚才生成的cscope文件导入到vim中来, 用下面的命令:
:cs add /代码目录/cscope.out /代码目录
在.vimrc文件中需要添加代码:
"设置cscope
:set cscopequickfix=s-,c-,d-,i-,t-,e-
"快捷键
nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap <C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap <C-@>e :cs find e <C-R>=expand("<cword>")<CR><CR>:copen<CR>
nmap <C-@>f :cs find f <C-R>=expand("<cfile>")<CR><CR>:copen<CR>
nmap <C-@>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>:copen<CR>
nmap <C-@>d :cs find d <C-R>=expand("<cword>")<CR><CR>:copen<CR>
cscope的主要功能是通过同的子命令"find"来实现的
"cscope find"的用法:
cs find c|d|e|f|g|i|s|t name
s 查找本 C 符号(可以跳过注释)
g 查找本定义
d 查找本函数调用的函数
c 查找调用本函数的函数
t 查找本字符串
e 查找本 egrep 模式
f 查找本文件
i 查找包含本文件的文件
• 代码折叠
set foldmethod=marker( 也可以用indent );
当使用marker方式时,需要用标计来标识代码的折叠,系统默认是{{{和}}},最好不要改动之:)
我们可以使用下面的命令来创建和删除折叠:
zf 创建折叠,比如在marker方式下:
zf56G,创建从当前行起到56行的代码折叠;
10zf或10zf+或zf10↓,创建从当前行起到后10行的代码折叠
10zf-或zf10↑,创建从当前行起到之前10行的代码折叠。
在括号处zf%,创建从当前行起到对应的匹配的括号上去((),{},[],<>等)。
zd 删除 (delete) 在光标下的折叠。仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。
zD 循环删除 (Delete) 光标下的折叠,即嵌套删除折叠。
仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。
zE 除去 (Eliminate) 窗口里“所有”的折叠。
仅当 ‘foldmethod’ 设为 “manual” 或 “marker” 时有效。
• 快捷键设置
这个快捷键是用于写小程序(acm竞赛等)使用方便的。
"acm编程设置
func Make(cmd)
let _makeprg = &makeprg
let &makeprg = a:cmd
make
let &makeprg = _makeprg
endf
map <F2> :!date <CR>
map <F5> :w<CR>:call Make("g++ % -o%:r -O2 -Wall")<CR>
map <C-F5> :w<CR>:make<CR>
map <F6> :!./%:r<CR>
map <F7> :w<CR>:call Make("g++ % -o%:r -g -Wall")<CR>
map <F8> :!gdb ./%:r<CR>
map <F9> :!time ./%:r <CR>"
- 【转】VIM设置吐血整理(可以胜任工程编辑和ACM竞赛编辑)
- VIM设置吐血整理(可以胜任工程编辑和ACM竞赛编辑)
- EditText设置可以编辑和不可编辑状态
- android_EditText设置可以编辑和不可编辑状态
- android_EditText设置可以编辑和不可编辑状态
- EditText设置可以编辑和不可编辑状态
- EditText设置可以编辑和不可编辑状态
- EditText设置可以编辑和不可编辑状态
- EditText设置可以编辑和不可编辑状态
- Android EditText设置可以编辑和不可编辑状态
- vim java 编辑设置
- VIM高效率操作(编辑整理)
- Vim编辑常用快捷键整理
- vim设置python编辑环境
- qt listWIdget设置可以编辑
- vim可以很方便地编辑二进制文件
- VIM编辑和查看二进制文件
- vim 查看和编辑二进制文件
- Metro UI CSS 学习笔记之组件(幻灯片)
- 让你提升命令行效率的 Bash 快捷键 [完整版]
- L293/L293d使用总结
- Hdu 4027 Can you answer these queries?(线段树)
- zigzag数组:输入n,求一个nXn矩阵,规定矩阵沿45度递增,形成一个zigzag数组
- VIM设置吐血整理(可以胜任工程编辑和ACM竞赛编辑)
- chromium network proxy setup
- Binary Search
- ubuntu unity 使用积累,
- 全程记录下重装RHEL5系统过程
- Ubuntu 11.10 系统设置指导
- POJ 3276 The Cow Lexicon DP-字符串匹配
- Linux检测硬盘坏道 与 修复
- USACO1.1.1 Your Ride Is Here (ride)