2014-12-07 1 views
1

В настоящее время я использую vim-авиакомпанию в своем macvim, и я хочу показать статус expandtab независимо от того, установлен он или нет в статусной строке.Отобразить текущее состояние `expandtab` в statusline в macvim

Я могу узнать статус expandtab, выполнив следующую команду :set expandtab?. Из документации ВИМ-авиакомпании я обнаружил, что я могу использовать что-то вроде этого

let g:airline_section_b = '%{getcwd()}'

Я изменил его

let g:airline_section_b = '%{expandtab?}'

, но я получаю ошибку undefined variable: expandtab.

Может ли кто-то сказать, как я могу получить статус expandtab, а затем показать его в строке состояния. Благодарю.

ответ

3

:set делает не доступа к переменным, так что вы не можете использовать знак вопроса для запроса переменных.

Вы пытаетесь получить доступ к переменной переменной expandtab, которая не существует. Вы действительно хотите получить доступ к настройке параметра, и к ним обращаются с помощью префикса &.

Sou следует добавить:

let g:airline_section_b = '%{&expandtab}' 

Примечание, знак quesion не является необходимым и не имеет особого значения для VIML.

Для получения более подробной информации см. :h expr-option.

Update Это будет отображать только 1 (набор expandtab) или 0 (expandtab не установлен). Что должно работать, однако, что-то вроде этого:

let g:airline_section_b = '%{&expandtab?"et":"noet"}' 

Что будет отображать «и др», когда expandtab установлен или «ноет», когда expandtab не установлен. Это использует выражение <cond>?<true>:<false>, чтобы отобразить определенную строку, зависящую от значения состояния < cond>. Это объясняется в справочной системе ниже :h expr1

+0

Это работает. Но единственная проблема заключается в том, что он отображает '0' или' 1' вместо текста 'expandtab' или' noexpandtab' – Sudar

+0

Я обновлю вопрос для вас –

+0

Спасибо, что работает. Кстати, вы имели в виду, что вы обновите * ответ *? – Sudar

1

Параметры Vim доступны для живых переменных, если префикс &. Пример:

let g:airline_section_b = '%{&expandtab}' 

См :h :let-& для более