`

yaoming168 Vim配置

vim 
阅读更多

"=========================================================================

"                       第一部分

"=========================================================================
   "配置颜色
colorscheme murphy
"  colorscheme 256-jungle

   " 设置显示字体
    if has("win32")
        set guifont=Courier_New:h11:cANSI
        "set guifont=YaHei\ Mono:h11
        "set guifontwide=Microsoft\ Yahei\ Monotype:h11
        "set guifont=YaHei\ Consolas\ Hybrid:h12
    endif
    " 不要使用vi的键盘模式,而是vim自己的
    set nocompatible
    
    " 加载配置。
    behave mswin
    
    "设置快速编辑.vimrc文件 ,e 编辑.vimrc
    map <silent> <leader>e :call SwitchToBuf("~/_vimrc")<cr>
    
    "保存.vimrc文件后会自动调用新的.vimrc
    autocmd! bufwritepost .vimrc source ~/_vimrc

 
    " 设定解码
    if has("multi_byte")
        " When 'fileencodings' starts with 'ucs-bom', don't do this manually
        "set bomb
        set fileencodings=ucs-bom,utf-8,chinese,taiwan,japan,korea,latin1
        " CJK environment detection and corresponding setting
        if v:lang =~ "^zh_CN"
            " Simplified Chinese, on Unix euc-cn, on MS-Windows cp936
            set encoding=utf-8
            set termencoding=utf-8
            if &fileencoding == ''
                set fileencoding=utf-8
            endif
        elseif v:lang =~ "^zh_TW"
            " Traditional Chinese, on Unix euc-tw, on MS-Windows cp950
            set encoding=euc-tw
            set termencoding=euc-tw
            if &fileencoding == ''
                set fileencoding=euc-tw
            endif
        elseif v:lang =~ "^ja_JP"
            " Japanese, on Unix euc-jp, on MS-Windows cp932
            set encoding=euc-jp
            set termencoding=euc-jp
            if &fileencoding == ''
                set fileencoding=euc-jp
            endif
        elseif v:lang =~ "^ko"
            " Korean on Unix euc-kr, on MS-Windows cp949
            set encoding=euc-kr
            set termencoding=euc-kr
            if &fileencoding == ''
                set fileencoding=ecu-kr
            endif
        endif
        " Detect UTF-8 locale, and override CJK setting if needed
        if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
            set encoding=utf-8
        endif
    else
        echoerr 'Sorry, this version of (g)Vim was not compiled with "multi_byte"'
    endif
    
    
    " browsedir设置
    set browsedir=buffer
    
    " 自动格式化设置
    filetype indent on
    set autoindent
    set smartindent
    
    " 设置备份及备份目录。
    set backspace=indent,eol,start
    set backupdir=D:\vim_back_files
    set autochdir
    
    " history文件中需要记录的行数,恢复必须用到。
    set history=1024
    
   " 解决菜单乱码,先指定语言。
set langmenu=zh_CN.UTF-8
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
language message zh_CN.UTF-8
set fileencodings=utf-8,GB2312,cp936,gb18030,big5,euc-jp,euc-kr,latin1

" 配置多语言环境
if has("multi_byte")
    " UTF-8 编码
    set encoding=utf-8
    set termencoding=utf-8
    set formatoptions+=mM
    set fencs=utf-8,gbk

    if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)'
        set ambiwidth=double
    endif

    if has("win32")
        source $VIMRUNTIME/delmenu.vim
        source $VIMRUNTIME/menu.vim
        language messages zh_CN.utf-8
    endif
else
    echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"
endif
    
    
    " 在处理未保存或只读文件的时候,弹出确认
    set confirm
    
    " 共享外部剪贴板
    set clipboard+=unnamed
   
    " 选中状态下 Ctrl+c 复制
vmap <C-c> "+y
    
    " 显示未完成命令
    set showcmd
    " 侦测文件类型
    filetype on
    
    " 载入文件类型插件
    filetype plugin on
    
    " 为特定文件类型载入相关缩进文件
    filetype indent on
    
    " 保存全局变量
    set viminfo+=!
    
    " 带有如下符号的单词不要被换行分割
    set iskeyword+=_,$,@,%,#,-
    
    " 语法高亮
    syntax on
    
    " 设置不兼容模式
    set nocp
   
      
    " 设置鼠标支持
    set mouse=a
    
    " 不要生成swap文件
    setlocal noswapfile
    
    " 当buffer被丢弃时隐藏
    set bufhidden=hide
    
    " 保存窗口大小
    set sessionoptions+=resize
    
    " C++头文件识别
    au BufEnter /usr/include/c++/* setf cpp
    au BufEnter /usr/include/g++-3/* setf cpp
    
    " GNU标准
    au BufEnter /usr/* call GnuIndent()
    
    " 显示行号
    set number
    
    " tab宽度
    set tabstop=4
    set cindent shiftwidth=4
    set autoindent shiftwidth=4
    
    " C/C++注释
    set comments=://
    
    " 修正自动C式样注释功能 <2005/07/16>
    set comments=s1:/*,mb:*,ex0:/
    
    " 增强检索功能
    set tags=./tags,./../tags,./**/tags
    
    " 保存文件格式
    set fileformats=unix,dos
    
    " 文件被其他程序修改时自动载入
    set autoread
    
    " 高亮字符,让其不受100列限制
    :highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white
    :match OverLength '\%101v.*'
    
    " 状态行颜色
    " highlight StatusLine guifg=SlateBlue guibg=Yellow
    highlight StatusLine guifg=SlateBlue guibg=White
    highlight StatusLineNC guifg=Gray guibg=White
    
    " 我的状态行显示的内容(包括文件类型和解码)
    set statusline=[%n]%<%f%y%h%m%r%=[%b\ 0x%B]\ %l\ of\ %L,%c%V\ Page\ %N\ %P
    
    " 设置命令行高度为2行
    set cmdheight=1
""=========================自动补全功能设置=================   
    " 命令行补全
    set wildmenu
    " 自动补全括号,包括大括号
    :inoremap ( ()<ESC>i
    :inoremap ) <c-r>=ClosePair(')')<CR>
    :inoremap { {}<ESC>i
    :inoremap } <c-r>=ClosePair('}')<CR>
    :inoremap [ []<ESC>i
    :inoremap ] <c-r>=ClosePair(']')<CR>
    ":inoremap < <><ESC>i
    ":inoremap > <c-r>=ClosePair('>')<CR>
   
    " 自动补全引号
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i

function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endf
    
    
  ""=========================自动补全功能设置完毕=================      
    " 打开文件时,总是跳到退出之前的光标处
    autocmd BufReadPost *
    \ if line("'\"") > 0 && line("'\"") <= line("$") |
    \   exe "normal! g`\"" |
    \ endif
    
    " 用浅色高亮当前行
    if has("gui_running")
        autocmd InsertLeave * se nocul
        autocmd InsertEnter * se cul
    endif
    
    filetype plugin on      "允许使用ftplugin目录下的文件类型特定脚本
    filetype indent on      "允许使用indent目录下的文件类型缩进
    

   
