`

我的gVim配置备份

 
阅读更多
if(has("win32") || has("win95") || has("win64") || has("win16")) "判定当前操作系统类型
    let g:iswindows=1
else
    let g:iswindows=0
endif
"设置不兼容VI模式,在增强模式下运行
set nocompatible
syntax on"打开高亮
if has("autocmd")
    filetype plugin indent on "根据文件进行缩进
    augroup vimrcEx
        au! 
        autocmd FileType text setlocal textwidth=78
        autocmd BufReadPost *
                    \    if line("'\"") > 1 && line("'\"") <= line("$") |
                    \ exe "normal! g`\"" |
                    \ endif
    augroup END
else
    "智能缩进,相应 的有cindent,官方说autoindent可以支持各种文件的缩进,
    "但是效果会比只支持C/C++的cindent效果会差一点,但笔者并没有看出来
    set autoindent " always set autoindenting on 
endif " has("autocmd")
set nowrap "不自动换行
set hlsearch "高亮显示结果
set incsearch "在输入要搜索的文字时,vim会实时匹配
set backspace=indent,eol,start whichwrap+=<,>,[,] "允许退格键的使用
if(g:iswindows==1) "允许鼠标的使用
    "防止linux终端下无法拷贝
    if has('mouse')
        set mouse=a
    endif
    au GUIEnter * simalt ~x 
endif
"字体的设置
set guifont=Courier_New:h14:cDEFAULT "记住空格用下划线代替哦
"set gfw=幼圆:h10:cGB2312

" 显示状态栏(默认值为 1,无法显示状态栏)
set laststatus=2
" Format the statusline
" 我的状态行显示的内容(包括文件类型和解码)
set statusline=[%n]%<%f%y%h%m%r%=[%b\ 0x%B]\ %l\ of\ %L,%c%V\ Page\ %N\ %P
function! CurDir()
    let curdir = substitute(getcwd(), '/Users/amir/', "~/", "g")
    return curdir
endfunction
" 用浅色高亮当前行
if has("gui_running")
    autocmd InsertLeave * se nocul
    autocmd InsertEnter * se cul
endif

" 标签页设置
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()}


"模仿快捷键,如:ctrt+A 全选、Ctrl+C复制、 Ctrl+V 粘贴等
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
"定义 “mapleader”变量,系统默认的是反斜杠,它位置太偏不容易按到
let mapleader = ","
let g:mapleader = ","
 
"gvim 内部编码
set encoding=utf-8
"当前编辑的文件编码
set fileencoding=utf-8
"gvim打开支持编码的文件
set fileencodings=ucs-bom,utf-8,gbk,cp936,gb2312,big5,euc-jp,euc-jp,euc-kr,latin1
 
"解决consle输出乱码
language messages zh_CN.UTF-8
"解决菜单乱码
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
 
"设置终端编码为gvim内部编码encoding
let &termencoding=&encoding
" 防止特殊符号无法正常显示
set ambiwidth=double
"缩进尺寸为4个空格
set sw=4
"tab 宽度为4个字符
set ts=4
"编辑时将所有tab替换为空格
set et
"按一次backspace就删除4个空格了
set smarttab
"不生成备份文件,如~index.html
set nobackup
"开启行号标记
set number
"配色方案为desert
colo darkblack
"关才上侧工具栏
set guioptions-=T
"关才右侧滚动条
"set guioptions-=r
"开启自动缩进
set autoindent
"显示匹配括号
set showmatch


"代码自动补全  (按快捷键Ctrl+X+O)
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascrīpt set omnifunc=javascrīptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType c set omnifunc=ccomplete#Complete
"无需closetag插件,一行代码完成html/xml的闭合tag自动补全
autocmd BufNewFile,BufRead *.html,*.htm,*.xml inoremap </ </<c-x><c-o>
"转换文件保存的编码,只在UTF-8和CP936之间
map <leader>ut <esc>:set fenc=utf-8<cr>:w!<cr>
map <leader>zh <esc>:set fenc=cp936<cr>:w!<cr>


