vim突出显示<<<<<红色的

时间:2016-01-18 11:40:10

标签: unix vim redhat ksh

我正在使用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

1 个答案:

答案 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