最近刚学习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>不会导致编译两次,这样有利于加快速度,减少硬盘写入数据。