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需要配置的可能就更多了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章