【Tool】我的Gvim配置

" 关闭兼容模式
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>
imap <M-;> <ESC>:MRU<CR>
 
" 设置默认主题
colo molokai
 
" 切换主题
: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>
 
" 显示NERDTree树目录
map <M-.> :NERDTree<CR><M-`>
imap <M-.> <ESC>:NERDTree<CR><M-`>
 
" 设置字体
set guifont=Consolas:h13
map <M-1> :set guifont=*<CR>
map <M-8> :set guifont=Consolas:h12<CR>
map <M-7> :set guifont=Consolas:h13<CR>
map <M-9> :set guifont=Courier_New:h13<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 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键的宽度        [等同的空格个数]
 
" 启动的时候不显示那个援助索马里儿童的提示
"set shortmess=atI
 
" 设置代码提示
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
 
" 与windows共享剪贴板
set clipboard+=unnamed
 
syntax enable                " 打开语法高亮
syntax on                    " 开启文件类型侦测
filetype plugin on           " 针对不同的文件类型加载对应的插件
filetype plugin indent on    " 启用自动补全
filetype indent on           " 针对不同的文件类型采用不同的缩进格式
 
"shift+F2显示和关闭菜单栏和工具栏
"Toggle Menu and Toolbar
set guioptions-=m     " 隐藏菜单栏
set guioptions-=T      " 隐藏工具栏
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>
" Frame之间的切换
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>
 
" 插入模式下 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>

 
"设置行号
map <S-F3> :set nu!<CR>
map <M-`> :set nu!<CR>
 
" 当出现乱码,去掉^M,并自动换行
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




【Tool】我的Gvim配置_第1张图片


你可能感兴趣的:(【Tool】我的Gvim配置)