ACM中的GVim配置

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

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

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

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

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

behave mswin
set nu!

syntax enable
syntax on
set guifont=consolas:h16
behave mswin
set noundofile
set nobackup
set noswapfile
colorscheme desert

map <F11> :call CR()<CR>
func! CR()
    exec "w"
    exec "!g++ -DLOCAL -O2 % -o %<"
    exec "! %<"
endfunc


map <F10> :call R()<CR>
func! R()
    exec "w"
    exec "! %<"
endfunc

set showmatch
set smartindent  
set tabstop=4  
set shiftwidth=4  
set expandtab  
set softtabstop=4  

set go=
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {<CR><CR>}<ESC>kcc
inoremap " ""<ESC>i
inoremap ' ''<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 lineNum
endfunc
"映射代码美化函数到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在這裏是個大於總行數的數字。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值