本文转自:点击打开链接

 

导语

Linux才刚刚使用得上瘾,但各种客观原因,现在被迫要换回Windows了,我相信是暂时的。在Linux下习惯了使用Vim文本编辑器,回到Windows后虽然也有我很喜欢的Notepad++,但是也不想放弃Vim,所以找空将Vim配置好了。或许是喜欢前端的缘故,我容不了我工作的工具是丑陋的,不管他有多么强大,不然会影响我工作的心情。

VimLinux上的著名的文本编辑器,他是早年的Vi编辑器的加强版。gVimwindows版的,并且有了标准的windows风格的图形界面,所以叫g(graphical)Vim。如果是非专业使用的,其实他们(VimgVim)之间差别不大。VimEmacs 都被称为是神器,并形成两大派别,尽管我非常希望双方能和谐相处,可是现实貌似是谁也不怎么服对方。

我的gVim效果图预览

Vim之所以强大,其原因之一就是给予用户最大的支配权,让用户可以自由配置改造成任何自己希望的形式。安装完Vim后,默认的配置文件像一张白纸,需要你去绘画。先来看看配置之后的效果吧(点击可查看高清原图):

 

(1)Vim语法高亮、行号、自动缩进等

 

(2)Vim目录树(需小插件,文章后面附下载)

我的gVimVim)配置文件

下面和大家分享我自己使用的gVim配置文件,对于Vim同样适用。WindowsVim的配置文件位置:D:/Program Files/Vim_vimrc(即你的Vim安装位置,我安装在D:/Program Files);LinuxVim的配置文件位置:/etc/vim/gvimrc

请根据自己的需要进行添加和修改,例如你没接触C++/JAVA这些语言的,后面相关的配置就不用添加;如你喜欢,全部拿去也可以。添加到对应的配置文件最后就可以了(注:类似” 配色方案的是注释,请确保左双引号是半角):

配色方案

colo liveme

 

编码设置

set enc=utf-8

set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936

 

设置菜单语言

set langmenu=zh_CN.UTF-8

 

导入删除菜单脚本,删除乱码的菜单

source $VIMRUNTIME/delmenu.vim

 

导入正常的菜单脚本

source $VIMRUNTIME/menu.vim

 

设置提示信息语言

language messages zh_CN.utf-8

 

字体设置

set guifont=Monaco:h12:cANSI

 

语法高亮

set syntax=on

 

自动缩进

set autoindent

 

" C语言方式缩进

set cindent

 

智能缩进

set smartindent

 

统一缩进为4

set shiftwidth=4

set sts=4

set tabstop=4

 

默认窗口大小

set lines=30 columns=82

 

“ 默认窗口最大化打开

autocmd GUIEnter * simalt ~x

 

自动换行

set wrap

 

整词换行

set linebreak

 

显示行号

set number

 

高亮显示匹配的括号

set showmatch

 

搜索逐字符高亮和实时搜索

set hlsearch

set incsearch

 

匹配括号高亮的时间(单位是十分之一秒)

set matchtime=5

 

显示括号配对情况

set showmatch

 

代码折叠

" set fdm=indent

 

选择代码折叠类型

set foldmethod=syntax

 

禁止自动折叠

set foldlevel=100

 

命令行(在状态行下)的高度,默认为1,这里是2

set cmdheight=2

 

历史记录数

set history=1000

 

侦测文件类型

filetype on

 

为特定文件类型载入相关缩进格式

filetype indent on

 

为特定的文件类型载入对应的插件

filetype plugin on

filetype plugin indent on

 

不与vi兼容

set nocp

 

" vim目录树插件

map <F10> :NERDTreeToggle<CR>

 

保存全局变量

set viminfo+=!

 

带有如下符号的单词不要被换行分割

set iskeyword+=_,$,@,%,#,-

 

字符间插入的像素行数目

set linespace=0

 

增强模式中的命令行自动完成操作

set wildmenu

 

" PHP语法提示

autocmd FileType php set omnifunc=phpcomplete

 

禁止生成临时文件

set nobackup

set noswapfile

 

设置退格键可用

set backspace=2

 

快捷键自定义

map <C-s> :w<CR>

imap <C-s> <C-o>:w<CR>

 

隐藏工具栏,可用快捷键F2切换

set guioptions-=T

map <silent> <F2> :if &guioptions =~# 'T' <Bar>

set guioptions-=T <Bar>

else <Bar>

set guioptions+=T <Bar>

endif<CR>

 

能够漂亮地显示.NFO文件

set encoding=utf-8

function! SetFileEncodings(encodings)

let b:myfileencodingsbak=&fileencodings

let &fileencodings=a:encodings

endfunction

function! RestoreFileEncodings()

let &fileencodings=b:myfileencodingsbak

unlet b:myfileencodingsbak

endfunction

