Vim环境配置 for ACM C++

最近刚学习Vim,简单配置一下。


1. 代码染色和自动换行

直接使用vim提供的标准配置文件即可。教程直接摘录 vimtutor 第八讲:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      第八講︰創建一個啟動腳本


                         ** 啟用vim的功能 **


  Vim的功能特性要比vi多得多,但大部分功能都沒有缺省激活。為了啟動更多的
  功能,您得創建一個vimrc文件。


  1. 開始編輯vimrc文件,這取決于您所使用的操作系統︰


     :edit ~/.vimrc             這是Unix系統所使用的命令
     :edit $VIM/_vimrc          這是Windows系統所使用的命令


  2. 接著導入vimrc范例文件︰


     :read $VIMRUNTIME/vimrc_example.vim


  3. 保存文件,命令為︰


     :write


  在下次您啟動vim的時候,編輯器就會有了語法高亮的功能。您可以繼續把您喜
  歡的其它功能設置添加到這個vimrc文件中。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


2. 针对ACM C++做一些特殊的配置

针对ACM C++,可能我们需要这个的设定:按<F9>编译执行。这种设定只是针对.cpp文件,对于python可能我们的执行方式就不一样了。

这里我们可以使用vim中autocmd命令针对不用的文件后缀名使用不用的配置文件。可以在上方新建的.vimrc中加入:

autocmd FileType cpp source ~/.vim/cpp.vim
这样对于cpp文件我们就调用了cpp.vim中的配置了。

为了实现快捷键的编译执行,我们需要在cpp.vim中加入按键映射指令。

map <F9> :!make read<CR>
map <F8> :!make run<CR>
我们使用F8和F9两个按键对别对应make中read和run的编译选项。为什么这样做呢?

3. Makefile的配置

.PHONY : run
run : cls run.out
	clear
	./run.out

run.out : main.cpp
	g++ main.cpp -o run.out

.PHONY : read
read : cls read.out
	clear
	./read.out

read.out : main.cpp
	g++ main.cpp -DACM -o read.out

.PHONY : cls
cls:
	clear

.PHONY : clean
clean :
	-rm run* read* *~

我们使用run和read两个非文件的编译选项,read比run多出来的就是多了一个ACM的宏定义。我们用这个宏定义实现输入数据的重定向,并且可以不注释掉freopen函数直接提交代码,减少很多麻烦。

而run选项直接运行生成的程序,方便调试。

而run和run.out分开来的原因是方便显示,减少重复编译。

看一些运行时的状态图吧:

main.cpp代码示例:


in.txt中我们输入一些很简单的数据,比如

1 1

2 2

3 3

4 4

然后在vim中,我们按下<F9>键,可以看到:


如果代码错误,比如a+b写成了a++b,按下<F9>后可以看到的结果是这样的:


可以比较清晰的看到错误的原因。

正常状态下不修改代码连续按下两次<F9>不会导致编译两次,这样有利于加快速度,减少硬盘写入数据。


总结

Vim,Makefile,g++这些工具我们都需要了解多一点。笔者也是刚学习,暂时配置的环境可以满足ACM敲代码的需求。以后应该会随着学习的深入修改出更方便的配置来。另外本文的测试环境是Mac OS X,Linux应该大同小异,Windows需要配置的可能就更多了。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值