前一段时间写题一直用的是 VS Code,VS Code 扩展丰富,功能强大,补全智能,跨平台。虽然打开的速度比较慢,但总体上来说用来写代码是真的舒服。
但可惜的是比赛中并没有 VS Code 可以拿来用。习惯了 IntelliCode 强大的基于文本和词法分析的补全功能之后,我发现自己连一行ios::sync_with_stdio(false);都不想写了。裸手代码能力在慢慢消退。
痛定思痛,我决定换回比赛中可以使用的 IDE 比如 Code::Blocks,但是在我的 Manjaro 笔记本的暗色微风主题下,CB 的界面充斥着各种暗色控件和亮色 Border ,变得特别丑,我还不如去用 Kate 或者 GEdit。这个时候,我突然回想起了在我开始用 Sublime Text 之前使用的神的编辑器 —— Vim。在花了大概一个多小时配置了一下 Vim之后,我已经完全爱上 Vim 啦!
if !exists("g:os") if has("win64") || has("win32") || has("win16") let g:os = "win" else let g:os = "unix" endif endif
首先判断当前环境究竟是 Windows 还是 Linux,因为我平常会在两种环境下写代码,所以根据不同的情况需要进行不同配置。
基础设置:
1 2 3 4 5 6 7 8 9 10 11 12
set nocompatible " 取消 vi 兼容模式 set showcmd " 右下角显示当前输入的命令 set mouse=a " 允许鼠标选中 set backspace=2 " 绑定 backspace 键到模式2 set encoding=utf-8 " 设定默认文件编码 set t_Co=256 " 使用256色终端 filetype indent on " 根据文件类型自动判断缩进类型 if g:os == "win" " 将默认 yank 操作的寄存器设置为系统寄存器+/* set clipboard=unnamed " 设置之后就可以用 y/p 操作系统剪切板了 else set clipboard=unnamedplus endif
这里的 clipboard 设定需要 vim 的 X11 支持,请事先使用 vim --version | grep clipboard查看是否有 +clipboard。如果是减号,则需要安装 vim-gtk包或者 gvim包。
行为设置
1 2 3
set noswapfile " 取消 swap 文件生成 set noerrorbells " 取消声音提示 set autoread " 若文件被外部改动则自动更新内容
缩进设置
1 2 3 4 5
set cindent " 使用 C 系缩进方法 set tabstop=4 " 设定 tab 宽度为 4 set shiftwidth=4 " 设定自动缩进宽度为 4 set expandtab " 将 tab 转换为空格 set softtabstop=4 " 将 tab 转换为 4 个空格
显示设置
1 2 3 4 5 6
syntax enable " 启用符号高亮 syntax on " 开启符号高亮 set number " 显示行号 set cursorline " 高亮当前行 set showmatch " 高亮匹配括号以及高亮颜色设置 hi MatchParen cterm=bold ctermbg=none ctermfg=blue
搜索设置
1 2 3 4
set hlsearch " 高亮匹配结果 set incsearch " 逐字搜索 set ignorecase " 不去别大小写 set smartcase " 若搜索关键字有大写则区别大小写
if has("gui_running") set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 set fileencoding=utf-8 " 显示编码 set guioptions-=m " 隐藏菜单,工具栏和滚动条 set guioptions-=T set guioptions-=r set lines=35 columns=120 " 设置大小 colorscheme torte " 设置配色 if g:os == "win" " 设置字体 set guifont=Microsoft_Yahei_Mono:h11 else set guifont=Fira\ Mono\ 12 endif endif
这一段是当使用 vim GUI 模式也就是 GVim 的时候进行的简单配置。比赛的时候可以无视,主要是平时在 Windows 上使用 Vim 的时候用到的。
" Vim Configuration File " Author: dctewi@dctewi.com " Description: For minimal icpc use "
" System Detect if !exists("g:os") if has("win64") || has("win32") || has("win16") let g:os = "win" else let g:os = "unix" endif endif
" Properties set nocompatible set showcmd set mouse=a set backspace=2 set encoding=utf-8 set t_Co=256 filetype indent on if g:os == "win" set clipboard=unnamed else set clipboard=unnamedplus endif
" Util set noswapfile set noerrorbells set autoread
" Indent set cindent set tabstop=4 set shiftwidth=4 set expandtab set softtabstop=4
" Layout syntax enable syntax on set number set cursorline set showmatch hi MatchParen cterm=bold ctermbg=none ctermfg=blue
" Search set hlsearch set incsearch set ignorecase set smartcase
" Header inoremap <F8> #include<bits/stdc++.h><CR>using namespace std;<CR>typedef long long ll;<CR>
" GVim if has("gui_running") set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 set fileencoding=utf-8 set guioptions-=m set guioptions-=T set guioptions-=r set lines=35 columns=120 colorscheme torte if g:os == "win" set guifont=Microsoft_Yahei_Mono:h11 else set guifont=Fira\ Mono\ 12 endif endif