linux vim 个性化设置(.vimrc)


set sw=4   set ts=4   set et   set smarttab   set smartindent   set lbr   set fo+=mB   set sm   set selection=inclusive   set wildmenu   set mousemodel=popup       au FileType php setlocal dict+=~/.vim/dict/php_funclist.dict   au FileType css setlocal dict+=~/.vim/dict/css.dict   au FileType c setlocal dict+=~/.vim/dict/c.dict   au FileType cpp setlocal dict+=~/.vim/dict/cpp.dict   au FileType scale setlocal dict+=~/.vim/dict/scale.dict   au FileType javascript setlocal dict+=~/.vim/dict/javascript.dict   au FileType html setlocal dict+=~/.vim/dict/javascript.dict   au FileType html setlocal dict+=~/.vim/dict/css.dict       "   "syntastic相关   execute pathogen#infect()   let g:syntastic_python_checkers=['pylint']   let g:syntastic_php_checkers=['php', 'phpcs', 'phpmd']   "golang   "Processing... % (ctrl+c to stop)   let g:fencview_autodetect=0   set rtp+=$GOROOT/misc/vim   """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""   " 显示相关   """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""   syntax on   set cul "高亮光标所在行   set cuc   set shortmess=atI " 启动的时候不显示那个援助乌干达儿童的提示   set go= " 不要图形按钮   "color desert " 设置背景主题   color ron " 设置背景主题   "color torte " 设置背景主题   "set guifont=Courier_New:h10:cANSI " 设置字体   "autocmd InsertLeave * se nocul " 用浅色高亮当前行   autocmd InsertEnter * se cul " 用浅色高亮当前行   set ruler " 显示标尺   set showcmd " 输入的命令显示出来,看的清楚些   "set whichwrap+=<,>,h,l " 允许backspace和光标键跨越行边界(不建议)   set scrolloff=3 " 光标移动到buffer的顶部和底部时保持3行距离   set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "状态行显示的内容   set laststatus=2 " 启动显示状态行(1),总是显示状态行(2)   "set foldenable " 允许折叠   ""set foldmethod=manual " 手动折叠   set nocompatible "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限   " 显示中文帮助   if version >= 603   set helplang=cn   set encoding=utf-8   endif   " 自动缩进   set autoindent   set cindent   " Tab键的宽度   set tabstop=4   " 统一缩进为4   set softtabstop=4   set shiftwidth=4   " 不要用空格代替制表符   set expandtab   " 在行和段开始处使用制表符   set smarttab   " 显示行号   set number   " 历史记录数   set history=1000   "搜索逐字符高亮   set hlsearch   set incsearch   "语言设置   set langmenu=zh_CN.UTF-8   set helplang=cn   " 总是显示状态行   set cmdheight=2   " 侦测文件类型   filetype on   " 载入文件类型插件   filetype plugin on   " 为特定文件类型载入相关缩进文件   filetype indent on   " 保存全局变量   set viminfo+=!   " 带有如下符号的单词不要被换行分割   set iskeyword+=_,$,@,%,#,-   " 字符间插入的像素行数目       "markdown配置   au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn} set filetype=mkd   au BufRead,BufNewFile *.{go} set filetype=go   au BufRead,BufNewFile *.{js} set filetype=javascript   "rkdown to HTML   nmap md :!~/.vim/markdown.pl % > %.html <CR><CR>   nmap fi :!firefox %.html & <CR><CR>   nmap \ \cc   vmap \ \cc       "将tab替换为空格   nmap tt :%s/\t/ /g<CR>               """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""   """""新文件标题   """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""   "新建.c,.h,.sh,.java文件,自动插入文件头   autocmd BufNewFile *.cpp,*.[ch],*.sh,*.rb,*.java,*.py exec ":call SetTitle()"   ""定义函数SetTitle,自动插入文件头   func SetTitle()   "如果文件类型为.sh文件   if &filetype == 'sh'   call setline(1,"\#!/bin/bash")   call append(line("."), "")   elseif &filetype == 'python'   call setline(1,"#!/usr/bin/env python")   call append(line("."),"# coding=utf-8")   call append(line(".")+1, "")       elseif &filetype == 'ruby'   call setline(1,"#!/usr/bin/env ruby")   call append(line("."),"# encoding: utf-8")   call append(line(".")+1, "")       " elseif &filetype == 'mkd'   " call setline(1,"<head><meta charset=\"UTF-8\"></head>")   else   call setline(1, "/*************************************************************************")   call append(line("."), " > File Name: ".expand("%"))   call append(line(".")+1, " > Author: ")   call append(line(".")+2, " > Mail: ")   call append(line(".")+3, " > Created Time: ".strftime("%c"))   call append(line(".")+4, " ************************************************************************/")   call append(line(".")+5, "")   endif   if expand("%:e") == 'cpp'   call append(line(".")+6, "#include<iostream>")   call append(line(".")+7, "using namespace std;")   call append(line(".")+8, "")   endif   if &filetype == 'c'   call append(line(".")+6, "#include<stdio.h>")   call append(line(".")+7, "")   endif   if expand("%:e") == 'h'   call append(line(".")+6, "#ifndef _".toupper(expand("%:r"))."_H")   call append(line(".")+7, "#define _".toupper(expand("%:r"))."_H")   call append(line(".")+8, "#endif")   endif   if &filetype == 'java'   call append(line(".")+6,"public class ".expand("%:r"))   call append(line(".")+7,"")   endif   "新建文件后,自动定位到文件末尾   endfunc   autocmd BufNewFile * normal G           """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""   "键盘命令   """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""   : nmap <silent> <F9> <ESC>:Tlist<RETURN>   " shift tab pages   map <S-Left> :tabp<CR>   map <S-Right> :tabn<CR>   map! <C-Z> <Esc>zzi   map! <C-O> <C-Y>,   map <C-A> ggVG$"+y   map <F12> gg=G   map <C-w> <C-w>w   imap <C-k> <C-y>,   imap <C-t> <C-q><TAB>   imap <C-j> <ESC>   " 选中状态下 Ctrl+c 复制   "map <C-v> "*pa   imap <C-v> <Esc>"*pa   imap <C-a> <Esc>^   imap <C-e> <Esc>$   vmap <C-c> "+y   set mouse=v   "set clipboard=unnamed   "去空行   nnoremap <F2> :g/^\s*$/d<CR>   "比较文件   nnoremap <C-F2> :vert diffsplit   "nnoremap <Leader>fu :CtrlPFunky<Cr>   "nnoremap <C-n> :CtrlPFunky<Cr>   "列出当前目录文件   map <F3> :NERDTreeToggle<CR>   imap <F3> <ESC> :NERDTreeToggle<CR>   "打开树状文件目录   map <C-F3> \be   : autocmd BufRead,BufNewFile *.dot map <F5> :w<CR>:!dot -Tjpg -o %<.jpg % && eog %<.jpg <CR><CR> && exec "redr!"   "C,C++ 按F5编译运行   map <F5> :call CompileRunGcc()<CR>   func! CompileRunGcc()   exec "w"   if &filetype == 'c'   exec "!g++ % -o %<"   exec "!time ./%<"   elseif &filetype == 'cpp'   exec "!g++ % -o %<"   exec "!time ./%<"   elseif &filetype == 'java'   exec "!javac %"   exec "!time java %<"   elseif &filetype == 'sh'   :!time bash %   elseif &filetype == 'python'   exec "!time python2.7 %"   elseif &filetype == 'html'   exec "!firefox % &"   elseif &filetype == 'go'   " exec "!go build %<"   exec "!time go run %"   elseif &filetype == 'mkd'   exec "!~/.vim/markdown.pl % > %.html &"   exec "!firefox %.html &"   endif   endfunc   "C,C++的调试   map <F8> :call Rungdb()<CR>   func! Rungdb()   exec "w"   exec "!g++ % -g -o %<"   exec "!gdb ./%<"   endfunc           "代码格式优化化       map <F6> :call FormartSrc()<CR><CR>       "定义FormartSrc()   func FormartSrc()   exec "w"   if &filetype == 'c'   exec "!astyle --style=ansi -a --suffix=none %"   elseif &filetype == 'cpp' || &filetype == 'hpp'   exec "r !astyle --style=ansi --one-line=keep-statements -a --suffix=none %> /dev/null 2>&1"   elseif &filetype == 'perl'   exec "!astyle --style=gnu --suffix=none %"   elseif &filetype == 'py'||&filetype == 'python'   exec "r !autopep8 -i --aggressive %"   elseif &filetype == 'java'   exec "!astyle --style=java --suffix=none %"   elseif &filetype == 'jsp'   exec "!astyle --style=gnu --suffix=none %"   elseif &filetype == 'xml'   exec "!astyle --style=gnu --suffix=none %"   else   exec "normal gg=G"   return   endif   exec "e! %"   endfunc   "结束定义FormartSrc           """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""   ""实用设置   """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""   if has("autocmd")   autocmd BufReadPost *   \ if line("'\"") > 0 && line("'\"") <= line("$") |   \ exe "normal g`\"" |   \ endif   endif   "当打开vim且没有文件时自动打开NERDTree   autocmd vimenter * if !argc() | NERDTree | endif   " 只剩 NERDTree时自动关闭   autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif       " 设置当文件被改动时自动载入   set autoread   " quickfix模式   autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>   "代码补全   set completeopt=preview,menu   "允许插件   "filetype plugin on   "共享剪贴板   "set clipboard+=unnamed   "自动保存   set autowrite   "set ruler " 打开状态栏标尺   "set cursorline " 突出显示当前行   set magic " 设置魔术   set guioptions-=T " 隐藏工具栏   set guioptions-=m " 隐藏菜单栏   ""set foldcolumn=0   ""set foldmethod=indent   ""set foldlevel=3   " 不要使用vi的键盘模式,而是vim自己的   set nocompatible   " 去掉输入错误的提示声音   set noeb   " 在处理未保存或只读文件的时候,弹出确认   set confirm   "禁止生成临时文件   set nobackup   set noswapfile   "搜索忽略大小写   set ignorecase                   set linespace=0   " 增强模式中的命令行自动完成操作   set wildmenu   " 使回格键(backspace)正常处理indent, eol, start等   set backspace=2   " 允许backspace和光标键跨越行边界   set whichwrap+=<,>,h,l   " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)   set mouse=a   set selection=exclusive   set selectmode=mouse,key   " 通过使用: commands命令,告诉我们文件的哪一行被改变过   set report=0   " 在被分割的窗口间显示空白,便于阅读   set fillchars=vert:\ ,stl:\ ,stlnc:\   " 高亮显示匹配的括号   set showmatch   " 匹配括号高亮的时间(单位是十分之一秒)   set matchtime=1   " 光标移动到buffer的顶部和底部时保持3行距离   set scrolloff=3   " 为C程序提供自动缩进   "自动补全   "":inoremap ( ()<ESC>i   "":inoremap ) <c-r>=ClosePair(')')<CR>   ":inoremap { {<CR>}<ESC>O   ":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   ""endfunction   filetype plugin indent on   "打开文件类型检测, 加了这句才可以用智能补全   set completeopt=longest,menu   """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""   " CTags的设定   """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""   let Tlist_Sort_Type = "name" " 按照名称排序   let Tlist_Use_Right_Window = 1 " 在右侧显示窗口   let Tlist_Compart_Format = 1 " 压缩方式   let Tlist_Exist_OnlyWindow = 1 " 如果只有一个buffer,kill窗口也kill掉buffer   ""let Tlist_File_Fold_Auto_Close = 0 " 不要关闭其他文件的tags   ""let Tlist_Enable_Fold_Column = 0 " 不要显示折叠树   "let Tlist_Show_One_File=1 "不同时显示多个文件的tag,只显示当前文件的   "设置tags   "set tags=tags   "set autochdir           """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""   "其他东东   """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""   "默认打开Taglist   let Tlist_Auto_Open=0   """"""""""""""""""""""""""""""   " Tag list (ctags)   """"""""""""""""""""""""""""""""   let Tlist_Ctags_Cmd = '/usr/local/bin/ctags'   let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的   let Tlist_File_Fold_Auto_Close = 1   let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim   let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口   " minibufexpl插件的一般设置   let g:miniBufExplMapWindowNavVim = 1   let g:miniBufExplMapWindowNavArrows = 1   let g:miniBufExplMapCTabSwitchBufs = 1   let g:miniBufExplModSelTarget = 1   nmap tl :Tlist<cr>       "python补全   let g:pydiction_location = '~/.vim/after/complete-dict'   let g:pydiction_menu_height = 20   let Tlist_Ctags_Cmd='/usr/local/bin/ctags'   let g:miniBufExplMapWindowNavVim = 1   let g:miniBufExplMapWindowNavArrows = 1   let g:miniBufExplMapCTabSwitchBufs = 1   let g:miniBufExplModSelTarget = 1           set iskeyword+=.   set termencoding=utf-8   set encoding=utf8   set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030       autocmd FileType python set omnifunc=pythoncomplete#Complete       "set nocompatible " be iMproved   "filetype off " required!       set rtp+=~/.vim/bundle/vundle/   call vundle#rc()       " let Vundle manage Vundle   " required!   Bundle 'gmarik/vundle'       " My Bundles here:   "   " original repos on github   Bundle 'tpope/vim-fugitive'   Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}   Bundle 'Yggdroot/indentLine'   let g:indentLine_char = '┊'   "ndle 'tpope/vim-rails.git'   " vim-scripts repos   Bundle 'L9'   Bundle 'FuzzyFinder'   " non github repos   Bundle 'git://git.wincent.com/command-t.git'   Bundle 'Auto-Pairs'   Bundle 'python-imports.vim'   Bundle 'CaptureClipboard'   Bundle 'ctrlp-modified.vim'   Bundle 'last_edit_marker.vim'   Bundle 'synmark.vim'   "Bundle 'Python-mode-klen'   Bundle 'SQLComplete.vim'   Bundle 'Javascript-OmniCompletion-with-YUI-and-j'   "Bundle 'JavaScript-Indent'   "Bundle 'Better-Javascript-Indentation'   Bundle 'jslint.vim'   Bundle "pangloss/vim-javascript"   Bundle 'Vim-Script-Updater'   Bundle 'ctrlp.vim'   Bundle 'tacahiroy/ctrlp-funky'   Bundle 'jsbeautify'   Bundle 'The-NERD-Commenter'   "django   Bundle 'django_templates.vim'   Bundle 'Django-Projects'       "Bundle 'FredKSchott/CoVim'   "Bundle 'djangojump'   " ...   let g:html_indent_inctags = "html,body,head,tbody"   let g:html_indent_script1 = "inc"   let g:html_indent_style1 = "inc"       filetype plugin indent on " required!   "   "ctrlp设置   "   set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*.pyc,*.png,*.jpg,*.gif " MacOSX/Linux   set wildignore+=*\\tmp\\*,*.swp,*.zip,*.exe,*.pyc,*.png,*.jpg,*.gif " Windows       let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'   let g:ctrlp_custom_ignore = '\v\.(exe|so|dll)$'   let g:ctrlp_extensions = ['funky']       let NERDTreeIgnore=['\.pyc']


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM