set nocompatible " 设置编码 let &termencoding=&encoding set fileencodings=ucs-bom,utf-8,cp936 set encoding=utf-8 language messages zh_CN.utf-8 "文件编码问题,+快捷键+保存 :nn <C-u> :set fileencoding=utf-8<CR>:w!<CR> :nn <C-g> :set fileencoding=cp936<CR>:w!<CR> "最近打开历史 map <M-;> <ESC>:MRU<CR> ":nn <M-;> <ESC>:MRU<CR> imap <M-;> <ESC>:MRU<CR> "colo molokai colo peachpuff "切换主题 "colorscheme torte "(global-set-key [M-q] 'kill-this-buffer) :nn <M-b> :colorscheme torte<CR> :nn <M-t> :colorscheme default<CR> :nn <M-g> :colorscheme peachpuff<CR> :nn <M-5> :colorscheme molokai<CR> map <M-c><M-b> :ColorSchemeExplorer <cr> map <M-.> :NERDTree<CR><M-`> imap <M-.> <ESC>:NERDTree<CR><M-`> "字体 "set guifont=Courier_New:h13 set guifont=Bitstream_Vera_Sans_Mono:h12 "set guifont=Consolas:h13 map <M-1> :set guifont=*<CR> "map <M-2> :set guifont=monaco:h14<CR> "map <M-6> :set guifont=monaco:h11<CR> "map <M-7> :set guifont=monaco:h12<CR>:colorscheme peachpuff<CR> "map <M-8> :set guifont=Consolas:h13<CR> map <M-8> :set guifont=Bitstream_Vera_Sans_Mono:h12<CR> map <M-7> :set guifont=Bitstream_Vera_Sans_Mono:h13<CR> map <M-9> :set guifont=Courier_New:h13<CR> "map <M-0> :set guifont=Courier_New:h14<CR> "光标 set gcr=n-i-v:ver20-blinkon0 set backspace=2 " 设置退格键可用 set autoindent " 自动对齐 set ai! " 设置自动缩进 set smartindent " 智能自动缩进 "set shiftwidth=4 " 换行时行间交错使用4空格 set cindent shiftwidth=4 " 自动缩进4空格 set nu! " 显示行号 set mouse=a " 启用鼠标 " 右下角显示光标位置的状态行 set ruler set incsearch " 开启实时搜索功能 set hlsearch " 开启高亮显示结果 set ic "忽略大小写 "set nowrapscan " 搜索到文件两端时不重新搜索 set wrap set nocompatible " 关闭兼容模式 set vb t_vb= " 关闭提示音 set hidden " 允许在有未保存的修改时切换缓冲区 set autochdir " 设定文件浏览器目录为当前目录 set foldmethod=syntax " 选择代码折叠类型 set foldlevel=100 " 禁止自动折叠 " 开启状态栏信息 "map <C-l> :set laststatus=2<CR> "set laststatus=2 "set cmdheight=2 " 命令行的高度,默认为1,这里设为2 set tabstop=4 " 设置Tab键的宽度 [等同的空格个数] "提示 imap <M-/> <C-p> "java 单行注释 map <M-p> <ESC>0i//<ESC> map <M-o> <ESC>0xxi <ESC> "设置缓存目录 "set directory=c:/TEMP_vim "set backupdir=c:/TEMP_vim "设置无缓存 set nobackup set nowritebackup set noswapfile "高亮 syntax enable " 打开语法高亮 syntax on " 开启文件类型侦测 filetype plugin on " 针对不同的文件类型加载对应的插件 filetype plugin indent on " 启用自动补全 filetype indent on " 针对不同的文件类型采用不同的缩进格式 "Toggle Menu and Toolbar set guioptions-=m " 隐藏菜单栏 set guioptions-=T " 隐藏工具栏 "shift+F2显示和关闭菜单栏和工具栏 map <silent> <S-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") au GUIEnter * simalt ~x " 窗口启动时自动最大化 winpos 200 100 " 指定窗口出现的位置,坐标原点在屏幕左上角 set lines=31 columns=88 " 指定窗口大小,lines为高度,columns为宽度 set showtabline=2 " 显示Tab栏 set guitablabel=%t "标签只显示名称" set tabpagemax=20 set guioptions-=L " 隐藏左侧滚动条 " set guioptions-=r " 隐藏右侧滚动条 set guioptions-=b " 隐藏底部滚动条 endif "取消高亮 :nn <F6> :nohlsearch<CR> map <C-h> <C-w>h map <C-l> <C-w>l map <C-k> k map <C-j> j :imap <C-h> <ESC><C-w>h :imap <C-l> <ESC><C-w>l :imap <C-k> <ESC>k :imap <C-j> <ESC>j "正常模式下 tab切换和关闭 :nn <M-n> :tabnew<CR> :nn <M-h> :tabfirst<CR> :nn <M-l> :tablast<CR> :nn <M-k> :tabnext<CR> :nn <M-j> :tabpre<CR> :nn <M-w> :q<CR> :nn <M-q> :q!<CR> "map <M-.> :tabnew .<CR><M-`> "imap <M-.> <ESC>:tabnew .<CR><M-`> "插入模式下 tab切换和关闭 :imap <F6> <ESC>:nohlsearch<CR> :imap <M-n> <ESC>:tabnew<CR> :imap <M-h> <ESC>:tabfirst<CR> :imap <M-h> <ESC>:tabfirst<CR> :imap <M-l> <ESC>:tablast<CR> :imap <M-k> <ESC>:tabnext<CR> :imap <M-j> <ESC>:tabpre<CR> :imap <M-w> <ESC>:q<CR> :imap <M-q> <ESC> :q!<CR> "翻页 "下翻 map <M-4> <C-f> imap <M-4> <ESC><C-f> map <M-,> <C-f> imap <M-,> <ESC><C-f> "上翻 map <M-3> <C-b> imap <M-3> <ESC><C-b> map <M-i> <C-b> imap <M-i> <ESC><C-b> "正常情况下全部选中 nmap <C-a> ggvG$ "选中模式下复制到系统剪贴板 vmap <C-c> "+y vmap <M-c> "+y "从系统剪贴板粘贴 nmap <C-v> "+p nmap <M-v> "+p "保存 map <M-s> :w<CR> map <M-a> :wa<CR> imap <M-s> <ESC>:w<CR>l imap <M-a> <ESC>:wa<CR> map <M-Space> <ESC>:w<CR> imap <M-Space> <ESC>:w<CR>l "失去焦点自动保存 "au FocusLost * :wa "au FocusLost * silent! up "得到焦点自动保存 "au FocusGained * :wa "au FocusGained * silent! w "au WinEnter * :wa "au WinLeave * :wa "au TabEnter * :wa "au TabLeave * :wa " 读文件时自动设定当前目录为刚读入文件所在的目录 autocmd BufReadPost * cd %:p:h "当文件在外部被修改时自动重新载入 if exists("&autoread") set autoread endif "设置与vim相关目录位置 if has("win32") let $VIMFILES = $VIM.'/vimfiles' let $V = $VIM.'/_vimrc' else let $VIMFILES = $HOME.'/.vim' let $V = $HOME.'/.vimrc' endif "恢复上次阅读现场,上次读到哪了 autocmd BufWinLeave * if expand('%') != '' && &buftype == '' | mkview | endif autocmd BufRead * if expand('%') != '' && &buftype == '' | silent loadview | syntax on | endif " 重启后撤销历史可用 persistent undo set undofile set undodir=$VIMFILES/\_undodir set undolevels=1000 "maximum number of changes that can be undone "通过cmd运行本文件,适用于bat,com文件 map <F11> :!start %<CR> "启用cmd,并跳转到当前文件所在目录 map <M-F11> :!start<CR> "编辑 imap <S-CR> <ESC>o map <S-CR> <ESC>o "设置行号 map <S-F3> :set nu!<CR> map <M-`> :set nu!<CR> " ======= VimWiki ======= " " 设置编码 let g:vimwiki_w32_dir_enc = 'utf-8' " 使用鼠标映射 let g:vimwiki_use_mouse = 1 " 不要将驼峰式词组作为 Wiki 词条 let g:vimwiki_camel_case = 0 " 声明可以在wiki里面使用的HTML标签 let g:vimwiki_valid_html_tags='b,i,s,u,sub,sup,kbd,br,hr,div,del,code,red,center,left,right,h2,h4,h5,h6,pre,script,style' let g:vimwiki_list = [{ \ 'path': 'G:/vimwiki/path/wiki', \ 'path_html': 'G:/vimwiki/path/html/', \ 'html_header': 'G:/vimwiki/public/template/header.htm', \ 'html_footer': 'G:/vimwiki/public/template/footer.htm', \ 'diary_link_count': 5, \ 'nested_syntaxes': {'Clang': 'c', 'C++': 'cpp', 'Lisp': 'lisp', 'Ruby': 'ruby', 'SQL': 'sql', 'Bash': 'sh', 'Vim': 'vim', 'Make': 'make', 'CMake': 'cmake', 'JS': 'javascript', 'CSS': 'css', 'HTML': 'html', 'XML': 'xml'},}, \ { \ 'path': 'G:/vimwiki/path1/wiki', \ 'path_html': 'G:/vimwiki/path1/html/', \ 'html_header': 'G:/vimwiki/public/template/header.htm', \ 'html_footer': 'G:/vimwiki/public/template/footer.htm', \ 'diary_link_count': 5, \ 'nested_syntaxes': {'Clang': 'c', 'C++': 'cpp', 'Lisp': 'lisp', 'Ruby': 'ruby', 'SQL': 'sql', 'Bash': 'sh', 'Vim': 'vim', 'Make': 'make', 'CMake': 'cmake', 'JS': 'javascript', 'CSS': 'css', 'HTML': 'html', 'XML': 'xml'},}, \{ 'path': 'G:/vimwiki/path2/wiki'}] "vimwiki转换 map <S-F4> :VimwikiAll2HTML<CR> map <F4> :Vimwiki2HTML<CR> map <M-F8> \w\t map <M-x> \w\t map <M-F2> \wr map <M-F2> \wr map <F2> <ESC>:Renamer<CR> imap <F2> <ESC>:Renamer<CR> map <M-e> <ESC>:E<CR><M-`> imap <M-e> <ESC>:E<CR><M-`> "让taglist找到ctags let Tlist_Ctags_Cmd="D:/win_tool/editor/Vim/ctags58/ctags" let Tlist_Show_Menu = 1 "ctags set set tags=tags; " :Tlist 调用TagList let Tlist_Show_One_File=1 " 只显示当前文件的tags let Tlist_Exit_OnlyWindow=1 " 如果Taglist窗口是最后一个窗口则退出Vim let Tlist_Use_Right_Window=0 " 在右侧窗口中显示 let Tlist_File_Fold_Auto_Close=1 " 自动折叠 map <F7> :Tlist<CR> "生成一个tags文件 nmap <F9> <ESC>:!ctags -R *<CR> " Don't close window, when deleting a buffer command! Bclose call <SID>BufcloseCloseIt() function! <SID>BufcloseCloseIt() let l:currentBufNum = bufnr("%") let l:alternateBufNum = bufnr("#") if buflisted(l:alternateBufNum) buffer # else bnext endif if bufnr("%") == l:currentBufNum new endif if buflisted(l:currentBufNum) execute("bdelete! ".l:currentBufNum) endif endfunction " Remove the Windows ^M - when the encodings gets messed up " 去掉 ,并自动换行 noremap <M-F6> mmHmt:%s/<C-V><cr>/\r/ge<cr>'tzt'm "比较文件 nnoremap <C-F2> :vert diffsplit " 高亮显示普通txt文件(需要txt.vim脚本) au BufRead,BufNewFile * setfiletype txt
引用的博客:
丘迟的维基世界