我有一个定义如下的对象:
let g:lightline = {
'component': {
'fugitive': '%{exists("*fugitive#statusline") ? "⎇ " . fugitive#statusline() : ""}'
},
}
fugitive#statusline()
的输出是 GIT(master)
,所以最后一个字符串最终以逗号⎇ ,GIT(master)
的形式出现在我的状态行中。
为什么有逗号?我们如何避免逗号?
我正在使用 lightline.vim 来自定义我的状态线,整个配置如下所示:
let g:lightline = {
'active': {
'left': [
[ 'mode', 'paste' ],
[ 'filename', 'readonly', 'modified' ],
[ 'fugitive', ],
]
},
'inactive': {
'left': [
[ 'filename', 'readonly', 'modified' ],
[ 'fugitive', ],
]
},
'component': {
'readonly': '%{&readonly?"x":""}',
'fugitive': '%{exists("*fugitive#statusline") ? "⎇ " . fugitive#statusline() . "" : ""}'
},
'component_visible_condition': {
'fugitive': '(exists("*fugitive#head") && ""!=fugitive#head())'
},
'separator': { 'left': '', 'right': '' },
'subseparator': { 'left': '|', 'right': '|' }
}
逃逸插件中的这段代码要么在前面加上逗号,要么将元素括在方括号中。这两种样式也由内置状态线元素提供。
您可以通过从逃逸调用的结果中仅删除子字符串 ( [1:]
( 来删除不需要的逗号:
'fugitive': '%{exists("*fugitive#statusline") ? "⎇ " . fugitive#statusline()[1:] : ""}'