【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  :set fileencoding=utf-8:w!
:nn  :set fileencoding=cp936:w!
 
" 显示最近打开文件历史
map  :MRU
imap  :MRU
 
" 设置默认主题
colo molokai
 
" 切换主题
:nn  :colorscheme torte
:nn  :colorscheme default
:nn  :colorscheme peachpuff
:nn  :colorscheme molokai
map  :ColorSchemeExplorer 
 
" 显示NERDTree树目录
map  :NERDTree
imap  :NERDTree
 
" 设置字体
set guifont=Consolas:h13
map  :set guifont=*
map  :set guifont=Consolas:h12
map  :set guifont=Consolas:h13
map  :set guifont=Courier_New:h13
 
" 设置光标,宽度,是否闪烁
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  :set laststatus=2
"set laststatus=2
"set cmdheight=2              " 命令行的高度,默认为1,这里设为2
set tabstop=4                " 设置Tab键的宽度        [等同的空格个数]
 
" 启动的时候不显示那个援助索马里儿童的提示
"set shortmess=atI
 
" 设置代码提示
imap   
  
" java单行注释
map  0i// 
map  0xxi  
 
" 设置缓存目录
"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   :if &guioptions =~# 'T' 
        \set guioptions-=T 
        \set guioptions-=m 
    \else 
        \set guioptions+=T 
        \set guioptions+=m 
    \endif
 
"窗口设置
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  :nohlsearch
" Frame之间的切换
map  h
map  l
map  k
map  j
:imap  h
:imap  l
:imap  k
:imap  j
" 正常模式下 tab切换和关闭
:nn  :tabnew
:nn  :tabfirst
:nn  :tablast
:nn  :tabnext
:nn  :tabpre
:nn  :q
:nn  :q!
 
" 插入模式下 tab切换和关闭
:imap  :nohlsearch
:imap  :tabnew
:imap  :tabfirst
:imap  :tabfirst
:imap  :tablast
:imap  :tabnext
:imap  :tabpre
:imap  :q
:imap   :q!
 
" 翻页
" 下翻
map   
imap   
map   
imap   
" 上翻
map  
imap  
map  
imap  
 

" 正常情况下全部选中
nmap  ggvG$
 
" 选中模式下复制到系统剪贴板
vmap  "+y
vmap  "+y
" 从系统剪贴板粘贴
nmap  "+p
nmap  "+p
 
" 保存文件
map  :w
map  :wa
imap  :wl
imap  :wa
map  :w
imap  :wl
 
" 失去焦点自动保存
"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  :!start % 
" 启用cmd,并跳转到当前文件所在目录
map  :!start

 
"设置行号
map  :set nu!
map  :set nu!
 
" 当出现乱码,去掉^M,并自动换行
noremap  mmHmt:%s//\r/ge'tzt'm 
 
" 比较文件  
nnoremap  :vert diffsplit 
 
" 高亮显示普通txt文件(需要txt.vim脚本)
au BufRead,BufNewFile *  setfiletype txt




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


你可能感兴趣的:(Tool)