acm编程环境linux版本,VIM设置吐血整理(可以胜任工程编辑和ACM竞赛编辑)

VIM设置吐血整理(可以胜任工程编辑和ACM竞赛编辑)

Linux系统版本:ubuntu 10.10

真相:

0818b9ca8b590ca3270a3433284dd417.png

• vim安装和中文帮助文档

vim 安装直接选择apt-get install vim(所有的都装上吧,包括vim-gtk,vim-gnome),或者去vim官方下载源码安装。

先将其解压缩:

tar zxvf vimcdoc-.tar.gz

然后进入 vimcdoc- 目录并执行

./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

功能就是查找你代码中某个函数的声明和定义位置的跳转。

$ tar -xzvf ctags-xx.tar.gz

$ cd ctags-xx

$ make

# make install   // 最好root权限,这样应该所有用户可以使用了

然后去你的源码目录, 如果你的源码是多层的目录, 就去最上层的目录, 在该目录下运行命令: ctags -R

此时在该目录下会生成一个 tags 文件, 再用vim打开某个代码时需要加上如下命令:

:set tags=/源码的目录/tags

表示加载该tags。

• taglist

功能是列出所有的函数,宏定义,变量等。

这会在你的~/.vim/plugin和~/.vim/doc目录中各放入一个文件:

plugin/taglist.vim – taglist插件

doc/taglist.txt    - taglist帮助文件

在.vimrc文件中需要添加代码:

map :Tlist // 快捷键设置

let Tlist_Use_Right_Window=1

let Tlist_File_Fold_Auto_Close=1

这样只要在vim中按住F3就可以查看Tlist窗口了。

• winmanager

功能主要是打开源代码所在目录所有的文件列表,这样方便在vim中切换工程代码文件。

同taglist一样,把解压后的*.vim,*.txt放入plugin/,doc/目录下。

然后在你的~/.vimrc中加上下面两句代码:

let g:winManagerWindowLayout='FileExplorer|TagList' // Taglist同时打开。

nmap wm :WMToggle

这样只要按快捷键wm就可以实现文件查看和tags查看。

• cscope

功能主要是实现了比ctags更强势的函数,变量查询,包括查询谁调用次函数,次函数调用了哪些函数,某个字符串在哪些地方出现过等等。

# ./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 s :cs find s =expand(""):copen

nmap g :cs find g =expand("")

nmap c :cs find c =expand(""):copen

nmap t :cs find t =expand(""):copen

nmap e :cs find e =expand(""):copen

nmap f :cs find f =expand(""):copen

nmap i :cs find i ^=expand("")$:copen

nmap d :cs find d =expand(""):copen

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 :!date

map :w:call Make("g++ % -o%:r -O2 -Wall")

map :w:make

map :!./%:r

map :w:call Make("g++ % -o%:r -g -Wall")

map :!gdb ./%:r

map :!time ./%:r "

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值