В чем разница между set и: set?

17

Я смотрел на vim-разумный плагин Тима Поупа и заметил это в README ...

См. Источник для авторитетного списка функций. (Не волнуйтесь, это в основном :setзвонки.)

Когда я посмотрел на источник, :setзвонки такие ...

set autoindent

Там нет :до set.

Я почти уверен, что на самом деле тоже видел :setв примерах .vimrc.

В чем разница?

Какую форму я должен использовать в моем .vimrc?

Итан
источник

Ответы:

22

«Сценарий» выполняет только последовательность команд ex. «Команда ex» - это то, что вы вводите, когда используете :Vim. Так , например :wq, :set wrap, :e fileи т.д., все команды экс.

Не :является частью команды; это просто нажатие клавиши для запуска режима командной строки; вам не всегда нужно включать :, например, когда вы объединяете несколько команд, |вам не нужно повторять их :более одного раза. Например, :write | quitбудет работать нормально.

Для удобства, :может быть включен, хотя. Это помогает с копированием / вставкой и тому подобным, но это не обязательно. Это не важно На самом деле все ведущие :s просто игнорируются. :write, writeИ :::::::::writeвсе эквивалентны с точки зрения функциональности (хотя , очевидно , не с точки зрения здравого смысла).

Часто полезно включить :в документацию, чтобы уточнить, что это команда ex. Например, wможно обратиться либо к :wкоманде нормального режима, либо к wследующему слову.

Обратите внимание, что это относится ко всему . Управляющие структуры , такие , как ifи endifявляются также только бывшими командами; Вы можете напечатать что-то вроде этого:

:if 1
:echo 'one'
:endif

из командной строки Vim просто отлично; нет необходимости в «сценарии». Скрипты Vim очень «не магические» и «не специальные»; все, что вы можете сделать из командной строки ex, вы можете сделать в скрипте Vim, и наоборот.

Мартин Турной
источник
6

Нет никакой разницы. Если vim видит :команду before в вашем vimrc (или любом файле vimscript), он игнорирует ее. Также, как упоминалось выше, это не относится к setкоманде.

Обычно это :означает, что команда будет выполняться вами, а не помещаться в ваш vimrc (или другой файл vimscript) , но это обычно зависит от контекста. Лично я думаю, что гораздо лучше не ставить двоеточие перед командами в файлах vimscript, и это, похоже, то же самое делает большинство других людей.

Подробнее об этом смотрите :help script.

Вечнозеленое дерево
источник
:h scriptили :h vim-script-intro(эквивалент)
VanLaser