"--------------------------------------------------
"zencoding.vim
"默认快捷键为 <CTRL+Y>+,
" 按住CTRL 键同时按Y键,然后马上按,号
"--------------------------------------------------
let g:use_zen_complete_tag = 1
"设置默认的快捷键
let g:user_zen_leader_key = '<c-j>'

 
"实现括号和引号自动补全
inoremap ( ()<Esc>i
inoremap [ []<Esc>i
inoremap { {<CR>}<Esc>O
autocmd Syntax html,vim inoremap < <lt>><Esc>i| inoremap > <c-r>=ClosePair('>')<CR>
inoremap ) <c-r>=ClosePair(')')<CR>
inoremap ] <c-r>=ClosePair(']')<CR>
inoremap } <c-r>=CloseBracket()<CR>
inoremap " <c-r>=QuoteDelim('"')<CR>
inoremap ' <c-r>=QuoteDelim("'")<CR>
 
function ClosePair(char)
 if getline('.')[col('.') - 1] == a:char
 return "\<Right>"
 else
 return a:char
 endif
endf
 
function CloseBracket()
 if match(getline(line('.') + 1), '\s*}') < 0
 return "\<CR>}"
 else
 return "\<Esc>j0f}a"
 endif
endf
 
function QuoteDelim(char)
 let line = getline('.')
 let col = col('.')
 if line[col - 2] == "\\"
 "Inserting a quoted quotation mark into the string
 return a:char
 elseif line[col - 1] == a:char
 "Escaping out of the string
 return "\<Right>"
 else
 "Starting a string
 return a:char.a:char."\<Esc>i"
 endif
endf


"代码折叠
"用空格键来开关折叠(说明西方“"”后面的内容为注释,不会被VIM所识别)
set foldenable
set foldmethod=indent
nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
"代码折叠使用方式
set foldmethod=syntax " 用语法高亮来定义折叠
set foldmethod=indent " 更多的缩进表示更高级别的折叠(这个似乎效果好一些)

"--------------------------------------------------
"NERD_tree
"命令模式下输入:NERDTreeToggle便可打开或关闭NERDTreeToggle
"设置快捷键,默认是F10
map <F10> :NERDTreeToggle<cr>

"--------------------------------------------------
"nerdcommenter.vim
"在命令前加上数字可以同时注释多行
" <leader>ca 在可选的注释方式之间切换,比如C/C++ 的块注释/* */和行注释//。
" <leader>cc 注释当前行或者可视模式下被选中的文本。
" <Leader>c<space>或者<Leader>ci 切换被选中行的注释状态。
" <Leader>cA 或者<Leader>cI 添加注释符到行末或行首,并进入插入模式,光标移到注释符中。
" <Leader>cr 或cl 或cb 添加注释,注释符会向右,向左,居中对齐。
" <leader>cs 以”性感”的方式注释。
" <leader>c$ 注释到行尾。
" <leader>cu 取消注释。
" <leader>cm 添加块注释。
"--------------------------------------------------
"让注释符与语句之间留一个空格
let NERDSpaceDelims=1
"多行注释时样子更好看
let NERDCompactSexyComs=1
"--------------------------------------------------
"authorinfo.vim
"此插件需要nerdcommenter插件支持
"注:我修改了插件,让其版本号为第一次用authorinfo作注释的时间
let g:vimrc_author='Anduo'
let g:vimrc_email='anduo@qq.com'
let g:vimrc_homepage='http://anduo.iteye.com'
"设置快捷键,默认是F4
map <F11> :AuthorInfoDetect<cr>

"检查当前文件代码语法(php){{{
function! CheckSyntax()
 if &filetype!="php"
  echohl WarningMsg | echo "Fail to check syntax! Please select the right file!" | echohl None
  return
 endif
 if &filetype=="php"
  " Check php syntax
  setlocal makeprg=\"php\"\ -l\ -n\ -d\ html_errors=off
  " Set shellpipe
  setlocal shellpipe=>
  " Use error format for parsing PHP error output
  setlocal errorformat=%m\ in\ %f\ on\ line\ %l
 endif
 execute "silent make %"
 set makeprg=make
 execute "normal :"
 execute "copen"
