我正在使用VIm在RedHat上处理KSH spcript。 "<<<"之后的一切在下面的循环中用红色突出显示而不是通常的颜色。
while read line; do
#echo $line # TEST ONLY
read linetype lettertype f3 group f4 <<< "${line}"
if [[ $linetype == "let" ]]; then
group_arr["$group"]=1
fi
done < "/production/control/pref_file.ini"
这是关于通过一个非常长的脚本的方式的四分之一,所以如果可能的话我真的不希望有2000行红色!我该如何解决?查看this或许它无法识别&#34;&lt;&lt;&lt;&#;&#34;行的结尾。有没有办法强迫它?
谢谢,
GER
答案 0 :(得分:1)
shell脚本的$VIMRUNTIME/syntax/sh.vim
语法脚本可以理解不同的shell方言;在您的情况下,它认为<<<
是不受支持的功能。以下是相关摘录:
" Here Strings: {{{1
" =============
" available for: bash; ksh (really should be ksh93 only) but not if its a posix
if exists("b:is_bash") || (exists("b:is_kornshell") && !exists("g:is_posix"))
syn match shRedir "<<<" skipwhite nextgroup=shCmdParenRegion
endif
要避免这种情况,:let b:is_kornshell = 1
并重新初始化语法突出显示(例如,通过:setf sh
),或者,如果您通常编辑Kornshell脚本,请通过添加
let g:is_kornshell = 1
进入~/.vimrc
。