106 lines
3.1 KiB
VimL
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
|
|
|