史上最强的Vim配置脚本
http://www.amix.dk/vim/vimrc.html#Fileformats
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
_
"
__ |
"
/
|
/
"
__ |
"
by Amix - http:
//
amix
.
dk
/
"
"
Maintainer: Amir Salihefendic
<
amix3k at gmail
.
com
>
"
Version: 2.7
"
Last Change:
12
/
10
/
06
00
:
09
:
21
"
"
Sections:
"
----------------------
"
General
"
Colors and Fonts
"
Fileformats
"
VIM userinterface
"
Statusline
"
Visual
"
Moving around and tabs
"
General Autocommands
"
Parenthesis
/
bracket expanding
"
General Abbrevs
"
Editing mappings etc
.
"
Command-line config
"
Buffer realted
"
Files and backups
"
Folding
"
Text options
"
Indent
"
Spell checking
"
Plugin configuration
"
Yank ring
"
File explorer
"
Minibuffer
"
Tag list
(
ctags
)
-
not
used
"
LaTeX Suite things
"
Filetype generic
"
Todo
"
VIM
"
HTML related
"
Ruby & PHP section
"
Python section
"
Cheetah section
"
Vim section
"
Java section
"
JavaScript section
"
C mappings
"
SML
"
Scheme bindings
"
Snippets
"
Python
"
javaScript
"
Cope
"
MISC
"
"
Tip:
"
If
you
find
anything that you can't understand than
do
this:
"
help keyword OR helpgrep keywords
"
Example:
"
Go into command-line mode and type helpgrep nocompatible, ie.
"
:helpgrep
nocompatible
"
then press <leader>c to see the results, or :botright cw
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
General
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Get out of VI's compatible
mode
..
set
nocompatible
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Sets how many lines of history VIM har to remember
set history=400
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Enable filetype plugin
filetype plugin
on
filetype indent
on
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Set to auto read when a file is changed from the outside
set autoread
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Have the mouse enabled all the
time
:
set
mouse
=
a
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Set mapleader
let mapleader =
"
,
"
let g:mapleader =
"
,
"
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Fast saving
nmap
<
leader
>
w
:w
!
<
cr
>
nmap
<
leader
>
f
:find
<
cr
>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Fast reloading of the .vimrc
map <leader>s :source ~/vim_local/vimrc<cr>
"
Fast editing of
.
vimrc
map
<
leader
>
e
:e
! ~
/
vim_local
/
vimrc
<
cr
>
"
When .vimrc is edited, reload it
autocmd! bufwritepost vimrc source ~/vim_local/vimrc
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Colors and Fonts
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Enable syntax hl
syntax enable
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Set
font to Monaco 10pt
if
MySys
()
==
"
mac
"
set
gfn
=
Bitstream
Vera
Sans
Mono
:h14
set
nomacatsui
set
termencoding
=
macroman
elseif MySys
()
==
"
linux
"
set
gfn
=
Monospace
11
endif
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
if
has
(
"
gui_running
"
)
set
guioptions-
=
T
let psc_style
=
'cool'
colorscheme ps_color
else
set
background
=
dark
colorscheme zellner
endif
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Some nice mapping to switch syntax (useful if one mixes different languages in one file)
map <leader>1 :set syntax=cheetah<cr>
map <leader>2 :set syntax=xhtml<cr>
map <leader>3 :set syntax=python<cr>
map <leader>4 :set ft=javascript<cr>
map <leader>$ :syntax sync fromstart<cr>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
autocmd BufEnter * :syntax sync fromstart
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Highlight current
if
has
(
"
gui_running
"
)
set
cursorline
hi cursorline guibg
=#
333333
hi CursorColumn guibg
=#
333333
endif
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Omni menu colors
hi Pmenu guibg=#333333
hi PmenuSel guibg=#555555 guifg=#ffffff
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Fileformats
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Favorite filetypes
set ffs=unix,dos,mac
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
nmap <leader>fd :se ff=dos<cr>
nmap <leader>fu :se ff=unix<cr>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
VIM userinterface
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Set 7 lines to the curors - when moving vertical..
set so=7
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Turn
on
WiLd menu
set
wildmenu
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Always show current position
set ruler
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
The commandbar is
2
high
set
cmdheight
=
2
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Show line number
set nu
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Do
not
redraw
,
when
running macros
..
lazyredraw
set
lz
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Change buffer - without saving
set hid
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Set
backspace
set
backspace
=
eol
,
start
,
indent
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Bbackspace and cursor keys wrap to
set whichwrap+=<,>,h,l
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Ignore case
when
searching
set
ignorecase
set
incsearch
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Set magic on
set magic
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
No sound
on
errors
.
set
noerrorbells
set
novisualbell
set
t_vb
=
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
show matching bracets
set showmatch
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
How many tenths of a second to blink
set
mat
=
2
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Highlight search things
set hlsearch
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
Statusline
""""""""""""""""""""""""""""""
"
Always hide the statusline
set laststatus=2
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
function! CurDir()
let curdir = substitute(getcwd(), '/Users/amir/',
"
~
/
"
,
"
g
"
)
return curdir
endfunction
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Format
the statusline
set
statusline
=
%F%m%r%h
%w
CWD:
%r%{CurDir
()
}%h
Line:
%l
/
%L:%c
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
Visual
""""""""""""""""""""""""""""""
"
From an idea by Michael Naumann
function! VisualSearch
(
direction
)
range
let l
:saved_reg
=
@
"
execute
"
normal! vgvy
"
let l:pattern = escape(@
"
,
'
//.
*
$
^~[]'
)
let l
:pattern
=
substitute
(
l
:pattern
,
"
$
"
,
""
,
""
)
if
a
:direction
==
'b'
execute
"
normal ?
"
.
l
:pattern
.
"
^M
"
else
execute
"
normal /
"
.
l
:pattern
.
"
^M
"
endif
let @
/
=
l
:pattern
let @
"
= l:saved_reg
endfunction
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Basically you press * or
#
to search
for
the current selection !! Really useful
vnoremap
<
silent
>
*
:call
VisualSearch
(
'f'
)<
CR
>
vnoremap
<
silent
>
#
:call
VisualSearch
(
'b'
)<
CR
>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Moving around and tabs
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Map space to
/
and c-space to ?
map
<
space
>
/
map
<
c-space
>
?
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Smart way to move btw. windows
map <C-j> <C-W>j
map <C-k> <C-W>k
map <C-h> <C-W>h
map <C-l> <C-W>l
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Actually
,
the tab does
not
switch
buffers
,
but my arrows
"
Bclose function ca be found in
"
Buffer related
"
section
map <leader>bd :Bclose<cr>
map <down> <leader>bd
"
Use
the arrows to something usefull
map
<
right
>
:bn
<
cr
>
map
<
left
>
:bp
<
cr
>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Tab configuration
map <leader>tn :tabnew %<cr>
map <leader>te :tabedit
map <leader>tc :tabclose<cr>
map <leader>tm :tabmove
try
set switchbuf=usetab
set stal=2
catch
endtry
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Moving fast to front
,
back and
2
sides
;)
imap
<
m-
$>
<
esc
>$
a
imap
<
m-
0
>
<
esc
>
0i
imap
<
D-
$>
<
esc
>$
a
imap
<
D-
0
>
<
esc
>
0i
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
General Autocommands
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Switch to current
dir
map
<
leader
>
cd
:cd
%
:p:h
<
cr
>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Parenthesis
/
bracket expanding
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
vnoremap
$
1
<
esc
>
`
>
a
)<
esc
>
`
<
i
(<
esc
>
"
)
vnoremap $2 <esc>`>a]<esc>`<i[<esc>
vnoremap $3 <esc>`>a}<esc>`<i{<esc>
vnoremap $$ <esc>`>a
"
<
esc
>
`
<
i
"
<esc>
vnoremap $q <esc>`>a'<esc>`<i'<esc>
vnoremap $w <esc>`>a
"
<
esc
>
`
<
i
"
<esc>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Map auto complete of
(,
"
, ', [
inoremap $1 ()<esc>:let leavechar=
"
)
"
<cr>i
inoremap $2 []<esc>:let leavechar=
"
]
"
<cr>i
inoremap $4 {<esc>o}<esc>:let leavechar=
"
}
"
<cr>O
inoremap $3 {}<esc>:let leavechar=
"
}
"
<cr>i
inoremap $q ''<esc>:let leavechar=
"
'
"
<cr>i
inoremap $w
""
<esc>:let leavechar='
"
'
<
cr
>
i
au BufNewFile
,
BufRead *
.(
vim
)
@! inoremap
"
""
<esc>:let leavechar='
"
'
<
cr
>
i
au BufNewFile
,
BufRead *
.(
txt
)
@! inoremap ' ''
<
esc
>
:let
leavechar
=
"
'
"
<
cr
>
i
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
imap
<
m-l
>
<
esc
>
:exec
"
normal f
"
.
leavechar
<
cr
>
a
imap
<
d-l
>
<
esc
>
:exec
"
normal f
"
.
leavechar
<
cr
>
a
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
General Abbrevs
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
My information
iab xdate
<
c-r
>=
strftime
(
"
%d/%m/%y %H:%M:%S
"
)<
cr
>
iab xname Amir Salihefendic
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Editing mappings etc
.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Remap VIM
0
map
0
^
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Move a line of text using control
nmap <M-j> mz:m+<cr>`z
nmap <M-k> mz:m-2<cr>`z
vmap <M-j> :m'>+<cr>`<my`>mzgv`yo`z
vmap <M-k> :m'<-2<cr>`>my`<mzgv`yo`z
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
if MySys() ==
"
mac
"
nmap <D-j> <M-j>
nmap <D-k> <M-k>
vmap <D-j> <M-j>
vmap <D-k> <M-k>
endif
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
func! DeleteTrailingWS()
exe
"
normal mz
"
%s/s+$//ge
exe
"
normal `z
"
endfunc
autocmd BufWrite *.py :call DeleteTrailingWS()
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
set completeopt=menu
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Command-line config
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
func! Cwd
()
let cwd
=
getcwd
()
return
"
e
"
.
cwd
endfunc
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
func! DeleteTillSlash
()
let g
:cmd
=
getcmdline
()
if
MySys
()
==
"
linux
"
|| MySys
()
==
"
mac
"
let g
:cmd_edited
=
substitute
(
g
:cmd
,
"
/(.*[/]/).*
"
,
"
/1
"
,
""
)
else
let g
:cmd_edited
=
substitute
(
g
:cmd
,
"
/(.*[//]/).*
"
,
"
/1
"
,
""
)
endif
if
g
:cmd
==
g
:cmd_edited
if
MySys
()
==
"
linux
"
|| MySys
()
==
"
mac
"
let g
:cmd_edited
=
substitute
(
g
:cmd
,
"
/(.*[/]/).*/
"
,
"
/1
"
,
""
)
else
let g
:cmd_edited
=
substitute
(
g
:cmd
,
"
/(.*[//]/).*[//]
"
,
"
/1
"
,
""
)
endif
endif
return
g
:cmd_edited
endfunc
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
func! CurrentFileDir
(
cmd
)
return
a
:cmd
.
"
"
.
expand
(
"
%:p:h
"
)
.
"
/
"
endfunc
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Smart mappings on the command line
cno $h e ~/
cno $d e ~/Desktop/
cno $j e ./
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
cno $q <C->eDeleteTillSlash()<cr>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
cno $c e <C->eCurrentFileDir(
"
e
"
)<cr>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
cno $tc <C->eCurrentFileDir(
"
tabnew
"
)<cr>
cno $th tabnew ~/
cno $td tabnew ~/Desktop/
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Bash like
cnoremap
<
C-A
>
<
Home
>
cnoremap
<
C-E
>
<
End
>
cnoremap
<
C-K
>
<
C-U
>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Buffer realted
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Fast open a buffer by search
for
a name
map
<
c-q
>
:sb
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Open a dummy buffer for paste
map <leader>q :e ~/buffer<cr>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Restore
cursor to file position in previous editing session
set
viminfo
=
'
10
,
"
100,:20,%,n~/.viminfo
au BufReadPost * if line(
"
'
""
)
>
0
|
if
line
(
"
'"
"
)
<=
line
(
"
$
"
)
|exe
(
"
norm '"
"
)
|
else
|exe
"
norm $
"
|endif|endif
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Buffer - reverse everything ... :)
map <F9> ggVGg?
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Don't close window
,
when
deleting a buffer
command
! Bclose
call
<
SID
>
BufcloseCloseIt
()
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
function!
<
SID
>
BufcloseCloseIt
()
let l
:currentBufNum
=
bufnr
(
"
%
"
)
let l
:alternateBufNum
=
bufnr
(
"
#
"
)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
if
buflisted
(
l
:alternateBufNum
)
buffer
#
else
bnext
endif
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
if
bufnr
(
"
%
"
)
==
l
:currentBufNum
new
endif
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
if
buflisted
(
l
:currentBufNum
)
execute
(
"
bdelete!
"
.
l
:currentBufNum
)
endif
endfunction
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Files
and backups
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Turn
backup
off
set
nobackup
set
nowb
set
noswapfile
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Folding
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Enable folding
,
I
find
it very useful
set
nofen
set
fdl
=
0
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Text options
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set expandtab
set shiftwidth=2
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
map <leader>t2 :set shiftwidth=2<cr>
map <leader>t4 :set shiftwidth=4<cr>
au FileType html,python,vim,javascript setl shiftwidth=2
au FileType html,python,vim,javascript setl tabstop=2
au FileType java setl shiftwidth=4
au FileType java setl tabstop=4
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
set smarttab
set lbr
set tw=500
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
Indent
""""""""""""""""""""""""""""""
"
Auto indent
set ai
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Smart indet
set
si
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
C-style indeting
set cindent
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Wrap lines
set
wrap
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Spell checking
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
map <leader>sn ]s
map <leader>sp [s
map <leader>sa zg
map <leader>s? z=
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Plugin configuration
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""
"
Vim Grep
""""""""""""""""""""""""""""""
let Grep_Skip_Dirs = 'RCS CVS SCCS .svn'
let Grep_Cygwin_Find = 1
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
Yank Ring
""""""""""""""""""""""""""""""
map
<
leader
>
y
:YRShow
<
cr
>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
File explorer
""""""""""""""""""""""""""""""
"
Split vertically
let g
:explVertical
=
1
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Window size
let g:explWinSize=35
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
let g:explSplitLeft=1
let g:explSplitBelow=1
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Hide some
files
let g
:explHideFiles
=
'^
.,.
*
.
class
$,.
*
.
swp
$,.
*
.
pyc
$,.
*
.
swo
$,.
DS_Store
$
'
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Hide the help thing..
let g:explDetailedHelp=0
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
Minibuffer
""""""""""""""""""""""""""""""
let g
:miniBufExplModSelTarget
=
1
let g
:miniBufExplorerMoreThanOne
=
2
let g
:miniBufExplModSelTarget
=
0
let g
:miniBufExplUseSingleClick
=
1
let g
:miniBufExplMapWindowNavVim
=
1
let g
:miniBufExplVSplit
=
25
let g
:miniBufExplSplitBelow
=
1
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
let g
:bufExplorerSortBy
=
"
name
"
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
autocmd BufRead
,
BufNew
:call
UMiniBufExplorer
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
Tag list (ctags) - not used
""""""""""""""""""""""""""""""
"
let Tlist_Ctags_Cmd
=
"
/sw/bin/ctags-exuberant
"
"
let Tlist_Sort_Type =
"
name
"
"
let Tlist_Show_Menu
=
1
"
map <leader>t :Tlist<cr>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
LaTeX Suite things
""""""""""""""""""""""""""""""
set
grepprg
=
grep
-nH
$
*
let g
:Tex_DefaultTargetFormat
=
"
pdf
"
let g
:Tex_ViewRule_pdf
=
'xpdf'
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Bindings
autocmd FileType tex map <silent><leader><space> :w!<cr> :silent! call Tex_RunLaTeX()<cr>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Auto complete some things
;)
autocmd FileType tex inoremap
$
i
indent
autocmd FileType tex inoremap
$
*
cdot
autocmd FileType tex inoremap
$
i
item
autocmd FileType tex inoremap
$
m
[
<
cr
>
]
<
esc
>
O
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Filetype generic
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Todo
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
au BufNewFile
,
BufRead *
.
todo so ~
/
vim_local
/
syntax
/
amido
.
vim
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
VIM
""""""""""""""""""""""""""""""
autocmd FileType vim map <buffer> <leader><space> :w!<cr>:source %<cr>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
HTML related
""""""""""""""""""""""""""""""
"
HTML entities - used by xml edit plugin
let xml_use_xhtml = 1
"
let xml_no_auto_nesting
=
1
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
To HTML
let html_use_css = 1
let html_number_lines = 0
let use_xhtml = 1
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
Ruby & PHP section
""""""""""""""""""""""""""""""
autocmd FileType ruby map
<
buffer
>
<
leader
><
space
>
:w
!
<
cr
>
:!ruby %
<
cr
>
autocmd FileType php compiler php
autocmd FileType php map
<
buffer
>
<
leader
><
space
>
<
leader
>
cd
:w
<
cr
>
:make
%
<
cr
>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
Python section
""""""""""""""""""""""""""""""
"
Run
the current buffer in python - ie
.
on
leader
+
space
au FileType python so ~
/
vim_local
/
syntax
/
python
.
vim
autocmd FileType python map
<
buffer
>
<
leader
><
space
>
:w
!
<
cr
>
:!python %
<
cr
>
autocmd FileType python so ~
/
vim_local
/
plugin
/
python_fold
.
vim
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Set some bindings up for 'compile' of python
autocmd FileType python set makeprg=python -c "import py_compile,sys; sys.stderr=sys.stdout; py_compile.compile(r'%')"
autocmd FileType python set efm=%C %.%#,%A File "%f"/, line %l%.%#,%Z%[%^ ]%/@=%m
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Python iMaps
au FileType python
set
cindent
au FileType python inoremap
<
buffer
>
$
r
return
au FileType python inoremap
<
buffer
>
$
s self
au FileType python inoremap
<
buffer
>
$
c
##<
cr
>#<
space
><
cr
>#<
esc
>
kla
au FileType python inoremap
<
buffer
>
$
i import
au FileType python inoremap
<
buffer
>
$
p
print
au FileType python inoremap
<
buffer
>
$
d
"""
<cr>
"""
<
esc
>
O
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Run in the Python interpreter
function! Python_Eval_VSplit() range
let src = tempname()
let dst = tempname()
execute
"
:
"
. a:firstline .
"
,
"
. a:lastline .
"
w
"
. src
execute
"
:!python
"
. src .
"
>
"
. dst
execute
"
:pedit
!
"
. dst
endfunction
au FileType python vmap <F7> :call Python_Eval_VSplit()<cr>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
Cheetah section
"""""""""""""""""""""""""""""""
autocmd FileType cheetah set ft=xml
autocmd FileType cheetah set syntax=cheetah
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""
"
Vim section
"""""""""""""""""""""""""""""""
autocmd FileType vim
set
nofen
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""
"
Java section
"""""""""""""""""""""""""""""""
au FileType java inoremap <buffer> <C-t> System.out.println();<esc>hi
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Java comments
autocmd FileType java source ~
/
vim_local
/
macros
/
jcommenter
.
vim
autocmd FileType java let b
:jcommenter_class_author
=
'Amir Salihefendic
(
amix@amix
.
dk
)
'
autocmd FileType java let b
:jcommenter_file_author
=
'Amir Salihefendic
(
amix@amix
.
dk
)
'
autocmd FileType java map
<
buffer
>
<
F2
>
:call
JCommentWriter
()<
cr
>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Abbr'z
autocmd FileType java inoremap <buffer> $pr private
autocmd FileType java inoremap <buffer> $r return
autocmd FileType java inoremap <buffer> $pu public
autocmd FileType java inoremap <buffer> $i import
autocmd FileType java inoremap <buffer> $b boolean
autocmd FileType java inoremap <buffer> $v void
autocmd FileType java inoremap <buffer> $s String
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Folding
function! JavaFold
()
setl foldmethod
=
syntax
setl foldlevelstart
=
1
syn region foldBraces
start
=/
{
/
end
=/
}
/
transparent fold keepend extend
syn match foldImports
/(
n
?import
.+;
n
)+/
transparent fold
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
function! FoldText
()
return
substitute
(
getline
(
v
:foldstart
),
'{
.
*'
,
'{
...
}'
,
''
)
endfunction
setl foldtext
=
FoldText
()
endfunction
au FileType java
call
JavaFold
()
au FileType java setl fen
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
au BufEnter *
.
sablecc
,
*
.
scc
set
ft
=
sablecc
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
JavaScript section
"""""""""""""""""""""""""""""""
au FileType javascript so ~
/
vim_local
/
syntax
/
javascript
.
vim
function! JavaScriptFold
()
setl foldmethod
=
syntax
setl foldlevelstart
=
1
syn region foldBraces
start
=/
{
/
end
=/
}
/
transparent fold keepend extend
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
function! FoldText
()
return
substitute
(
getline
(
v
:foldstart
),
'{
.
*'
,
'{
...
}'
,
''
)
endfunction
setl foldtext
=
FoldText
()
endfunction
au FileType javascript
call
JavaScriptFold
()
au FileType javascript setl fen
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
au FileType javascript imap
<
c-t
>
console
.
log
();<
esc
>
hi
au FileType javascript imap
<
c-a
>
alert
();<
esc
>
hi
au FileType javascript setl nocindent
au FileType javascript inoremap
<
buffer
>
$
r
return
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
au FileType javascript inoremap
<
buffer
>
$
d
//<
cr
>//<
cr
>//<
esc
>
ka
<
space
>
au FileType javascript inoremap
<
buffer
>
$
c
/
**
<
cr
><
space
><
cr
>
**
/<
esc
>
ka
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
HTML
"""""""""""""""""""""""""""""""
au FileType html
,
cheetah
set
ft
=
xml
au FileType html
,
cheetah
set
syntax
=
html
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
C mappings
"""""""""""""""""""""""""""""""
autocmd FileType c map
<
buffer
>
<
leader
><
space
>
:w
<
cr
>
:!gcc %
<
cr
>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""
"
SML
"""""""""""""""""""""""""""""""
autocmd FileType sml map <silent> <buffer> <leader><space> <leader>cd:w<cr>:!sml %<cr>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
Scheme bidings
""""""""""""""""""""""""""""""
autocmd BufNewFile
,
BufRead *
.
scm map
<
buffer
>
<
leader
><
space
>
<
leader
>
cd
:w
<
cr
>
:!petite %
<
cr
>
autocmd BufNewFile
,
BufRead *
.
scm inoremap
<
buffer
>
<
C-t
>
(
pretty-
print
)<
esc
>
i
autocmd BufNewFile
,
BufRead *
.
scm vnoremap
<
C-t
>
<
esc
>
`
>
a
)<
esc
>
`
<
i
(
pretty-
print
<
esc
>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
SVN section
"""""""""""""""""""""""""""""""
map
<
F8
>
:new
<
CR
>
:read
!svn diff
<
CR
>
:set
syntax
=
diff buftype
=
nofile
<
CR
>
gg
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
""""""""""""""""""""""""""""""
"
Snippets
"""""""""""""""""""""""""""""""
"
You can use <c-j> to goto the next <++> - it is pretty smart ;)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""
"
Python
"""""""""""""""""""""""""""""""
autocmd FileType python inorea
<
buffer
>
cfun
<
c-r
>=
IMAP_PutTextWithMovement
(
"
def <++>(<++>): <++> return <++>
"
)<
cr
>
autocmd FileType python inorea
<
buffer
>
cclass
<
c-r
>=
IMAP_PutTextWithMovement
(
"
class <++>: <++>
"
)<
cr
>
autocmd FileType python inorea
<
buffer
>
cfor
<
c-r
>=
IMAP_PutTextWithMovement
(
"
for <++> in <++>: <++>
"
)<
cr
>
autocmd FileType python inorea
<
buffer
>
cif
<
c-r
>=
IMAP_PutTextWithMovement
(
"
if <++>: <++>
"
)<
cr
>
autocmd FileType python inorea
<
buffer
>
cifelse
<
c-r
>=
IMAP_PutTextWithMovement
(
"
if <++>: <++> else: <++>
"
)<
cr
>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""
"
JavaScript
"""""""""""""""""""""""""""""""
autocmd FileType cheetah,html,javascript inorea <buffer> cfun <c-r>=IMAP_PutTextWithMovement(
"
function
<++>(<++>)
{
n
<++>;
nreturn
<++>;
n}
"
)<cr>
autocmd filetype cheetah,html,javascript inorea <buffer> cfor <c-r>=IMAP_PutTextWithMovement(
"
for
(<++>;
<++>;
<++>)
{
n
<++>;
n}
"
)<cr>
autocmd FileType cheetah,html,javascript inorea <buffer> cif <c-r>=IMAP_PutTextWithMovement(
"
if
(<++>)
{
n
<++>;
n}
"
)<cr>
autocmd FileType cheetah,html,javascript inorea <buffer> cifelse <c-r>=IMAP_PutTextWithMovement(
"
if
(<++>)
{
n
<++>;
n}
nelse {
n
<++>;
n}
"
)<cr>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""
"
HTML
"""""""""""""""""""""""""""""""
autocmd FileType cheetah
,
html inorea
<
buffer
>
cahref
<
c-r
>=
IMAP_PutTextWithMovement
(
'
<
a href
=
"
<++>
"
><++></
a
>
'
)<
cr
>
autocmd FileType cheetah
,
html inorea
<
buffer
>
cbold
<
c-r
>=
IMAP_PutTextWithMovement
(
'
<
b
><++></
b
>
'
)<
cr
>
autocmd FileType cheetah
,
html inorea
<
buffer
>
cimg
<
c-r
>=
IMAP_PutTextWithMovement
(
'
<
img src
=
"
<++>
"
alt
=
"
<++>
"
/>
'
)<
cr
>
autocmd FileType cheetah
,
html inorea
<
buffer
>
cpara
<
c-r
>=
IMAP_PutTextWithMovement
(
'
<
p
><++></
p
>
'
)<
cr
>
autocmd FileType cheetah
,
html inorea
<
buffer
>
ctag
<
c-r
>=
IMAP_PutTextWithMovement
(
'
<<++>><++></<++>>
'
)<
cr
>
autocmd FileType cheetah
,
html inorea
<
buffer
>
ctag1
<
c-r
>=
IMAP_PutTextWithMovement
(
"
<<++>><cr><++><cr></<++>>
"
)<
cr
>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""
"
Java
"""""""""""""""""""""""""""""""
autocmd FileType java inorea <buffer> cfun <c-r>=IMAP_PutTextWithMovement(
"
public
<++>
<++>(<++>)
{
n
<++>;
nreturn
<++>;
n}
"
)<cr>
autocmd FileType java inorea <buffer> cfunpr <c-r>=IMAP_PutTextWithMovement(
"
private
<++>
<++>(<++>)
{
n
<++>;
nreturn
<++>;
n}
"
)<cr>
autocmd FileType java inorea <buffer> cfor <c-r>=IMAP_PutTextWithMovement(
"
for
(<++>;
<++>;
<++>)
{
n
<++>;
n}
"
)<cr>
autocmd FileType java inorea <buffer> cif <c-r>=IMAP_PutTextWithMovement(
"
if
(<++>)
{
n
<++>;
n}
"
)<cr>
autocmd FileType java inorea <buffer> cifelse <c-r>=IMAP_PutTextWithMovement(
"
if
(<++>)
{
n
<++>;
n}
nelse {
n
<++>;
n}
"
)<cr>
autocmd FileType java inorea <buffer> cclass <c-r>=IMAP_PutTextWithMovement(
"
class
<++>
<++>
{
n
<++>
n}
"
)<cr>
autocmd FileType java inorea <buffer> cmain <c-r>=IMAP_PutTextWithMovement(
"
public static void main
(
String[] argv
)
{
n
<++>
n}
"
)<cr>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Presse c-q insted of space
(
or other key
)
to complete the snippet
imap
<
C-q
>
<
C-]
>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Cope
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
For
Cope
map
<
silent
>
<
leader
><
cr
>
:noh
<
cr
>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Orginal for all
map <leader>n :cn<cr>
map <leader>p :cp<cr>
map <leader>c :botright cw 10<cr>
map <c-u> <c-l><c-j>:q<cr>:botright cw 10<cr>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
MISC
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"
Remove the Windows ^M
noremap <Leader>m mmHmt:%s/<C-V><cr>//ge<cr>'tzt'm
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Paste toggle -
when
pasting something in
,
don't indent
.
set
pastetoggle
=<
F3
>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Remove indenting on empty lines
map <F2> :%s/s*$//g<cr>:noh<cr>''
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
Super paste
inoremap
<
C-v
>
<
esc
>
:set
paste
<
cr
>
mui
<
C-R
>+<
esc
>
mv'uV'v
=
:set
nopaste
<
cr
>
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)
"
A function that inserts links & anchors on a TOhtml export.
"
Notice:
"
Syntax used is:
"
Link
"
Anchor
function! SmartTOHtml()
TOhtml
try
%s/"s+*> (.+)</
"
<
a href
=
"
#
"
style
=
"
color: cyan
"
>
1
</
a
></
g
%s
/
"
;(
-
|
s
)+
*>
;
(.+)</
"
<a href=
"
#
2
"
style=
"
color: cyan
;
"
></a></g
%s/"s+=> (.+)</
"
<
a name
=
"
"
style
=
"
color: #fff
"
>
1
</
a
></
g
catch
endtry
exe
"
:write!
"
exe
"
:bd
"
endfunction
![史上最强的Vim配置脚本 史上最强的Vim配置脚本](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pbWdzLzUvMS8wLzIvMTYvNjgxMDM1NWMyZjc4YzEyZTkxYjc5OTdhOGU4YzU4M2EuanBl.jpe?w=700&webp=1)