"==========================代码折叠========================
    
    " 设置以缩进的方式自动折叠和设置快捷方式
    set foldmethod=indent
    
    map <F3> zO " 打开折叠
    map <F4> zc " 关闭折叠
    map <F8> zR    " 打开所有折叠
    map <F9> zM    " 关闭所有折叠
    
set foldenable              " 开始折叠
set foldmethod=syntax       " 设置语法折叠
    
    " 用空格键来开关折叠
    set foldenable
    set foldmethod=manual
    nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
    
    
    " 保存代码文件前自动修改最后修改时间
    au BufWritePre *.sh           call TimeStamp('#')
    au BufWritePre .vimrc,*.vim   call TimeStamp('"')
    au BufWritePre *.c,*.h        call TimeStamp('//')
    au BufWritePre *.cpp,*.hpp    call TimeStamp('//')
    au BufWritePre *.cxx,*.hxx    call TimeStamp('//')
    au BufWritePre *.java         call TimeStamp('//')
    au BufWritePre *.rb           call TimeStamp('#')
    au BufWritePre *.py           call TimeStamp('#')
    au BufWritePre Makefile       call TimeStamp('#')
    au BufWritePre *.php
        \call TimeStamp('<?php //', '?>')
    au BufWritePre *.html,*htm
        \call TimeStamp('<!--', '-->')
    
    " 更改Leader为","
    let g:C_MapLeader = ','
    
    " 不要闪烁
    set novisualbell
    
    " 能够漂亮地显示.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()
   
  
    " 隐藏掉菜单和工具条。
    set guioptions-=m
    set guioptions-=T
    map <silent> <F2> :if &guioptions =~# 'T' <Bar>
            \set guioptions-=T <Bar>
            \set guioptions-=m <bar>
        \else <Bar>
            \set guioptions+=T <Bar>
            \set guioptions+=m <Bar>
        \endif<CR>
    
    " 标签页设置
    if has("gui_running")
        set showtabline=2
        map! tn tabnew
        nmap <C-c> :tabclose<CR>
    endif
    
    " 标签页只显示文件名
    function ShortTabLabel ()
        let bufnrlist = tabpagebuflist (v:lnum)
        let label = bufname (bufnrlist[tabpagewinnr (v:lnum) -1])
        let filename = fnamemodify (label, ':t')
        return filename
    endfunction
    
    set guitablabel=%{ShortTabLabel()}
    
    " 使回格键(backspace)正常处理indent, eol, start等
    set backspace=eol,start,indent
    
    " 允许backspace和光标键跨越行边界
    " set whichwrap+=<,>,h,l
    
    " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
    set mouse=a
    set selection=exclusive
    set selectmode=mouse,key
    
    " 启动的时候不显示那个援助索马里儿童的提示
    set shortmess=atI
    
    " 通过使用: commands命令,告诉我们文件的哪一行被改变过
    set report=0
    
    " 不让vim发出讨厌的滴滴声
    set noerrorbells
    
    " 在被分割的窗口间显示空白,便于阅读
    set fillchars=vert:\ ,stl:\ ,stlnc:\

    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "                              搜索和匹配                                     
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
   " 高亮显示匹配的括号
    set showmatch
    
    " 匹配括号高亮的时间(单位是十分之一秒)
    set matchtime=3
    
    " 在搜索的时候忽略大小写
    set ignorecase
    
    " 不要高亮被搜索的句子(phrases)
    " set nohlsearch
    
    " 在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)
    set incsearch
    
    " 输入:set list命令是应该显示些啥?
    set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$
    " Tab补全时忽略这些忽略这些
    set wildignore=*.o,*.obj,*.bak,*.exe
    " 光标移动到buffer的顶部和底部时保持3行距离
    set scrolloff=3
    
    "搜索出之后高亮关键词
    set hlsearch

    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "                              CTags的设定                                    
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

    
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "                        脚本内部用到的自定义函数                             
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

    
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"               python配置
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

    
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

    
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""



