Каков синтаксис сценария vim для проверки значения (логического) параметра? - PullRequest
2 голосов
/ 17 марта 2012

Я пытаюсь добавить условие для проверки моего файла vimrc, если установлена ​​опция number (номера строк). У меня есть: номер добавлен только с типом файла HTML,

:autocmd FileType html source $HOME/.vim/html_vimrc.vim

:if ('&number' == 0)  "IF number is off
: set spell           "turn on spell checker
:else                 "ELSE file type is HTML
:  set nospell        "turn spell checker off 
:endif

Я пробовал,

:if (&number == "number")

:if $number

Я пробовал с круглыми скобками, кавычками, без кавычек. Все мои тесты либо заклинание для всех или ни одного. Я читаю VIMDOCS об условных выражениях, но я не понимаю что-то правильно и не могу найти похожий пример.


Обновление: в дополнение к тестированию кода Майкла, приведенного ниже, я упростил тестирование следующим образом в vimrc:

:if exists("g:prog")
:  set number          "trying a different setting
:endif

И в FileType загруженный файл html_vimrc, который у меня есть,

"number                "turned this off 
:let g:prog=1

В этой ситуации контрольный пример test.html g: prog установлен, а «число» - нет. В случае test.vim g: prog не установлен, а «число» - нет. Это говорит о том, что есть некоторая фундаментальная логика в том, как VIM обрабатывает загруженные файлы vimrc, которые мне не хватает.

Ответы [ 2 ]

4 голосов
/ 17 марта 2012

Используйте &number для проверки логического значения без кавычек.

if (&number == 1)

Или проще:

if (&number)

Итак, вся ваша операция выглядит так:

if (&number == 0)  "IF number is off
 set spell           "turn on spell checker
else                 "ELSE file type is HTML
  set nospell        "turn spell checker off 
endif
1 голос
/ 18 марта 2012

Я упростил ситуацию до

:if exists("g:prog")
:  let g:ok_prog=1          "trying a different setting
:endif

Затем я использовал :let, чтобы проверить, доступна ли переменная для различных вариантов использования типов файлов.Здесь показана переменная из файла .vimrc, загруженная до автозагрузки g: var.(Если у кого-то есть ссылка на VIMDOCS, это было бы здорово).Все условные выражения не выполняются, потому что ни опция my: number, ни g: var не загружаются до сбоя условного выражения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...