swconfig/vim/gvim/_vimrc

106 lines
3.1 KiB
VimL

" Vim with all enhancements
source $VIMRUNTIME/vimrc_example.vim
let mapleader=" "
set number
syntax enable
filetype on
colorscheme morning
set guifont=Consolas:h14
set lines=40 columns=150
set shiftwidth=4
set expandtab
set cursorline
set autoindent
set scrolloff=5
set laststatus=2
set hlsearch
set noswapfile
set undofile
set undodir=$VIM\.undo
set history=1000
set encoding=utf-8
set termencoding=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf-8,chinese,cp936
set clipboard=unnamed
set relativenumber
:nnoremap <Leader>s :wa<CR>
:nnoremap <Leader>h :noh<CR>
:nnoremap <C-j> 4j
:nnoremap <C-k> 4k
:nnoremap <C-u> 4k
:nnoremap <C-d> 4j
" 状态栏介绍
" 设置状态行显示常用信息
" %F 完整文件路径名
" %m 当前缓冲被修改标记
" %m 当前缓冲只读标记
" %h 帮助缓冲标记
" %w 预览缓冲标记
" %Y 文件类型
" %b ASCII值
" %B 十六进制值
" %l 行数
" %v 列数
" %p 当前行数占总行数的的百分比
" %L 总行数
" %{...} 评估表达式的值,并用值代替
" %{"[fenc=".(&fenc==""?&enc:&fenc).((exists("+bomb") && &bomb)?"+":"")."]"} 显示文件编码
" %{&ff} 显示文件类型
" 设置 laststatus = 0 ,不显式状态行
" 设置 laststatus = 1 ,仅当窗口多于一个时,显示状态行
" 设置 laststatus = 2 ,总是显式状态行
" 一个示例:set statusline=%<%0.32F[%M]\ %r%10.(%l,%c%)\ %p%%\ %=%{strftime(\"%H:%M\ -\ %d/%m/20%y")}
" %< "超过最长部分显示为<
" %0.32F "最短0,最长32
" [%M] "内容发生修改后显示为+
" %r%10.(%l,%c%) “显示行数和列数,10让这个单元的内容和前面的内容保持10格字符的距离
" %= “对齐方向改变的分界点
" %- ”对齐方向改变为右对齐
set laststatus=2
set statusline=[%Y]\%{\"[\".(&fenc==\"\"?&enc:&fenc).((exists(\"+bomb\")\ &&\ &bomb)?\"+\":\"\").\"]\"}\[%{&ff}]\[%03.3b]\[%02.2B]\[%04l,%04v][%p%%]\[%L]\ %=%{strftime(\"%d/%m/%y\ -\ %H:%M\")}\ %=%F%m%r%h%w
" Use the internal diff if available.
" Otherwise use the special 'diffexpr' for Windows.
if &diffopt !~# 'internal'
set diffexpr=MyDiff()
endif
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 arg1 = substitute(arg1, '!', '\!', 'g')
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg2 = substitute(arg2, '!', '\!', 'g')
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let arg3 = substitute(arg3, '!', '\!', 'g')
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
if empty(&shellxquote)
let l:shxq_sav = ''
set shellxquote&
endif
let cmd = '"' . $VIMRUNTIME . '\diff"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
let cmd = substitute(cmd, '!', '\!', 'g')
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3
if exists('l:shxq_sav')
let &shellxquote=l:shxq_sav
endif
endfunction