"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

                "第一部分完
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""





""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

                   "第二部分
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""


""=================================Vim的格式化代码功能======================


"设置制表符宽度,默认为
set tabstop=6
set cindent shiftwidth=6
set autoindent shiftwidth=6


分享到:
评论

相关推荐

    vim 配置 vim 配置

    Vim是一款强大的文本编辑器,其高度可定制性使得用户能够根据个人喜好和需求进行配置。...记住,每个开发者的Vim配置都是独一无二的,根据自己的需求进行调整,才能让Vim成为真正的个人化高效工具。

    vim 配置文件 vim 配置文件 vim 配置文件

    vim配置文件 vimrc vim配置文件 vimrc vim配置文件 vimrc

    Ubuntu vim配置(很简单)

    下载vimconfig.tar.tgz,将文件拷贝到ubuntu, 执行下面命令: tar zxvf vimconfig.tar.tgz cd vimconfig cp .* ~/ -rvf 部分配置情况: "-------------TagList--------------- "设置ctags路径 let Tlist_Ctags_Cmd ...

    vim配置插件-dierge

    vim配置插件

    vim配置文件,vim配置文件

    在Linux环境中,Vim配置文件通常位于用户的主目录下的`.vimrc`文件,这是一个初始化脚本,当Vim启动时会读取这个文件以设定各种选项和映射。以下是一些可能包含在`vim-config`中的关键知识点: 1. **颜色方案**:...

    vim配置文件目录

    本压缩包包含的“vim配置文件目录”是一个个人化的Vim设置集合,它允许你利用Git进行版本控制,方便追踪和管理你的配置更改。 首先,让我们来理解一下Vim配置文件的重要性。Vim的默认配置可能不能满足每个用户的...

    强大的vim配置文件(最新整理)

    本文将深入探讨"强大的vim配置文件"中涉及的关键知识点,以帮助你充分利用这款编辑器。 1. **自动补全**:Vim的自动补全功能极大地提高了编程效率。通过配置,可以在输入括号、函数名、变量名等时自动完成,减少了...

    VIM FOR PHP配置

    8. **Data**:这个文件可能包含了与VIM配置相关的其他数据,比如备份文件、交换文件或者特定插件的数据文件。 综上所述,这个"VIM FOR PHP配置"集成了多个实用功能,旨在优化PHP开发者的编码体验。通过合理的VIM...

    vim配置C/C++开发环境.zip

    - `.vimrc`是Vim的配置文件,可以在这里定义各种快捷键和设置。`.vimrc配置新.txt`和`.vimrc配置.txt`提供了配置示例。你需要将这些配置添加到自己的`~/.vimrc`文件中,以启用C/C++开发所需的功能。例如,添加以下...

    vim配置文件

    `vim配置文件`是个人化Vim环境的关键,它允许用户根据自己的需求调整编辑器的行为,提高编程效率。在Vim中,配置文件通常是名为`.vimrc`的文本文件,位于用户的主目录下。 `ctags`和`cscope`是两个非常有用的辅助...

    vim配置文档详解

    vim配置文档详解

    vim常用配置文件下载

    我自己的vim配置文件,包括常用的代码不全,git提示,nerdtree,taglist等。 复制到根目录下重命名为.vimrc

    vim的配置文件设置

    Vim,全称Vi IMproved,是一款强大的文本编辑器,深受程序员和系统管理员的喜爱。...当你探索并理解了这些配置选项后,不妨尝试从`vimconfig`中学习并借鉴别人的设置,逐步构建自己的Vim配置,让你的Vim更加得心应手。

    linux vim配置以及插件

    linux vim配置以及插件 linux vim配置以及插件

    史上超强 vim配置 服务器开发程序员专用

    1. **基础配置**:一个优秀的Vim配置通常会包含一系列优化设置,以提高开发效率。这可能包括调整缓冲区数量、改变默认行为(如设置自动缩进、关闭换行符显示)、启用多窗口编辑、以及设置快捷键映射等。 2. **插件...

    超级好用vim配置

    "超级好用vim配置"是针对Vim进行个性化设置的一种实践,旨在通过调整配置文件(.vimrc)来优化编辑体验,简化日常任务,提高编程速度。 1. **基本操作** - Vim有三种模式:命令模式、插入模式和底线模式。在命令...

    linux下vim配置

    vim配置文件,可以直接使用,ubuntu在/etc/vim/vimrc

    vim jeffy插件和配置

    1,备份下vim配置文件(可选) 2,解压jeffy-vim.zip 和里面的jeffy-vim-read.tar.gz 3,进入目录jeffy-vim-read运行安装脚本:#./install.sh 4,切换到自己的home目录#cd ~ 5,拷贝.vim配置文件到home目录 OK

Global site tag (gtag.js) - Google Analytics