以下是bash中的一个简单代码:
#!/bin/sh
str='{}\pear\pinapple{look at this}{look at that}\apple'
str=${str%'{look at this}'*}
echo $str
#######################'
#'
str=${str%{look at this*}
echo $str
#######################
#
str=${str#*{}
echo $str
###########################}
#
str='\'
echo $str
############################'
#
它可以在我的电脑中正常运行,结果如预期:
{}\pear\pinapple{look at this}
{}\pear\pinapple
}\pear\pinapple
\
然而,Vi中显示的代码的颜色很奇怪。正如FDinoff建议的那样,我使用命令
:let g:is_bash = 1 | set ft=sh
某些代码的颜色变得正常,而某些代码的颜色变差。
真正的原因是Vi无法区分真正的'{} \'等。
为清楚说明问题,我在图中列出:
1. what Vi shows without :let g:is_bash = 1 | set ft=sh;
(lines 4 and 19 weird)
2. what Vi shows with :let g:is_bash = 1 | set ft=sh;
(lines 9, 14 and 19 weird)
3. what Emacs shows.
(normal)
该图可在以下链接中找到:
答案 0 :(得分:0)
阅读:help sh.vim
。最有可能的问题是您没有为正确的shell使用语法突出显示。例如,如果你运行:let g:is_bash = 1 | set ft=sh
那么它看起来会更好。如果添加适当的shebang行(#!/bin/bash
),Vim应该会自动检测到这一点。
自动强制bash语法行添加
let g:is_bash = 1
到你的vimrc。
(但我不知道你是否想要bash语法高亮或其他一些shell类型)