最全的VIM脚本命令.docx
《最全的VIM脚本命令.docx》由会员分享,可在线阅读,更多相关《最全的VIM脚本命令.docx(33页珍藏版)》请在冰豆网上搜索。
![最全的VIM脚本命令.docx](https://file1.bdocx.com/fileroot1/2022-11/25/47122a22-a1c0-4eec-b625-4e603e90a5f9/47122a22-a1c0-4eec-b625-4e603e90a5f91.gif)
最全的VIM脚本命令
"在用户主目录下建立.vimrc文件,复制本文内容到.vimrc中
"插件目录
"~/.vim
"~/.vim/doc帮助文件的目录
"~/.vim/plugin插件的目录
"~/.vim/syntax语法目录
"设定文件浏览器目录为当前目录
setbsdir=buffer
"设置编码
setenc=utf-8
"设置文件编码
setfenc=utf-8
"设置文件编码检测类型及支持格式
setfencs=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
"指定菜单语言
setlangmenu=zh_CN.UTF-8
"C/C++注释
setcomments=:
//
"修正自动C式样注释功能<2005/07/16>
setcomments=s1:
/*,mb:
*,ex0:
/
"保存文件格式
setfileformats=unix,dos
"显示行号
"setnumber
"去除vim的GUI版本中的toolbar
setguioptions-=T
"在输入括号时光标会短暂地跳到与之相匹配的括号处,不影响输入"
setshowmatch
"当vim进行编辑时,如果命令错误,会发出一个响声,该设置去掉响声
setvbt_vb=
"查询时非常方便,如要查找book单词,当输入到/b时,会自动找到第一
"个b开头的单词,当输入到/bo时,会自动找到第一个bo开头的单词,依
"次类推,进行查找时,使用此设置会快速找到答案,当你找要匹配的单词
"时,别忘记回车
setincsearch
"默认情况下,寻找匹配是高亮度显示的,该设置关闭高亮显示
setnohls
"修改一个文件后,自动进行备份,备份的文件名为原文件名加“~“后缀
"ifhas(“vms”)
"setnobackup"编辑过程中不备份
"else
"setbackup
"endif
"setnobackup"编辑过程中不备份
setbackup"编辑过程备份
setwritebackup
setbackupdir=~/tmp
"去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
setnocompatible
"检测文件的类型
filetypeon
"记录历史的行数"保存50个命令历史
sethistory=1000
"背景使用黑色
setbackground=dark
"总的打开文件记录
letMRU_Max_Entries=1000
"这样在vim中打开文件时,按tab键补齐文件名时它会忽略上述文件.
setsuffixes=.bak,~,.o,.h,.info,.swp,.aux,.bbl,.blg,.dvi,.lof,.log,.lot,.ps,.toc
setencoding=utf-8
setfileencodings=utf-8,gbk
setguifont=Luxi\Mono\9"设置字体,字体名称和字号
setbackspace=2"设置退格键可用
setwrap"自动换行
"setnowrap"不自动换行
setlinebreak"整词换行,单词作为一个整体换行
setwhichwrap=b,s,<,>,[,]"光标从行首和行末时可以跳到另一行去
"setlist"显示制表符
"setlistchars=tab:
>-,trail:
-"将制表符显示为'>---',将行尾空格显示为'-'
"setlistchars=tab:
.\,trail:
."将制表符显示为'.'
setautochdir"自动设置目录为正在编辑的文件所在的目录
"sethidden"没有保存的缓冲区可以自动被隐藏
setscrolloff=5"光标上下两侧最少保留的屏幕行数。
这使你工作时总有一些可见的上下文。
setshowcmd"在屏幕最后一行显示未完成的命令。
"setmouse=a"在终端中使用鼠标这样设置后,不能用鼠标右键的”复制“了,解决方法,在复制之前,先按住Shift键
setnoswapfile"不生成.swap的文件
syntaxenable"高亮语法
syntaxon"
colordarkblue
setcursorline
settabstop=4"设置tab键的宽度
setsofttabstop=4
setnoexpandtab
setshowmode
sethls
sethlsearch"高亮显示搜索结果
setgdefault"替换时所有的行内匹配都被替换,而不是只有第一个
setcin
setsm
setai
setupdatetime=100
"匹配括号高亮的时间(单位是十分之一秒)
setmatchtime=1
"搜索时不区分大小写
setignorecase
"自动完成设置禁止在插入模式移动的时候出现Complete提示
letg:
acp_mappingDriven=1
"导出html设置
lethtml_use_css=1
lethtml_number_lines=0
letuse_xhtml=1
"设置工作目录
function!
CHANGE_CURR_DIR()
let_dir=expand("%:
p:
h")
exec"cd"._dir
unlet_dir
endfunction
autocmdBufEnter*callCHANGE_CURR_DIR()
nmap:
move.+1
nmap:
move.-2
imap:
move.+1
imap:
move.-2
vmap:
move'>+1gv
vmap:
move'<-2gv
"--------------------------------------------------------------------------------
"
"鼠标滚动
"
"--------------------------------------------------------------------------------
"map[62~
"map!
[62~
"map[63~
"map!
[63~
"map[64~
"map!
[64~
"map[65~
"map!
[65~
"--------------------------------------------------------------------------------
"
"编程相关的设置
"
"--------------------------------------------------------------------------------
setcompleteopt=longest,menu"关掉智能补全时的预览窗口
filetypepluginindenton"加了这句才可以用智能补全
"settags=src/tags"设置tags文件的路径
synon"打开语法高亮
setsmartindent"智能对齐方式
setshiftwidth=4"换行时行间交错使用4个空格
setautoindent"自动对齐
setai!
"设置自动缩进
colorschemedefault"默认为白底黑字
colorschemeevening"载入色彩方案evening。
它会在'runtimepath'里搜索
"colors/{name}.vim",载入第一个找到的文件。
"--------------------------------------------------------------------------------
"
"代码折叠
"
"--------------------------------------------------------------------------------
setfoldmarker={{{,}}}"指定折叠标志
setfoldmarker={,}"指定折叠标志
setfoldmarker={{{,}}}"指定折叠标志
setfoldmarker={,}"指定折叠标志
syntaxregionfunctionFoldstart="\(^\({\|\S.*{\)$\n\)\@<=\_[^}]"end="\(^{.*\)\@
$\n\(^}\)\@="transparentfold
syntaxregioncommentFoldstart="/\*"end="\*/"transparentfoldkeepend
syntaxregioncommentFold2start="^\(^//.*$\n\)\@
//.*\(\n//\)\@=$"end="^\(^//.*$\n\)\@<=//.*\(\n//\)\@!
$"transparentfoldkeepend
setfoldmethod=marker"标志用于指定折叠。
setfoldmethod=syntax
"语法高亮项目指定折叠。
文件太大,打开会非常慢,因为要进行正则表达式搜索
setfoldlevel=100"不要自动折叠
setfoldopen-=search"不要打开折叠,当搜索进它里面时
setfoldopen-=undo"不要打开折叠,当做撤销进它里面时
setfoldcolumn=4"如果非零,指定宽度的列在窗口的一侧显示,指示折叠的打开和关闭。
最大值为12
"--------------------------------------------------------------------------------
"
"快速编辑.vimrc设置
"
"--------------------------------------------------------------------------------
"
"当.vimrc被修改时,自动生效
autocmd!
bufwritepost.vimrcsource~/.vimrc
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Fileformats
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Favoritefiletypes
setffs=unix,dos,mac
nmapfd:
seff=dos
nmapfu:
seff=unix
""""""""""""""""""""""""""""""
"Statusline
""""""""""""""""""""""""""""""
"Alwayshidethestatusline
setstatusline=[%F]%y%r%m%*%=[Line:
%l/%L,Column:
%c][%p%%]"状态栏的显示格式
setlaststatus=2"总是显示一个状态栏
setruler"总是显示光标的位置
function!
CurDir()
letcurdir=substitute(getcwd(),'/Users/amir/',"~/","g")
returncurdir
endfunction
"Formatthestatusline
setstatusline=\%F%m%r%h\%w\\CWD:
\%r%{CurDir()}%h\\\Line:
\%l/%L:
%c
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"使tags在当前找不到tags到上级目录去找
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
settags=tags;
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"General
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Forctags,thenitcanfindthe'tags'fileevennotincurrentdirectory"
settags=tags;/
"Settoautoreadwhenafileischangedfromtheoutside"
setautoread
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"文本操作
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"按"=",就可以利用外部命令indent美化我的c程序。
map=ggVG:
!
indent-nut-st-kr2>/dev/null
map:
bp
map:
bn
map:
bd
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"GeneralAbbrevs
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Myinformation
iabxdate=strftime("%d/%m/%y%H:
%M:
%S")
iabxnameAmirSalihefendic
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Editingmappingsetc.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"RemapVIM0
map0^
"Movealineoftextusingcontrol
nmapmz:
m+`z
nmapmz:
m-2`z
vmap:
m'>+`mzgv`yo`z
vmap:
m'<-2`>my`func!
DeleteTrailingWS()
exe"normalmz"
%s/\s\+$//ge
exe"normal`z"
endfunc
autocmdBufWrite*.py:
callDeleteTrailingWS()
setcompleteopt=menu
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Command-lineconfig
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
func!
Cwd()
letcwd=getcwd()
return"e".cwd
endfunc
func!
DeleteTillSlash()
letg:
cmd=getcmdline()
ifg:
cmd==g:
cmd_edited
endif
returng:
cmd_edited
endfunc
func!
CurrentFileDir(cmd)
returna:
cmd."".expand("%:
p:
h")."/"
endfunc
"Smartmappingsonthecommandline
cno$he~/
cno$de~/Desktop/
cno$je./
cno$qeDeleteTillSlash()
cno$ceeCurrentFileDir("e")
cno$tceCurrentFileDir("tabnew")
cno$thtabnew~/
cno$tdtabnew~/Desktop/
"Bashlike
cnoremap
cnoremap
cnoremap
"""""""""""""""""""""""""""""""""""""
"ColorsandFonts
"""""""""""""""""""""""""""""""""""""
"Enablesyntaxhighlight
syntaxenable
"""""""""""""""""""""""""""""""""""""
"VIMuserinterface
"""""""""""""""""""""""""""""""""""""
"Set7linestothecurorsawayfromtheborder-whenmovingvertical..
setso=7
"TurnonWiLdmenu"
setwildmenu
"Thecommandbaris2high"
setcmdheight=2
setbackspace=eol,start,indent
"不要闪烁
setnovisualbell
"Howmanytenthsofasecondtoblink"
setmat=2
"imediatelyshowthesearchresult"
setis
"Switchtocurrentdir
mapcd:
cd%:
p:
h
"""""""""""""""""""""""""""""""""""""
"Folding
"""""""""""""""""""""""""""""""""""""
"Enablefolding,Ifinditveryuseful
setnofen
setfdl=0
"""""""""""""""""""""""""""""""""""""
"Textoptions
"""""""""""""""""""""""""""""""""""""
setexpandtab
setambiwidth=double
setsmarttab
"SetTab=4spaces
setts=4
setlbr
settw=500
setselection=inclusive
""""""""""""""""""""""""""""""
"Indent
""""""""""""""""""""""""""""""
"Autoindent
setai
"Setautoindentwidth=4spaces"
setsw=4
"Smartindet"
setsi
"C-styleindenting"
setcindent"usage:
selectcodes,press'='key,thecodeswillautoindenting
"Encodingsettings
ifhas("multi_byte")
"Setfileencodingpriority
ifgetfsize(expand("%"))>0
setfileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1
else
setfileencodings=cp936,big5,euc-jp,euc-kr,latin1
endif
"CJKenvironmentdetectionandcorrespondingsetting
ifv:
lang=~"^zh_CN"
"Usecp936tosupportGBK,euc-cn==gb2312
setencoding=cp936
settermencoding=cp936
setfileencoding=cp936
elseifv:
lang=~"^zh_TW"
"cp950,big5oreuc-tw"
"Aretheyequaltoeachother?
"
setencoding=big5
settermencoding=big5
setfileencoding=big5
elseifv:
lang=~"^ko"
"Copiedfromsomeone'sdotfile,untested"
setencoding=euc-kr
settermencoding=euc-kr
setfileencoding=euc-kr
elseifv:
lang=~"^ja_JP"
"Copiedfromsomeone'sdotfile,unteste"
setencoding=euc-jp
settermencoding=euc-jp
setfileencoding=euc-jp
endif
"DetectUTF-8locale,andreplaceCJKsettingifneeded"
ifv:
lang=~"utf8$"||v:
lang=~"UTF-8$"
setencoding=utf-8
settermencoding=utf-8
setfileencoding=utf-8
endif
else
"echoerr"Sorry,thisversionof(g)vimwasnotcompiledwithmulti_byte"
endif