ACM中的GVim配置

来源:互联网 发布:2014新疆网络管制 编辑:程序博客网 时间:2024/05/22 10:26

在ACM/ICPC系列比賽中,大多數使用的都是Ubuntu系統。

如果你寫的是C++,要麼用gedit,要麼用Vim。所以,學會使用Vim是很重要的。

當然,大多數非正式比賽中,比如省賽、校賽等,主辦方提供的往往都還是Windows系統。

本文分享一下我箇人使用的Gvim配置文件。

Gvim的配置文件是_vimrc,沒有後綴。一般在它的安裝目錄下就能找到。

behave mswinset nu!syntax enablesyntax onset guifont=consolas:h16behave mswinset noundofileset nobackupset noswapfilecolorscheme desertmap <F11> :call CR()<CR>func! CR()    exec "w"    exec "!g++ -DLOCAL -O2 % -o %<"    exec "! %<"endfuncmap <F10> :call R()<CR>func! R()    exec "w"    exec "! %<"endfuncset showmatchset smartindent  set tabstop=4  set shiftwidth=4  set expandtab  set softtabstop=4  set go=inoremap ( ()<ESC>iinoremap [ []<ESC>iinoremap { {<CR><CR>}<ESC>kccinoremap " ""<ESC>iinoremap ' ''<ESC>i"调用AStyle程序,进行代码美化func CodeFormat()          "取得当前光标所在行号          let lineNum = line(".")          "C源程序          if &filetype == 'c'                    "执行调用外部程序的命令                    exec "%! astyle -A2Lpk3NS\<CR>"          "H头文件(文件类型识别为cpp),CPP源程序          elseif &filetype == 'cpp'                    "执行调用外部程序的命令                    exec "%! astyle -A2Lpk3NS\<CR>"          "JAVA源程序          elseif &filetype == 'java'                    "执行调用外部程序的命令                    exec "%! astyle -A2Lfpk3NS\<CR>"          else                     "提示信息                    echo "不支持".&filetype."文件类型。"          endif          "返回先前光标所在行          exec lineNumendfunc"映射代码美化函数到Shift+f快捷键map <S-F> <Esc>:call CodeFormat()<CR>

簡單介紹一下這份配置:

配色:desert;
字體:consolas(因爲這個字體在大多數系統下都存在,而且相對來說比較適合用來顯示代碼);
字號:16;
開啓行號,語法高亮等;
F11對應的是編譯並運行,F10僅運行。
Normal Mode下, shift + F能利用Astyle.exe格式化代碼。

到了場上,敲上去就行了。有一次我把map <F11> :call CR()<CR>敲成了map <F11>:call CR()<CR>,沒法編譯。這都是因爲少了個空格。

我用的Astyle是2.06版本的。其他版本對於相同格式化指令效果可能會有差異。

格式化的時候,它需要和代碼放在同樣的目錄下。

Astyle一般可以在devcpp中取得,而devcpp在比賽中往往都有提供。

不過說實話,比賽的時候並不會有時間給你格式化代碼,這只是爲了貼代碼的時候美觀一點。

最常用的格式化代碼的方法還是用vim全選縮進:ggVG== 或者 gg100==
100在這裏是個大於總行數的數字。

原创粉丝点击