source $VIMRUNTIME/vimrc_example.vim source $VIMRUNTIME/mswin.vim behave mswin """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " VIM userinterface """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set smarttab set cursorline "显示行号 set nu "设置最大列数,超出后自动换行 set textwidth=120 "设置tab=4 set shiftwidth=4 set sts=4 set tabstop=4 "tab->空格 set expandtab "以breakat的值的位置回绕长行,而不是以屏幕上可以显示的最后一个字符回绕。breakat=" ^I!@*-+;:,./?" set lbr "不备份 set nobackup set nowritebackup set noswapfile "不要工具条 "set guioptions-=T "颜色主题 colorscheme murphy "默认字体为Lucida Console,字体大小为11,粗体 "set guifont=Lucida_Console:h10 "搜索时全小写相当于不区分大小写,只要有一个大写字母出现,则区分大小写 simple idea, great achievement! set ignorecase smartcase set incsearch "启动gVIM时最大化 au GUIEnter * simalt ~x " 进入插入模式时改变状态栏颜色(仅限于Vim 7) set laststatus=2 "总是显示状态栏 if version >= 700 au InsertEnter * hi StatusLine guibg=#818D29 guifg=#FCFCFC gui=none au InsertLeave * hi StatusLine guibg=#EEEEEE guifg=#363636 gui=none endif " r 确保 Vim 在回车后自动追加注释符号 " mM 确保Vim 能在中文字符之间折行而不要求空格的存在 set formatoptions+=rmM "设置状态栏 set showcmd set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set statusline=%F%m%r%h%w\ [POS=%04l,%04v]\ [%p%%]\ [LEN=%L]\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B] "Tab complete now ignores these file types set wildignore=*.o,*.obj,*.bak,*.exe,*~ "Get out of VI's compatible mode.. set nocompatible "Sets how many lines of history VIM har to remember set history=100 "Enable filetype plugin filetype plugin on filetype indent on "Set to auto read when a file is changed from the outside set autoread "Have the mouse enabled all the time: set mouse=a "光标上下两侧最少保留的屏幕行数 scrolloff set so=5 "Turn on WiLd menu set wildmenu "Always show current position set ruler "The commandbar is 2 high set cmdheight=1 "Do not redraw, when running macros.. lazyredraw "set lz "Change buffer - without saving "set hid "Set backspace set backspace=eol,start,indent "Bbackspace and cursor keys wrap to set whichwrap+=<,>,h,l "Set magic on set magic "No sound on errors. set noerrorbells set novisualbell set t_vb= "show matching bracets set showmatch "How many tenths of a second to blink set mat=2 "Highlight search things set hlsearch "设置折叠 "set foldcolumn=2 "相同缩进构成折叠 "set foldmethod=indent "手动设置折叠 set foldmethod=manual "set foldlevel=10 "Set mapleader let mapleader = "," let g:mapleader = "," "Fast reloading of the .vimrc map <silent> <leader>ss :source $vim/_vimrc<CR> "Fast editing of .vimrc map <silent> <leader>ee :e $vim/_vimrc<CR> "When .vimrc is edited, reload it autocmd! bufwritepost _vimrc source $vim/_vimrc """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Colors and Fonts """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Enable syntax hl syntax enable autocmd BufEnter * :syntax sync fromstart "Highlight current if has("gui_running") set cursorline hi cursorline guibg=#333333 hi CursorColumn guibg=#333333 endif "Omni menu colors hi Pmenu guibg=#333333 hi PmenuSel guibg=#555555 guifg=#ffffff """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Fileformats """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Favorite filetypes set ffs=dos,unix,mac nmap <leader>fd :se ff=dos<cr> nmap <leader>fu :se ff=unix<cr> """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "map """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "myself nmap <leader>w :w!<cr> map ; : "nmap <leader>f :find<cr> nmap <F4> <C-O> nmap <F5> g] imap <F4> <ESC>g]i "imap <S-F7> <ESC>:%!xxd -r<CR>i "set Highlight nmap <C-F5> :set hls<CR>gd imap <C-F5> <ESC>:set hls<CR>gd<CR>i "goto file nmap <C-F6> gf imap <C-F6> <ESC>gf<CR>i nmap <C-F10> :set mouse=<CR> imap <C-F10> <ESC>:set mouse=<CR>i nmap <C-F11> :set mouse=a<CR> imap <C-F11> <ESC>:set mouse=a<CR>i "生成一个tags文件 nmap <F9> <Esc>:!ctags -R *<CR> """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ""EnhanceCommentify设置 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "注释 nmap <silent> <F3> ,x vmap <silent> <F3> ,x imap <silent> <F3> ,x """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " General Autocommands """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Switch to current dir map <leader>cd :cd %:p:h<cr> """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " General Abbrevs """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "My information iab xdate <c-r>=strftime("%d/%m/%y %H:%M:%S")<cr> iab xname ChenYong(chenyong@vorx.com.cn) let g:HDL_Author = "ChenYong" let g:HDL_Company = "Vorx Ltd.com" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Indent """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Auto indent set autoindent "Smart indet set smartindent "C-style indeting set cindent "Wrap lines set wrap """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " markbrowser setting """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" nmap <silent> <leader>mk :MarksBrowser<cr> """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 获取当前路径,将$home_vim转化为~ " 这里要在环境变量里设置:home_vim=D:\Program Files\Vim """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" function! CurDir() let curdir = substitute(getcwd(), $home_vim, "~", "g") return curdir endfunction """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "设置Taglist """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " 这项必须设定,否则出错,配置taglist的ctags路径 let Tlist_Ctags_Cmd = 'D:\ctags58\ctags.exe' " 使用F8打开Taglist 有winmanager所以不设置此项 "nnoremap <silent> <F8> :TlistToggle<CR> " 不同时显示多个文件的 tag ,只显示当前文件的 let Tlist_Show_One_File=1 " 如果 taglist 窗口是最后一个窗口,则退出 vim let Tlist_Exit_OnlyWindow=1 "让当前不被编辑的文件的方法列表自动折叠起来 let Tlist_File_Fold_Auto_Close=1 "把taglist窗口放在屏幕的右侧,缺省在左侧 let Tlist_Use_Right_Window=1 "显示taglist菜单 let Tlist_Show_Menu=1 "let Tlist_Max_Submenu_Items= "let Tlist_Max_Tag_Length= "缺省情况下,双击一个 tag,跳到该 tag 定义的位置,如果你想单击 tag 就跳转 "let Tlist_Use_SingleClick=1 "启动vim自动打开taglist "let Tlist_Auto_Open=1 "选择了tag后自动关闭taglist窗口 "let Tlist_Close_On_Select=1 "打开taglist焦点设置在taglist窗口中 "let Tlist_GainFocus_On_ToggleOpen=1 "taglist始终解析文件中的tag,不管taglist窗口有没有打开 "let Tlist_Process_File_Always=1 "taglist窗口宽度 "let Tlist_WinWidth=25 "taglist窗口高度 "let Tlist_WinHeight=25 "窗口横向显示 "let Tlist_Use_Horiz_Window=1 "设置tags文件路径 总报错 不知道是什么错 "set tags=D:\Program Files\Vim\vim72\tags """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "default """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" set diffexpr=MyDiff() function! MyDiff() let opt = '-a --binary ' if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif let arg1 = v:fname_in if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif let arg2 = v:fname_new if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif let arg3 = v:fname_out if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif let eq = '' if $VIMRUNTIME =~ ' ' if &sh =~ '\<cmd' let cmd = '""' . $VIMRUNTIME . '\diff"' let eq = '"' else let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"' endif else let cmd = $VIMRUNTIME . '\diff' endif silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq endfunction """""""""""""""""""""""""""""" " netrw setting浏览器 """""""""""""""""""""""""""""" "let g:netrw_winsize = 30 "nmap <silent> <leader>fe :Sexplore!<cr> nmap <silent> <leader>fe :Explore!<cr> """"""""""""""""""""""""""""""" "" winManager setting """"""""""""""""""""""""""""""" "设置界面分割 "let g:winManagerWindowLayout = "BufExplorer,FileExplorer|TagList" "let g:winManagerWindowLayout = "TagList|FileExplorer,BufExplorer" let g:winManagerWindowLayout='NERDTree|TagList,BufExplorer' "let g:winManagerWindowLayout='Mark|TagList' "在进入vim时自动打开winmanager let g:AutoOpenWinManager = 1 "设置winmanager的宽度,默认为25 let g:winManagerWidth = 30 "定义打开关闭winmanager按键 "nmap <silent> <F8> :WMToggle<cr><C-W>h nmap <silent> <F8> :WMToggle<cr> """""""""""""""""""""""""""""""""""""""""""""" "hdl_plugin """""""""""""""""""""""""""""""""""""""""""""" nmap <silent>va :ProBuild<CR> nmap <silent>vin :AddInfo<CR> nmap <silent>vc :Acontent<CR> nmap <silent>ve :VhdlEntity<CR> nmap <silent>vf :AddFsdb<CR> "Component窗口=1设置右侧,=0垂直左侧,不设置则默认为水平分割 "let g:RightB_Commponent = 0 """""""""""""""""""""""""""""""""""""""""""""" ""omni completion """""""""""""""""""""""""""""""""""""""""""""" set ofu=syntaxcomplete#Complete imap <silent><M-`> <C-X><C-O> """""""""""""""""""""""""""""""""""""""""""""" " 匹配 """""""""""""""""""""""""""""""""""""""""""""" let g:loaded_matchit = 1 """""""""""""""""""""""""""""""""""""""""""""" "calendar setting """""""""""""""""""""""""""""""""""""""""""""" let g:calendar_diary = "F:/diary" """""""""""""""""""""""""""""""""""""""""""""" " v模式下选择查找 """""""""""""""""""""""""""""""""""""""""""""" " From an idea by Michael Naumann function! VisualSearch(direction) range let l:saved_reg = @" execute "normal! vgvy" let l:pattern = escape(@", '\\/.*$^~[]') let l:pattern = substitute(l:pattern, "\n$", "", "") if a:direction == 'b' execute "normal ?" . l:pattern . "^M" else execute "normal /" . l:pattern . "^M" endif let @/ = l:pattern let @" = l:saved_reg endfunction "Basically you press * or # to search for the current selection !! Really useful vnoremap <silent> * :call VisualSearch('f')<CR> vnoremap <silent> # :call VisualSearch('b')<CR> au BufEnter *.txt setlocal ft=txt
转载于:https://www.cnblogs.com/ifys/archive/2010/08/13/1860619.html