au BufReadPre *.nfo call SetFileEncodings('cp437')|set ambiwidth=single

au BufReadPost *.nfo call RestoreFileEncodings()

 

" F5编译和运行C程序,F6编译和运行C++程序

" C的编译和运行

map <F5> :call CompileRunGcc()<CR>

func! CompileRunGcc()

exec "w"

exec "!gcc -Wall % -o %<"

exec "! ./%<"

endfunc

 

" C++的编译和运行

map <F6> :call CompileRunGpp()<CR>

func! CompileRunGpp()

exec "w"

exec "!g++ -Wall % -o %<"

exec "! ./%<"

endfunc

 

" Gvim标签定制

set guitablabel=%{ShortTabLabel()}

function ShortTabLabel ()

let bufnrlist = tabpagebuflist (v:lnum)

let label = bufname (bufnrlist[tabpagewinnr (v:lnum) -1])

let filename = fnamemodify (label, ':t')

return filename

endfunction

 

" ######### 一键保存和编译 ######### "

 "编译C源文件

func! CompileGcc()

exec "w"

let compilecmd="!gcc -Wall -std=c99 "

let compileflag="-o %<"

exec compilecmd." % ".compileflag

endfunc

 

编译C++源文件

func! CompileCpp()

exec "w"

let compilecmd="!g++ -Wall "

let compileflag="-o %<"

exec compilecmd." % ".compileflag

endfunc

 

编译&链接Go源文件

func! CompileGo()

exec "w"

exec "!8g %"

exec "!8l -o %<.exe %<.8"

endfunc

 

编译Haskell源文件

func! CompileHaskell()

exec "w"

let compilecmd="!ghc --make "

let compileflag="-o %<"

exec compilecmd." % ".compileflag

endfunc

 

编译Java源文件

func! CompileJava()

exec "w"

exec "!javac %"

endfunc

 

编译C#源文件

func! CompileCs()

exec "w"

exec "!csc %"

endfunc

 

编译Gas源文件

func! CompileGas()

exec "w"

exec "!gcc -Wall -ggdb -o %< %"

endfunc

 

运行Shell源文件

func! RunShell()

exec "w"

exec "!sh %"

endfunc

 

运行Lua源文件

func! RunLua()

exec "w"

exec "!lua %"

endfunc

 

运行Perl源文件

func! RunPerl()

exec "w"

exec "!perl %"

endfunc

 

运行Python源文件

func! RunPython()

exec "w"

exec "!python %"

endfunc

 

运行Ruby源文件

func! RunRuby()

exec "w"

exec "!ruby %"

endfunc

 

根据文件类型自动选择相应的编译函数

func! CompileCode()

exec "w"

if &filetype == "c"

exec "call CompileGcc()"

elseif &filetype == "cpp"

exec "call CompileCpp()"

elseif &filetype == "go"

exec "call CompileGo()"

elseif &filetype == "haskell"

exec "call CompileHaskell()"

elseif &filetype == "java"

exec "call CompileJava()"

elseif &filetype == "cs"

exec "call CompileCs()"

elseif &filetype == "asm"

exec "call CompileGas()"

elseif &filetype == "sh"

exec "call RunShell()"

elseif &filetype == "lua"

exec "call RunLua()"

elseif &filetype == "perl"

exec "call RunPerl()"

elseif &filetype == "python"

exec "call RunPython()"

elseif &filetype == "ruby"

exec "call RunRuby()"

endif

endfunc

 

运行可执行文件

func! RunResult()

exec "w"

if &filetype == "c"

exec "! %<"

elseif &filetype == "cpp"

exec "! %<"

elseif &filetype == "go"

exec "! %<"

elseif &filetype == "haskell"

exec "! %<"

elseif &filetype == "java"

exec "!java %<"

elseif &filetype == "cs"

exec "! %<"

elseif &filetype == "asm"

exec "! %<"

elseif &filetype == "sh"

exec "!sh %<.sh"

elseif &filetype == "lua"

exec "!lua %<.lua"

elseif &filetype == "perl"

exec "!perl %<.pl"

elseif &filetype == "python"

exec "!python %<.py"

elseif &filetype == "ruby"

exec "!ruby %<.rb"

endif

endfunc

附:Vim配置文件下载:Vim配置文件

我的gVimVim)配色方案

有了配置文件还不能达到我上面的效果,还需要配色方案。本配色方案改自desert,为了让大家方便使用,且不损坏Vim原文件,故我将其另命名为liveme,绿色环保嘛。使用方法:下载下面的liveme.vim文件放到你的Vim安装目录下的vim73colors下面即可。

gVimVim)配色方案下载:liveme.vim

附:目录树插件下载: NERD_tree.zip (用法:解压出三个文件夹放到Vim安装目录中的vimfiles文件夹中,合并同名文件夹。目录树开关快捷键:F10

 


Logo

更多推荐