zoukankan      html  css  js  c++  java
  • gVim7.3(Vim7.3)文本编辑器详细配置文件和配色方案 新风宇宙

    gVim7.3(Vim7.3)文本编辑器详细配置文件和配色方案

     导语

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

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

    我的gVim效果图预览

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

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

    vim02

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

    我的gVim(Vim)配置文件

    下面和大家分享我自己使用的gVim配置文件,对于Vim同样适用。Windows下Vim的配置文件位置:D:\Program Files\Vim\_vimrc(即你的Vim安装位置,我安装在D:\Program Files\);Linux下Vim的配置文件位置:/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 softtabstop=4
    set shiftwidth=4

    ” 默认窗口大小
    set lines=30 columns=82

    ” 自动换行
    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

    我的gVim(Vim)配色方案

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

    下载:liveme.vim

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

  • 相关阅读:
    64位Windows2008下插入Oracle中文乱码问题解决
    .net自定义WebService WSDL
    IE8下调用Active控件
    IIS7.5下发布应用程序备忘
    在aws ec2上使用root用户登录
    win2008 服务器文件夹权限配置
    thinkphp3.1 多表联合查询代码
    并发 并行 同步 异步 多线程的区别
    学习ES6生成器(Generator)
    node.js+socket.io配置详解
  • 原文地址:https://www.cnblogs.com/php5/p/2590372.html
Copyright © 2011-2022 走看看