endfunction
map <F6> :call CheckSyntax()<CR>
"}}}

 

分享到:
评论

相关推荐

    windows下gvim配置

    收集的windows下gvim相关配置,具体细节本人也没能理解,只为节省时间备份一下以备不时之需,不建议下载. 感谢原作者们对知识的无私分享。

    Vim/Gvim配置文件+配色方案_By Marslo

    作为自己极为方便和顺手的编译器,在最近两年的使用中,我不断的更新和加强vim的功能,特此备份。。。 ============================== 开启最大化 (win32用户直接就可以最大化,但是linux用户则需要安装wmctrl,...

    windows下gvim配置_vimrc

    收集的windows下gvim相关配置,具体细节本人也没能理解,只为节省时间备份一下以备不时之需,不建议下载. 感谢原作者们对知识的无私分享。

    vc++ 2008 express 编译 gvim 的方法

    会存在一个同名的 Make_mvc.mak,需要备份的话就备份一下,不需要备份,直接覆盖就可以; 5:双击 msvcmake.bat 就可以编译。 6:如果不能编译,则启动[开始]菜单里的 vc++ 2008 express 的命令行,然后,用 cd 命令...

    vimrc:我对vim,gvim,macvim和neovim的配置

    另外,将我的vimrc推送到GitHub很好,因为我有一个在线备份。如果我格式化我的PC或想将vim安装到新计算机上,我只需要克隆我的存储库就可以了。 还有另一个原因可以将我的vimrc设置推送到网上。您可以与所有人共享您...

    Vim 配置包括所有的配置文件和扩展 适合windows linux

    这个配置是根据网上“最N vim配置“修正了一些错误和增加了一些我认为方便的设置,功能确实很强,感谢Amix,本人保留他(她)的说明,里面的配置都有说明,很容易就懂,建议大家好好去看一遍,包你有长进。 运行环境 ...

    Vim 配置文件

    作为自己极为方便和顺手的编译器,在最近一年的使用中,我不断的更新和加强vim的功能,特此备份。。。 需要注意的是,我配置的vim默认字体是Monaco,若本机没有自带的话,请于...

    vimrc带详细说明配置文件and插件包

    windows下的Gvim7.2的配置文件 增加了"文件浏览"和Taglist等一系列插件. 插件也在压缩包内 "本配置文件包括如下内容: "设定窗口打开位置 winpos 300 60 "设定窗口起始大小 set lines=50 columns=118 " 设定默认解码...

    Vim使用总结

    vim的学习总结 常用正则表达式 ============================== vim_utf-8.txt Vim删除不包含指定字符串的行.txt 常用操作.txt 常用脚本.txt 设置gvim不生成备份文件.txt 设置交换文件目录.txt

    vundle-vimfiles

    这个 Vim 配置基础形式 我的个人 Vim 配置和我在日常工作中使用的一些插件。 我把 Vim 相关的设置放在plugin/settings/Settings.vim ,其他插件的设置放在plugin/settings目录中。 您可以根据需要将您的~/.vimrc链接...

    vim 配置文件

    vim的配置文件,包括各种高级功能。 if has("gui_running") let g:isGUI = 1 else let g:isGUI = 0 endif set nocompatible " 关闭兼容模式 syntax enable " 语法高亮 filetype plugin on " 文件类型插件 ...

    linuxconfig:所有Linux的点文件

    Linux配置 Vim和Bash的点文件 关于: 位于home目录中的文件可以放在~ 位于other目录中的文件并非专门用于linux,但可以保留为备份。 例如_vimrc用于Windows gVim版本的Vim / vim-commentary的按键绑定 不选择行的...

    PlanetVim:简单而强大的Vim分发

    从当前目录自动获取本地.vimrc / .exrc文件'secure'选项设置为限制什么可以投入当地的.vimrc / .exec里 自动保存文件set autowrite autowriteall和一些autocmd秒。 可发现的: 重新定义所有菜单 GUI正式支持 一些...

Global site tag (gtag.js) - Google Analytics