vimrc
中有这个oneliner,但是它不起作用:if has("patch-7.4.710") | set listchars+=space:· else | set listchars+=trail:· | endif
VIM说:
E518: Unknown option: else
你能帮我吗?
#1 楼
您需要在|
之前放置另一个else
,否则vim会认为您的命令是set listchars+=space:· else
,而不是两个单独的命令。这就是为什么收到错误消息的原因:else
是命令set
的未知选项。正确的语法如下:
if has("patch-7.4.710") | set listchars+=space:· | else | set listchars+=trail:· | endif
评论
我正在努力将|放置在其他位置之前或之后的位置?现在,我现在都是:-D。非常感谢 :) !
–SebMa
17年9月11日在9:52
@SebMa:考虑一下如果vim是在多行代码上编写的,vim将如何解析您的代码:指令1 if has(“ patch-7.4.710”),指令2设置listchars + = space:·,指令3否则,指令4设置listchars + = trail:·,最后一条指令为endif。作为|用于分隔指令,将一个放在另一个之前然后放在一个后面是合理的:)
–statox♦
17年9月11日在9:58
只要知道一种语言就合乎逻辑。在C中,我们使用;分开指示。在C中,否则不是指令,否则将有一个;之后:)
–SebMa
17年9月11日在10:02
VimScript的语义比C @SebMa更接近于外壳脚本。
–马丁·图尔诺伊(Martin Tournoij)
17年9月11日上午10:31
@SebMa否,但是“(几乎)包括控制结构在内的所有内容都是命令”的语义与VimScript相似(与C有所不同)。
–马丁·图尔诺伊(Martin Tournoij)
17年9月11日在12:23