Я пытаюсь отобразить ветку git в моей строке состояния, и у меня есть такой код:
function! GitBranch()
let current_path = expand('%:p:h')
let cd = "cd " . current_path
let branch = system(cd . "&& git rev-parse --abbrev-ref HEAD 2>/dev/null | tr -d '\n'")
return strlen(branch) > 0 ? ' '. branch . ' ' : ''
endfunction
" Customize status line
set statusline=
set statusline+=%#Normal#
set statusline+=%=
set statusline+=%#CursorColumn#
set statusline+=%{GitBranch()}
set statusline+=%#Normal#
set statusline+=\
set statusline+=\%y
set statusline+=\ %p%%
set statusline+=\ %l:%c
set statusline+=\
Теперь он вызывает функцию GitBranch () каждый раз, когда я что-то вводю, что делает его довольно медленным,Поэтому я решил поместить имя ветви в переменную вместо того, чтобы каждый раз вызывать функцию.
let status_git = GitBranch()
...
...
set statusline+=%{status_git}
Теперь вопрос в том, что если я открою новую вкладку, переменная не изменится.Таким образом, все вкладки имеют одинаковое имя ветви.Можно ли как-нибудь это исправить?
Я знаю, что есть несколько хороших плагинов, таких как Vim-Airlines, которые могут сделать это отлично.Я просто хочу сделать это по-своему.