此配置目前适用于mac,linux,win,但是win系统需要配置mingw32相关的gcc路径加入系统环境变量。
vim安装
apt-get install vim
vim基本设置
vim ~/.vimrc
syntax enable set number set cursorline set ruler "set shiftwidth=4 "========================================== " Common Settings "========================================== " 开启语法高亮 syntax enable " 开启语法高亮 syntax on " 设置字体 set guifont=Monaco " 设置历史记录条数 set history=999 " 检测文件类型 filetype on " 针对不同的文件,采用不同的缩进方式 filetype indent on " 允许插件 filetype plugin on " 启动自动补全 filetype plugin indent on " 文件修改之后自动读入 set autoread " 启动后不显示提示 "set shortmess=atI " 设置取消备份,禁止临时文件生成 set nobackup set noswapfile " create undo file set undolevels=1000 " how many undos set undoreload=10000 " number of lines to save for undo if v:version >= 730 set undofile " keep a persistent backup file set undodir=/tmp/vimundo/ endif "set wildignore=*.swp,*.bak,*.pyc,*.class,.svn " 显示当前横竖线 "set cursorline "set cursorcolumn " 设置退出Vim之后内容显示在终端屏幕,可以用于查看和复制 " 好处:误删什么,如果以前屏幕打开可以用来找回 "set t_ti= t_te= " 设置在Vim中可以使用鼠标,防止终端无法拷贝 "set mouse=a "========================================== " Display Settings "========================================== " 显示当前行号和列号 set ruler " 在状态栏显示正在输入的命令 set showcmd " 左下角显示当前Vim模式 set showmode " 光标移动至少保留的行数 "set scrolloff=7 " 命令行(在状态行下)的高度,默认为1,这里是2 set statusline=%<%f\ %h%m%r%=%k[%{(&fenc==\"\")?&enc:&fenc}%{(&bomb?\",BOM\":\"\")}]\ %-14.(%l,%c%V%)\ %P " 总是显示状态栏(Powerline需要2行) set laststatus=2 " 显示行号 set number " 指定不折行 set nowrap " 设置代码匹配,包括括号匹配情况 set showmatch " how many tenths of a second to blink when matching brackets " setmatchtime=2 " 开启及时搜索(is) set incsearch " 设置搜索高亮(hlsearch) set hls " 设置搜索时忽略大小写 set ignorecase " 当搜索的时候尝试smar set smartcase " 设置代码折叠 "set foldenable " 折叠方法 " manual 手工折叠 " indent 缩进折叠 " expr 表达式折叠 " syntax 语法折叠 " diff 对没有更改的文件折叠 " marker 标记折叠 "set foldmethod=inden "set foldlevel=99 " 设置C/C++方式自动对齐 set autoindent set cindent set smartindent " 设置tab宽度 set tabstop=4 " 设置自动对齐空格数 set shiftwidth=4 " 按退格键时可以一次删除4个空格 "set softtabstop=4 " 编辑的时候将所有的tab设置为空格(expandtab) set et " 使用Backspace直接删除tab set smarttab " 不在单词中间折行 set lbr "========================================== " FileEncode Settings "========================================== " 设置编码方式 set encoding=utf-8 " 设置打开文件的编码格式 set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 set helplang=cn " 只对终端影响(默认) set termencoding=utf-8 " use UNIX as the standard file type set ffs=unix,dos,mac " 如遇Unicode值大于255的文本,不必等到空格再折行。 set formatoptions+=m " 合并两行中文时,不在中间加空格: set formatoptions+=B "========================================== " HotKey Settings "========================================== :set pastetoggle=<F12> "========================================== " Theme Settings "========================================== " 设置主题 set background=dark colorscheme evening set t_Co=256 "========================================== " Other Settings "========================================== " Uncomment the following to have Vim jump to the last position when reopening a file if has("autocmd") au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif endif func! CompileGcc() exec "w" let compilecmd="!gcc " let compileflag="-o %< " if search("glut\.h") != 0 let compileflag .= " -lglut -lGLU -lGL " endif exec compilecmd." % ".compileflag endfunc func! CompileGpp() exec "w" let compilecmd="!g++ -std=c++11 " let compileflag="-o %< " if search("glut\.h") != 0 let compileflag .= " -lglut -lGLU -lGL " endif exec compilecmd." % ".compileflag endfunc func! RunPython() exec "!python %" endfunc func! CompileJava() exec "!javac %" endfunc func! CompileCode() exec "w" if &filetype == "cpp" exec "call CompileGpp()" elseif &filetype == "c" exec "call CompileGcc()" elseif &filetype == "python" exec "call RunPython()" elseif &filetype == "java" exec "call CompileJava()" endif endfunc func! RunResult() exec "w" if &filetype == "c" exec "! ./%<" elseif &filetype == "cpp" exec "! ./%<" elseif &filetype == "python" exec "call RunPython" elseif &filetype == "java" exec "!java %<" endif endfunc map <F5> :call RunResult()<CR> map <F9> :call CompileCode()<CR> imap <F9> <ESC>:call CompileCode()<CR> vmap <F9> <ESC>:call CompileCode()<CR>