Программно получить список переменных - PullRequest
1 голос
/ 27 марта 2011

Можно ли получить список объявленных переменных с выражением VimL (он же VimScript)? Я хотел бы получить тот же набор значений, который будет представлен для команды, используя -complete=expression. Цель состоит в том, чтобы расширить этот список для использования в определенной пользователем функции завершения команды.

Ответы [ 2 ]

6 голосов
/ 27 марта 2011

Вы можете использовать g: в качестве словаря, который содержит все глобальные переменные, поэтому:

let globals = keys(g:)

даст вам все имена.То же относится и к другим областям: b:, s:, w: и т. Д. Полный список см. В :help internal-variables.

3 голосов
/ 27 марта 2011

Вы можете получить нечто подобное, используя ключи словарей g:, b:, t:, w: и v:, но остерегайтесь следующих фактов:

  1. Этому словарю нет эквивалента, если вы хотите заполнить варианты.
  2. Некоторые переменные, такие как count (но не g:count или l:count), b:changedtick и, возможно, другие, отсутствуют в этих словарях.
  3. Некоторые хакеры vim могут добавить ключ @@@ в словарь g:, но это не сделает выражение g:@@@ допустимым именем переменной (но добавление 000 произойдет). Хотя g:["@@@"] будет правильным выражением.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...