由于双尖括号,Vim禁用语法高亮

时间:2015-07-01 18:03:22

标签: bash shell unix vim

我试图在我的shell脚本中使用这个例子

#!/bin/sh
HOST='ftp.users.qwest.net'
USER='yourid'
PASSWD='yourpw'
FILE='file.txt'

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
put $FILE
quit
END_SCRIPT
#### My code
#
#

但由于<<END_SCRIPT,vim没有语法突出显示该行以外的任何内容。我正在使用red hat linux 5 代码段http://www.stratigery.com/scripting.ftp.html

的来源 编辑:可能我的问题不明确。 Eveyone评论说vim无法突出heredocs。但是在heredoc之后我对代码更加关注。我应该提到即使在heredoc结束后代码也不会突出显示。 弄清楚这是一个问题,因为END_SCRIPT应该从行的开头开始(中间没有空格)

2 个答案:

答案 0 :(得分:3)

<<END_SCRIPT后面的行到行开头的下一个END_SCRIPT实例的区域是一个heredoc,它基本上是一个多行字符串文字。 vim强调它是这样的,因为一个heredoc可以诚实地只包含任意数据,并且没有好的方法让vim知道如何处理它开箱即用。

答案 1 :(得分:0)

我已经编辑了我的问题,提到我是如何解决这个问题的。但在此提及它作为与格式一致的答案。

heredoc没有结束,因为我在行的开头和&#34; END_SCRIPT&#34;之间有空格。