如何防止VimL字符串连接中的逗号?

时间:2017-02-05 09:43:30

标签: vim vim-plugin neovim

我有一个像这样定义的对象:

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

答案 0 :(得分:0)

This code in the fugitive plugin或者以逗号为前缀,或者将元素括在方括号中。这两种样式也由内置的状态行元素提供。

您可以通过仅使用子句字符串([1:])来删除不需要的逗号:

'fugitive': '%{exists("*fugitive#statusline") ? "⎇ " . fugitive#statusline()[1:] : ""}'