⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sh.vim

📁 MSYS在windows下模拟了一个类unix的终端
💻 VIM
📖 第 1 页 / 共 2 页
字号:
" Vim syntax file" Language:		shell (sh) Korn shell (ksh) bash (sh)" Maintainer:		Dr. Charles E. Campbell, Jr. <Charles.E.Campbell.1@gsfc.nasa.gov>" Previous Maintainer:	Lennart Schultz <Lennart.Schultz@ecmwf.int>" Last Change:	May 1, 2001" Version: 22"" Using the following VIM variables:" b:is_kornshell               if defined, enhance with kornshell syntax" b:is_bash                    if defined, enhance with bash syntax"   is_kornshell               if neither b:is_kornshell or b:is_bash is"                                 defined, then if is_kornshell is set"                                 b:is_kornshell is default"   is_bash                    if none of the previous three variables are"                                 defined, then if is_bash is set b:is_bash is default"" This file includes many ideas from 蓃ic Brunet (eric.brunet@ens.fr)" For version 5.x: Clear all syntax items" For version 6.x: Quit when a syntax file was already loadedif version < 600  syntax clearelseif exists("b:current_syntax")  finishendif" b:is_sh is set when "#! /bin/sh" is found;" However, it often is just a masquerade by bash or kornshell." So, when the user to set "is_bash" or "is_kornshell"," a b:is_sh is converted into b:is_bash/b:is_kornshell," respectively.if !exists("b:is_kornshell") && !exists("b:is_bash")  if exists("is_kornshell")    let b:is_kornshell= 1    if exists("b:is_sh")      unlet b:is_sh    endif  elseif exists("is_bash")    let b:is_bash= 1    if exists("b:is_sh")      unlet b:is_sh    endif  else    let b:is_sh= 1  endifendif" sh syntax is case sensitivesyn case match" This one is needed INSIDE a CommandSub, so that" `echo bla` be correctsyn cluster shEchoList	contains=shNumber,shArithmetic,shCommandSub,shSinglequote,shDeref,shSpecialVar,shSpecial,shOperator,shDoubleQuote,shCharClasssyn region shEcho matchgroup=shStatement start="\<echo\>"  skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoListsyn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList" This must be after the strings, so that bla \" be correctsyn region shEmbeddedEcho contained matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|`)]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=shNumber,shSinglequote,shDeref,shSpecialVar,shSpecial,shOperator,shDoubleQuote,shCharClass"Error Codessyn match   shDoError "\<done\>"syn match   shIfError "\<fi\>"syn match   shInError "\<in\>"syn match   shCaseError ";;"syn match   shEsacError "\<esac\>"syn match   shCurlyError "}"syn match   shParenError ")"if exists("b:is_kornshell") syn match     shDTestError "]]"endifsyn match     shTestError "]"" Options interceptorsyn match   shOption  "\s[\-+][a-zA-Z0-9]\+\>"ms=s+1syn match   shOption  "\s--\S\+"ms=s+1" error clusters:"================syn cluster shErrorList	contains=shCaseError,shCurlyError,shDTestError,shDerefError,shDoError,shEsacError,shIfError,shInError,shParenError,shTestErrorsyn cluster shErrorFuncList	contains=shDerefErrorsyn cluster shErrorLoopList	contains=shCaseError,shDTestError,shDerefError,shDoError,shInError,shParenError,shTestErrorsyn cluster shErrorCaseList	contains=shCaseError,shDerefError,shDTestError,shDoError,shInError,shParenError,shTestErrorsyn cluster shErrorColonList	contains=shDerefErrorsyn cluster shErrorNoneList	contains=shDerefError" clusters: contains=@... clusters"==================================syn cluster shCaseEsacList	contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shCommandSubsyn cluster shIdList	contains=shCommandSub,shWrapLineOperator,shIdWhiteSpace,shDeref,shSpecialsyn cluster shDblQuoteList	contains=shCommandSub,shDeref,shSpecial,shPosnParm" clusters: contains=ALLBUT,@... clusters"=========================================syn cluster shCaseList	contains=shCase,shCaseStart,shCaseBar,shDblBrace,shDerefOp,shDerefText,@shErrorCaseList,shDerefVar,shDerefOpError,shStringSpecial,shSkipInitWS,shIdWhiteSpace,shDerefTextError,shPattern,shSetIdentifiersyn cluster shColonList	contains=shCase,shCaseStart,shCaseBar,shDblBrace,shDerefOp,shDerefText,shFunction,shTestOpr,@shErrorColonList,shDerefVar,shDerefOpError,shStringSpecial,shSkipInitWS,shIdWhiteSpace,shDerefTextError,shPattern,shSetIdentifiersyn cluster shCommandSubList1	contains=shCase,shCaseStart,shCaseBar,shDblBrace,shCommandSub,shDerefOp,shDerefText,shEcho,shFunction,shTestOpr,@shErrorList,shDerefVar,shDerefOpError,shStringSpecial,shIdWhiteSpace,shDerefTextError,shPattern,shSetIdentifiersyn cluster shCommandSubList2	contains=shCase,shCaseStart,shCaseBar,shDblBrace,shDerefOp,shDerefText,shEcho,shFunction,shTestOpr,@shErrorList,shDerefVar,shDerefOpError,shStringSpecial,shIdWhiteSpace,shDerefTextError,shPattern,shSetIdentifiersyn cluster shLoopList	contains=@shErrorLoopList,shCase,shCaseStart,shInEsac,shCaseBar,shDerefOp,shDerefText,shDerefVar,shDerefOpError,shStringSpecial,shSkipInitWS,shIdWhiteSpace,shDerefTextError,shPattern,shSetIdentifiersyn cluster shExprList1	contains=shCase,shCaseStart,shCaseBar,shDblBrace,shDerefOp,shDerefText,shFunction,shSetList,@shErrorNoneList,shDerefVar,shDerefOpError,shStringSpecial,shSkipInitWS,shIdWhiteSpace,shDerefTextError,shPattern,shSetIdentifiersyn cluster shExprList2	contains=shCase,shCaseStart,shCaseBar,shDblBrace,shDerefOp,shDerefText,@shErrorNoneList,shDerefVar,shDerefOpError,shStringSpecial,shSkipInitWS,shIdWhiteSpace,shDerefTextError,shPattern,shSetIdentifiersyn cluster shSubShList	contains=shCase,shCaseStart,shCaseBar,shDblBrace,shDerefOp,shDerefText,shParenError,shDerefVar,shDerefOpError,shStringSpecial,shSkipInitWS,shDerefError,shIdWhiteSpace,shDerefTextError,shPattern,shSetIdentifiersyn cluster shTestList	contains=shCase,shCaseStart,shCaseBar,shDblBrace,shDTestError,shDerefError,shDerefOp,shDerefText,shExpr,shFunction,shSetList,shTestError,shDerefVar,shDerefOpError,shStringSpecial,shSkipInitWS,shIdWhiteSpace,shDerefTextError,shPattern,shSetIdentifiersyn cluster shFunctionList	contains=shCase,shCaseStart,shCaseBar,shDblBrace,@shErrorFuncList,shDerefOp,shDerefText,shFunction,shDerefVar,shDerefOpError,shStringSpecial,shSkipInitWS,shIdWhiteSpace,shDerefTextError,shPattern,shSetIdentifier" Tests"======syn region  shExpr transparent matchgroup=shOperator start="\[" skip=+\\\\\|\\$+ end="\]" contains=ALLBUT,@shTestListsyn region  shExpr transparent matchgroup=shStatement start="\<test\>" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=ALLBUT,@shExprList1if exists("b:is_kornshell") syn region  shDblBrace transparent matchgroup=shOperator start="\[\[" skip=+\\\\\|\\$+ end="\]\]" contains=ALLBUT,@shTestListendifsyn match   shTestOpr contained "[!=]\|-.\>\|-\(nt\|ot\|ef\|eq\|ne\|lt\|le\|gt\|ge\)\>"" do, ifsyn region shDo  transparent matchgroup=shConditional start="\<do\>" matchgroup=shConditional end="\<done\>" contains=ALLBUT,@shLoopListsyn region shIf  transparent matchgroup=shConditional start="\<if\>" matchgroup=shConditional end="\<fi\>"   contains=ALLBUT,@shLoopListsyn region shFor matchgroup=shStatement start="\<for\>" end="\<in\>" end="\<do\>"me=e-2	contains=ALLBUT,@shLoopList" casesyn region  shCaseEsac	matchgroup=shConditional start="\<case\>" matchgroup=shConditional end="\<esac\>" contains=@shCaseEsacListsyn keyword shCaseIn	contained skipwhite skipnl in			nextgroup=shCase,shCaseStart,shCaseBar,shCommentsyn region  shCase	contained skipwhite skipnl matchgroup=shConditional start="[^$()]\{-})"ms=s,hs=e  end=";;" end="esac"me=s-1 contains=ALLBUT,@shCaseList nextgroup=shCase,shCaseStart,shCaseBar,shCommentsyn match   shCaseStart	contained skipwhite skipnl "("		nextgroup=shCasesyn match   shCaseBar	contained "[^|)]\{-}|"hs=e			nextgroup=shCase,shCaseStart,shCaseBarsyn region shExpr  transparent matchgroup=shExprRegion start="{" end="}"		contains=ALLBUT,@shExprList2syn region shSubSh transparent matchgroup=shSubShRegion start="(" end=")"		contains=ALLBUT,@shSubShList" Misc"=====syn match   shOperator	"[!&;|]"syn match   shOperator	"\[\[[^:]\|]]"syn match   shCharClass	"\[:\(backspace\|escape\|return\|xdigit\|alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|tab\):\]"syn match   shOperator	"!\=="	skipwhite nextgroup=shPatternsyn match   shPattern	"\<\S\+"	contained contains=shSinglequote,shDoublequote,shDerefsyn match   shWrapLineOperator "\\$"syn region  shCommandSub   start="`" skip="\\`" end="`" contains=ALLBUT,@shCommandSubList1" $(..) is not supported by sh (Bourne shell).  However, apparently" some systems (HP?) have as their /bin/sh a (link to) Korn shell" (ie. Posix compliant shell).  /bin/ksh should work for those" systems too, however, so the following syntax will flag $(..) as" an Error under /bin/sh.  By consensus of vimdev'ers!if exists("b:is_kornshell") || exists("b:is_bash") syn region shCommandSub matchgroup=shCmdSubRegion start="\$(" end=")"  contains=ALLBUT,@shCommandSubList2 syn region shArithmetic matchgroup=shArithRegion start="\$((" end="))" contains=ALLBUT,@shCommandSubList2 syn match  shSkipInitWS contained	"^\s\+"else syn region shCommandSub matchgroup=Error start="$(" end=")" contains=ALLBUT,@shCommandSubList2endifif exists("b:is_bash") syn keyword bashSpecialVariables contained	BASH	HISTCONTROL	LANG	OPTERR	PWD syn keyword bashSpecialVariables contained	BASH_ENV	HISTFILE	LC_ALL	OPTIND	RANDOM syn keyword bashSpecialVariables contained	BASH_VERSINFO	HISTFILESIZE	LC_COLLATE	OSTYPE	REPLY syn keyword bashSpecialVariables contained	BASH_VERSION	HISTIGNORE	LC_MESSAGES	PATH	SECONDS syn keyword bashSpecialVariables contained	CDPATH	HISTSIZE	LINENO	PIPESTATUS	SHELLOPTS syn keyword bashSpecialVariables contained	DIRSTACK	HOME	MACHTYPE	PPID	SHLVL syn keyword bashSpecialVariables contained	EUID	HOSTFILE	MAIL	PROMPT_COMMAND	TIMEFORMAT syn keyword bashSpecialVariables contained	FCEDIT	HOSTNAME	MAILCHECK	PS1	TIMEOUT syn keyword bashSpecialVariables contained	FIGNORE	HOSTTYPE	MAILPATH	PS2	UID syn keyword bashSpecialVariables contained	GLOBIGNORE	IFS	OLDPWD	PS3	auto_resume syn keyword bashSpecialVariables contained	GROUPS	IGNOREEOF	OPTARG	PS4	histchars syn keyword bashSpecialVariables contained	HISTCMD	INPUTRC syn keyword bashStatement		chmod	fgrep	install	rm	sort syn keyword bashStatement		clear	find	less	rmdir	strip syn keyword bashStatement		du	gnufind	ls	rpm	tail syn keyword bashStatement		egrep	gnugrep	mkdir	sed	touch syn keyword bashStatement		expr	grep	mv	sleep	complete syn keyword bashAdminStatement	daemon	killproc	reload	start	stop syn keyword bashAdminStatement	killall	nice	restart	statusendifif exists("b:is_kornshell") syn keyword kshSpecialVariables contained	CDPATH	HISTFILE	MAILCHECK	PPID	RANDOM syn keyword kshSpecialVariables contained	COLUMNS	HISTSIZE	MAILPATH	PS1	REPLY syn keyword kshSpecialVariables contained	EDITOR	HOME	OLDPWD	PS2	SECONDS syn keyword kshSpecialVariables contained	ENV	IFS	OPTARG	PS3	SHELL syn keyword kshSpecialVariables contained	ERRNO	LINENO	OPTIND	PS4	TMOUT syn keyword kshSpecialVariables contained	FCEDIT	LINES	PATH	PWD	VISUAL syn keyword kshSpecialVariables contained	FPATH	MAIL syn keyword kshStatement		cat	expr	less	printenv	strip syn keyword kshStatement		chmod	fgrep	ls	rm	stty syn keyword kshStatement		clear	find	mkdir	rmdir	tail syn keyword kshStatement		cp	grep	mv	sed	touch syn keyword kshStatement		du	install	nice	sort	tput syn keyword kshStatement		egrep	killallendifsyn match   shSource	"^\.\s"syn match   shSource	"\s\.\s"syn region  shColon	start="^\s*:" end="$\|" end="#"me=e-1 contains=ALLBUT,@shColonList" Comments"=========syn keyword	shTodo	contained	TODO

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -