Справочник по VIM

Опции D-F

Опции: A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,R,S,T,U,V,W

‘debug’

строка (по умолчанию: «»)
глобальная опция
Vi не имеет такой возможности.

Если значение этой опции равно «msg», то сообщения об ошибках, которые бы в противном случае опускались, будут выводиться на экран. Это полезно при отладке значений опций ‘foldexpr’ и ‘indentexpr’.

‘define’ ‘def’

строка (по умолчанию: «^\s*#\s*define»)
глобальная или местная по отношению к буферу опция |глобальные-местные|
Vi не имеет такой возможности.

Значение опции указывает на шаблон, который должен быть использован для поиска определений макросов. В качестве шаблона используется обычный шаблон, такой же как и в команде «/». Значение этой опции используется при выполнении таких команд, как «[i» и «[d», см. также |поиск_включений|. После обнаружения соответствия определённое имя распознаётся в соответствии со значением опции ‘isident’:

{соответствие 'define'}{символы, не входящие в имя}{имя определения}{символ, не входящий в имя}

В разделе |опции-обратная_косая| описывается, как использовать символ обратной косой черты для включения пробела или обратной косой.

Значение по умолчанию подходит для работы с текстом программ на языке C. Для C++ может быть полезно также включить объявления констант:

^\(#\s*define\|[a-z]*\s*const\s*[a-z]*\)

При использовании команды «:set» необходимо удваивать символы обратной косой черты!

‘delcombine’ ‘deco’

переключатель (по умолчанию: выключено)
глобальная опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+multi_byte|.

Если эта опция включена при редактировании текста в Unicode, то кнопка стирания символа слева от позиции курсора и команда «x» Обычного режима удаляют каждый символ внутри составного символа по отдельности. В отключенном состоянии, что является значением по умолчанию, символы удаляются полностью со всеми составляющими сразу.

Замечание: при включённой опции ‘delcombine’ команда «xx» может работать отлично от команды «2x»!

Эта опция полезна при работе с текстом на арабском, иврите и других языках, где используются составные символы над основными символами, в тех случаях, когда вам требуется удалить только составной символ.

‘dictionary’ ‘dict’

строка (по умолчанию: «»)
глобальная или местная по отношению к буферу опция |глобальные-местные|
Vi не имеет такой возможности.

Значением опции является список имён файлов, разделённых запятыми, которые используются для поиска слов в командах дополнения ключевых слов |i_CTRL-X_CTRL-K|. В каждом файле должен содержаться список слов, либо по одному слову на строке, либо несколько слов в строке, разделённых каким-либо несловарным символом (предпочтительнее использовать пробел). Максимальная длина строки в файле должна быть не более 510 байтов.

Для включения запятой в имя файла её следует предварять символом обратной косой черты. Пробелы после запятых игнорируются, в противном случае пробелы включаются в имя файла. Подробнее об использовании символа обратной косой черты смотрите в разделе |опции-обратная_косая|.

Где можно взять списки слов?

  • В системе FreeBSD имеется файл «/usr/share/dict/words».
  • В архиве Simtel смотрите каталог «msdos/linguist».
  • В коллекции GNU см. «miscfiles».

При добавлении или исключении имён файлов лучше использовать команды |:set+=| и |:set-=|, что позволяет избежать проблем в том случае, если в новой версии будет использовано иное значение по умолчанию. Символы обратной кавычки не могут быть использованы в значении этой опции по соображениям безопасности.

‘diff’

переключатель (по умолчанию: выключено)
местная по отношению к окну опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+diff|.

Опция присоединяет текущее окно к группе окон, в которых отображаются различия между файлами. См. |vimdiff|.

‘diffexpr’ ‘dex’

строка (по умолчанию: «»)
глобальная опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+diff|.

Опция содержит выражение, которое используется для получения файла различий в стиле ed между двумя версиями файла. См. также |различия-diffexpr|.

Значение этой опции не может быть изменено из |режимной_строки| или в |песочнице| по соображениям безопасности.

‘diffopt’ ‘dip’

строка (по умолчанию: «filler»)
глобальная опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+diff|.

Опция содержит настройки для режима просмотра различий между файлами. Её значение может содержать перечисленные ниже элементы, ни один из которых не является обязательным. Элементы должны быть разделены запятыми.

fillerПоказывать строки заполнения для синхронизации содержимого окна с другим окном, в котором имеются дополнительные строки. Этот элемент наиболее полезен, когда окна расположены рядом и включена опция ‘scrollbind’.
context:{n}Использовать контекст {n} строк между изменением и складкой, которая содержит неизменённые строки. Если этот элемент не задан, то используется контекст 6 строк. См. |складки-diff|.
icaseИгнорировать изменения регистра символов в тексте. «A» и «a» считаются одним и тем же символом. Если значение опции ‘diffexpr’ является пустой строкой, то включение этого элемента приводит к добавлению ключа «-i».
iwhiteИгнорировать изменения в количестве пробелов. Если значение опции ‘diffexpr’ является пустой строкой, то включение этого элемента приводит к добавлению ключа «-b». Обратитесь к документации по команде «diff», чтобы понять что именно делает этот ключ. Указание данного ключа должно приводить к игнорированию пробелов на хвосте строки, но не предваряющих строку пробелов.

Примеры:

 :set diffopt=filler,context:4
:set diffopt=
:set diffopt=filler

‘digraph’ ‘dg’

переключатель (по умолчанию: выключено)
глобальная опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+digraphs|.

Опция включает возможность ввода диграфов в режиме Вставки при помощи последовательности {симв1} <BS> {симв2}. См. |диграфы|.

ЗАМЕЧАНИЕ: эта опция отключается при включении опции ‘compatible’.

‘directory’ ‘dir’

строка (по умолчанию на Amiga: «.,t:», на MS-DOS и Win32: «.,c:\tmp,c:\temp» в Unix: «.,~/tmp,/var/tmp,/tmp»)
глобальная опция

Опция содержит список каталогов для своп-файлов, разделённых запятыми.

  • Своп-файл создаётся в первом каталоге в списке, где это возможно.
  • Пустое значение опции указывает, что своп-файл не используется (при этом восстановление в случае сбоя становится невозможным!).
  • Каталог «.» указывает, что своп-файл помещается в том же каталоге, что и редактируемый файл. В Unix имя файла предваряется точкой, чтобы он не выводился по команде показа содержимого каталога. В MS-Windows устанавливается «скрытый» атрибут, а имя предваряется точкой в том случае, если это возможно.
  • Каталог, начинающийся с символов «./» (или «.\» в MS-DOS и т.п.), указывает на размещение своп-файла относительно редактируемого файла. Предваряющая имя каталога точка «.» заменяется в этом случае на путь к редактируемому файлу.
  • В Unix и Win32, если имя каталога заканчивается двойным разделителем пути, то имя своп-файла создаётся из имени редактируемого файла с заменой всех путевых разделителей на символ ‘%’, что позволяет обеспечить уникальность имени своп-файла в каталоге.
  • Пробелы после запятых игнорируются, но все остальные пробелы считаются частью имени каталога. Чтобы задать имя каталога, которое начинается с пробела, предваряйте его символом обратной косой черты.
  • Чтобы включить в состав имени каталога запятую, её необходимо предварять обратной косой чертой.
  • Имя каталога может заканчиваться на ‘:’ или ‘/’.
  • На место переменных окружения подставляется их значение |подстановка_переменных_окружения|.
  • Следует использовать символ ‘\’ с осторожностью: перед пробелом следует указывать одну обратную косую, а для получения самой обратной косой она должна вводиться дважды (подробности см. в разделе |опции-обратная_косая|). Например:

    :set dir=c:\\tmp,\ каталог\\,с\\,запятыми,\\\ каталог\ с\ пробелами
    
  • Для обратной совместимости с Vim версии 3.0 символ ‘>’ в начале опции удаляется.

Рекомендуется использовать «.» в качестве первого элемента списка. В этом случае открытие одного и того же файла для редактирования дважды приводит к выводу предупреждения. Использование «/tmp» в Unix не рекомендуется, т.к. при перезагрузке вы можете потерять своп-файл. Во многих случаях содержимое «/var/tmp» не очищается при перезагрузке и является более предпочтительным значением. Однако, этот каталог может содержать большое количество файлов среди которых легко потерять своп-файл. Именно поэтому прежде всего проверяется каталог «tmp» в вашем домашнем каталоге.

При добавлении или исключении имён файлов лучше использовать команды |:set+=| и |:set-=|, что позволяет избежать проблем в том случае, если в новой версии будет использовано иное значение по умолчанию. Значение этой опции не может быть изменено из |режимной_строки| или в |песочнице| по соображениям безопасности.

Vi: временный файл по умолчанию помещается в каталог «/tmp».

‘display’ ‘dy’

строка (по умолчанию: «»)
глобальная опция
Vi не имеет такой возможности.

Опция изменяет способ отображения текста. Её значением является разделённый запятыми список флагов:

lastlineЭтот флаг указывает, что в окне должно отображаться максимально возможное количество символов последней строки. Если флаг не присутствует в значении опции, то последняя строка текста, которая не умещается в окне, заменяется строками, в начале которых выводится символ «@».
uhexВместо вывода ^C и ~C на месте непечатных символов отображается шестнадцатеричное значение в форме <xx>.

‘eadirection’ ‘ead’

строка (по умолчанию: «both»)
глобальная опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+vertsplit|.

Опция задаёт режим применения опции ‘equalalways’:

verпо вертикали, ширина окон не изменяется
horпо горизонтали, высота окон не изменяется
bothизменяется и ширина, и высота окон

‘edcompatible’ ‘ed’

переключатель (по умолчанию: выключено)
глобальная опция

Во включённом состоянии опция заставляет флаги ‘g’ и ‘c’ команды «:substitute» вести себя как переключатели. Подробнее об этом см. в разделе |сложные_изменения|. См. также справку по опции ‘gdefault’. Включение этой опции не рекомендуется!

‘encoding’ ‘enc’

строка (по умолчанию: «latin1» или значение переменной окружения $LANG)
глобальная опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+multi_byte|.

Опция задаёт кодировку символов, которая используется в Vim. Эта кодировка применяется к тексту в буферах, регистрах, строках в выражениях, к тексту, который сохраняется в файле viminfo, и т.д. Иными словами, она задаёт набор символов, с которыми может работать Vim. Список возможных значений этой опции приводится в разделе |кодировки-имена|.

ЗАМЕЧАНИЕ: Изменение этой опции не приводит к изменению кодировки существующего в Vim текста. Мультибайтный текст при изменении значения этой опции может быть повреждён. Обычно эта опция должна оставаться без изменений, либо задаваться при запуске Vim. См. также |мультибайт|.

ЗАМЕЧАНИЕ: В GTK+ 2 крайне рекомендуется устанавливать значение опции ‘encoding’ равным «utf-8». Несмотря на то, что в Vim предприняты все возможные усилия для того, чтобы обеспечить нормальную работу с различными значениями опции ‘encoding’, «utf-8» является естественным выбором для этой платформы и позволяет избежать лишней нагрузки по перекодированию текста. «utf-8» не является значением кодировки по умолчанию только потому, что в различных консольных версиях и версиях с графическим интерфейсом такой выбор мог бы привести к неожиданному поведению, а также для того, чтобы предотвратить изменение кодировки вновь создаваемых файлов без ведома пользователя (в том случае, если значением опции ‘fileencodings’ является пустая строка).

Кодировка текста для отдельных файлов может отличаться от значения опции ‘encoding’. В этом случае кодировка задаётся значением опции ‘fileencoding’. Преобразование кодировок выполняется при помощи iconv() или согласно значению опции ‘charconvert’.

В обычных условиях значение опции ‘encoding’ соответствует значению текущей локали системы. Если Vim способен распознавать настройки окружения, то это значение будет выставлено по умолчанию. Если значение ‘encoding’ не соответствует значению текущей локали, то для преобразования набранного и отображаемого текста следует правильно настроить значение опции ‘termencoding’. См. |кодировки-таблица|.

При изменении значения этой опции создаётся автокомандное событие |EncodingChanged|, которое позволяет правильно настроить необходимые шрифты.

Значение этой опции, если оно задано, преобразуется в нижний регистр символов, поэтому допустимо также использование символов в верхнем регистре. Символы подчёркивания преобразуются в символы ‘-‘. Если название кодировки распознаётся редактором, то оно преобразуется к стандартному имени для этой кодировки. Так, «Latin-1» становится «latin1», «ISO_88592» становится «iso-8859-2», а «utf8» становится «utf-8».

Замечание: если кодировка не может быть определена, то используется «latin1». Такая настройка нормально работает только при редактировании файлов в той же самой кодировке! Если фактическая кодировка символов не «latin1», то вам следует убедиться, что значения опций ‘fileencoding’ и ‘fileencodings’ являются пустыми строками. При необходимости выполнения преобразований переключайтесь на использование utf-8.

При использовании «unicode», «ucs-2» или «ucs-4» Vim использует для внутренних операций utf-8. Это незаметно при редактировании файлов, но имеет значение, когда записывается |файл_viminfo|. Кроме того, Vim предполагает, что терминал также использует utf-8. Поэтому, установка значения опции ‘encoding’ равным одному из вышеуказанных значений вместо utf-8 имеет смысл только для работы с файлами при пустом значении опции ‘fileencoding’.

Если значение опции ‘encoding’ соответствует кодировке Unicode, а опция ‘fileencodings’ не настроена, то значение по умолчанию для опции ‘fileencodings’ изменяется.

‘endofline’ ‘eol’

переключатель (по умолчанию: включено)
местная по отношению к буферу опция
Vi не имеет такой возможности.

Если при записи файла данная опция выключена, а опция ‘binary’ включена, то символ <EOL> в последней строке файла добавляться не будет. Эта опция автоматически включается в начале редактирования нового файла, если файл не имеет символа <EOL> в последней строке. В противном случае опция автоматически выключается. В большинстве случаев изменять значение этой опции нет никакой необходимости. Если опция ‘binary’ выключена, то значение этой опции не используется при записи файла, а если опция ‘binary’ включена, то опция используется для сохранения информации о наличии символа <EOL> в последней строке файла, чтобы при записи файла эта информация была корректно восстановлена. Однако, вы можете при желании изменить значение этой опции вручную.

‘equalalways’ ‘ea’

переключатель (по умолчанию: включено)
глобальная опция
Vi не имеет такой возможности.

Если эта опция включена, то после разделения или закрытия окна все окна автоматически приобретают одинаковый размер; в противном случае при разделении окна текущее окно уменьшается в размере и размер остальных окон остаётся без изменений, а при закрытии окна дополнительные строки отдаются окну, которое располагается после данного окна (в соответствии со значениями опций ‘splitbelow’ и ‘splitright’).

При совместном использовании окон, разделённых по горизонтали и по вертикали, вычисляется минимальный размер окна. В этом случае некоторые окна могут иметь и больший размер, если для этого имеется свободное пространство. Опция ‘eadirection’ задаёт направление, в котором происходит изменение размера. Изменения высоты окна можно избежать при помощи соответствующей настройки опции ‘winfixheight’.

‘equalprg’ ‘ep’

строка (по умолчанию: «»)
глобальная или местная по отношению к буферу опция  |глобальные-местные|
Vi не имеет такой возможности.

Опция задаёт внешнюю программу, которая применяется при работе команды «=». Если значением опции является пустая строка, то применяется встроенный механизм форматирования (‘lisp’, ‘cindent’ или ‘indentexpr’).

При обработке значения опции выполняется подстановка переменных окружения, см. |подстановка_переменных_окружения|. Об использовании пробелов и символов обратной косой черты см. в разделе |опции-обратная_косая|.

Эта опция не может быть изменена из |режимной_строки| или в |песочнице| по соображениям безопасности.

‘errorbells’ ‘eb’

переключатель (по умолчанию: выключено)
глобальная опция

Опция управляет выдачей сигнала (с использованием системного динамика или при помощи моргания экрана) при появлении сообщений об ошибках. Эта опция влияет только на сообщения об ошибках; независимо от её значения сигнал будет выдаваться в ситуациях, когда ошибка не сопровождается выводом сообщения (например, при нажатии <Esc> в Обычном режиме). О настройке режима выдачи сигнала (при помощи звука, моргания экрана или полное отключение сигнала) см. в справке по опции ‘visualbell’.

‘errorfile’ ‘ef’

строка (по умолчанию на Amiga:   «AztecC.Err», на других платформах: «errors.err»)
глобальная опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+quickfix|.

Опция задаёт имя файла ошибок для режима быстрого исправления (см. |:cf|).

При использовании ключа командной строки «-q» значение опции ‘errorfile’ устанавливается равным следующему за ключом аргументу.

См. также |-q|.

Эта опция НЕ используется при работе с командой «:make», для этого существует отдельная опция ‘makeef’. При обработке значения опции выполняется подстановка переменных окружения, см. |подстановка_переменных_окружения|. Об использовании пробелов и символов обратной косой черты см. в разделе |опции-обратная_косая|.

Эта опция не может быть изменена из |режимной_строки| или в |песочнице| по соображениям безопасности.

‘errorformat’ ‘efm’

строка (значение по умолчанию очень длинное)
глобальная или местная по отношению к буферу опция |глобальные-местные|
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+quickfix|.

Описание формата строки в файле ошибок в стиле scanf (см. |формат_ошибок|).

‘esckeys’ ‘ek’

переключатель (по умолчанию в режиме Vim: включено,  в режиме совместимости с Vi: выключено)
глобальная опция
Vi не имеет такой возможности.

Если эта опция включена, то функциональные клавиши, начинающиеся с символа <Esc> распознаются в режиме Вставки. Если эта опция выключена, то функциональные клавиши и кнопки управления курсором не могут быть использованы в режиме Вставки, если они начинаются с символа <Esc>. При этом одиночный символ <Esc> распознаётся немедленно, а не после задержки в одну секунду. Вместо выключения этой опции можно также использовать изменение значений опций ‘timeoutlen’ и ‘ttimeoutlen’. Обратите внимание, что даже если опция ‘esckeys’ выключена, то организация привязок возможна, хотя кнопки управления курсором по умолчанию работать не будут.

ЗАМЕЧАНИЕ: значение опции устанавливается равным принятому по умолчанию в режиме совместимости с Vi при включении опции ‘compatible’ и равным принятому по умолчанию в режиме Vim при отключении опции ‘compatible’.

‘eventignore’ ‘ei’

строка (по умолчанию: «»)
глобальная опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+autocmd|.

Значением опции являются имена автокомандных событий, которые должны игнорироваться.

Если значением опции является строка «all», то будут игнорироваться все автокомандные события и автокоманды выполняться не будут. В противном случае значение опции представляет собой список имён, разделённых запятыми. Например:

:set ei=WinEnter,WinLeave

‘expandtab’ ‘et’

переключатель (по умолчанию: выключено)
местная по отношению к буферу опция
Vi не имеет такой возможности.

В режиме Вставки при включённой опции ‘expandtab’ для вставки символа <Tab> используется соответствующее количество пробелов. Пробелы, кроме того, используются в отступах, которые вставляются по командам ‘<‘ и ‘>’, а также при включённой опции ‘autoindent’. Для вставки настоящего символа табуляции при включённой опции ‘expandtab’ используйте CTRL-V<Tab>. См. также |:retab| и |вставка-expandtab|.

ЗАМЕЧАНИЕ: Эта опция выключается при включении опции ‘compatible’.

‘exrc’ ‘ex’

переключатель (по умолчанию: выключено)
глобальная опция
Vi не имеет такой возможности.

Во включённом состоянии опция позволяет выполнять чтение файлов .vimrc, .exrc и .gvimrc в текущем каталоге. Вам следует также обдумать необходимость включения опции ‘secure’ при включении опции ‘exrc’, подробности см. в разделе |инициализация|. Использование местных файлов .exrc, .vimrc или .gvimrc является потенциальной уязвимостью в безопасности, поэтому пользоваться данной возможностью следует осторожно!

См. также |.vimrc| и |графический_интерфейс-инициализация|.

Эта опция не может быть изменена из |режимной_строки| или в |песочнице| по соображениям безопасности.

‘fileencoding’ ‘fenc’

строка (по умолчанию: «»)
местная по отношению к буферу опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+multi_byte|.

Опция задаёт кодировку символов для файла в данном буфере. Если значение опции ‘fileencoding’ отличается от значения опции ‘encoding’, то при чтении и записи файла выполняются необходимые преобразования кодировки.

Если значением опции ‘fileencoding’ является пустая строка, то используется значение опции ‘encoding’ и преобразования при чтении и записи файла не выполняются.

ПРЕДУПРЕЖДЕНИЕ: Преобразования кодировки символов могут приводить к потере информации! Если значением опции ‘encoding’ является «utf-8», то преобразования скорее всего выполняются таким образом, что обратное преобразование приводит к тому же самому тексту. Однако, в случае, если опция ‘encoding’ имеет какое-либо другое значение, отличное от «utf-8», некоторые символы могут быть утрачены!

Возможные значения этой опции рассматриваются в справке по опции ‘encoding’. Кроме того, можно указывать и другие значения, если они могут быть обработаны движком преобразований кодировок символов, см. |мультибайт-преобразования|.

При чтении файла значение опции ‘fileencoding’ выбирается из списка в значении опции ‘fileencodings’. Чтобы прочитать файл в определённой кодировке установки значения опции ‘fileencoding’ может оказаться недостаточно. В этих случаях используйте ключ |++enc|.

Добавление приставок «8bit-» и «2byte-» в данном случае не оказывает никакого влияния — они просто игнорируются редактором. При установке значения опции оно преобразуется в нижний регистр символов, что позволяет использовать названия кодировок и в верхнем регистре. Все символы подчёркивания «_» преобразуются в символ дефиса «-«. Если имя обнаружено в списке возможных значений опции ‘encoding’, то оно будет заменено стандартным именем кодировки. Например, «ISO8859-2» заменяется на «iso-8859-2».

Если значение этой опции не является пустой строкой, то сразу же после начала редактирования файла включается опция ‘modified’, поскольку файл будет отличаться от файла при сохранении. Если вы изменяете значение опции из режимной строки, то вам возможно захочется отключить опцию ‘modified’, чтобы избежать подобного поведения. Эта опция не может быть изменена, если отключена опция ‘modifiable’.

ЗАМЕЧАНИЕ: В версиях раннее Vim 6.0 эта опция ошибочно задавала кодировку для всех текстов в Vim. Теперь этой цели служит опция ‘encoding’. Старое короткое имя опции ‘fe’ больше не применяется.

‘fileencodings’ ‘fencs’

строка (по умолчанию: «ucs-bom» или «ucs-bom,utf-8,latin1», если значением опции ‘encoding’ является кодировка Unicode)
глобальная опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+multi_byte|.

Значением опции является список кодировок символов, которые рассматриваются редактором в качестве кандидатур при назначении кодировки в начале редактирования существующего файла. После прочтения файла Vim пытается использовать первую кодировку в списке. В случае обнаружения ошибки предпринимается попытка использовать вторую кодировку из списка. Если соответствующая кодировка работает с данным файлом нормально, то её имя устанавливается в значении опции ‘fileencoding’. Если ни одна из кодировок в списке не может быть использована, то значение опции ‘fileencoding’ устанавливается равным пустой строке, что равноценно использованию кодировки, заданной в значении опции ‘encoding’.

ПРЕДУПРЕЖДЕНИЕ: Преобразования кодировки символов могут приводить к потере информации! Если значением опции ‘encoding’ является «utf-8» (или другой вариант Unicode), то преобразования скорее всего выполняются таким образом, что обратное преобразование приводит к тому же самому тексту. Однако, в случае, если опция ‘encoding’ имеет какое-либо другое значение, некоторые символы могут быть утрачены!

При работе с пустым файлом или файлом, который содержит только символы ASCII, подойдёт практически любая кодировка, поэтому в этом случае используется первый элемент списка в значении опции ‘fileencodings’ (кроме «ucs-bom», которая требует наличия отметки порядка байтов BOM). Если вам необходимо использовать в таких ситуациях какую-либо другую кодировку, то можно организовать выполнение соответствующих проверок при помощи автокомандного события BufReadPost. Например:

au BufReadPost * if search('\S', 'w') == 0 |
\ set fenc=iso-2022-jp | endif

В нашем примере значение опции ‘fileencoding’ устанавливается равным «iso-2022-jp», если файл не содержит непробельных символов.

Обратите внимание, что опция ‘fileencodings’ не используется для нового файла, а значение опции ‘fileencoding’ в этом случае всегда является пустой строкой. Это означает, что несуществующему файлу может быть назначена кодировка, отличающаяся от кодировки пустого файла.

Специальное значение «ucs-bom» применяется для выполнения проверки наличия Unicode BOM (отметка порядка байтов Unicode) в самом начале файла. Это значение не должно быть помещено в список после «utf-8» или другой кодировки Unicode, иначе проверка осуществляться не будет. 8-битные кодировки, например «latin1», должны быть указаны в конце списка, т.к. иначе Vim не сможет обнаружить ошибку и эта кодировка будет приниматься всегда.

НЕПРАВИЛЬНЫЕ ЗНАЧЕНИЯЧТО НЕПРАВИЛЬНО
latin1,utf-8всегда будет использоваться «latin1»
utf-8,ucs-bom,latin1в файле utf-8 BOM распознаваться не будет
cp1250,latin1всегда будет использоваться «cp1250»

Если значение опции ‘fileencodings’ представляет собой пустую строку, то значение опции ‘fileencoding’ не изменяется. Список возможных значений рассматривается в справке по опции ‘fileencoding’.

Изменение этой опции вступает в силу при чтении очередного файла.

‘fileformat’ ‘ff’

строка (по умолчанию в MS-DOS, MS-Windows, OS/2: «dos», по умолчанию в Unix: «unix», по умолчанию на Macintosh: «mac»)
местная по отношению к буферу опция
Vi не имеет такой возможности.

Опция задаёт значение символа конца строки <EOL> для текущего буфера, которое используется при чтении файла в буфер и записи буфера в файл:

dos<CR> <NL>
unix<NL>
mac<CR>

При использовании «dos» CTRL-Z в конце файла игнорируется.

См. также |файл-форматы| и |файл-чтение|.

Кодировка символов в файле рассматривается в справке по опции ‘fileencoding’.

При включённой опции ‘binary’ значение опции ‘fileformat’ игнорируется, а операции ввода/вывода с файлами выполняются так, как если бы значение опции было «unix».

Эта опция автоматически изменяется в начале редактирования файла, если значение опции ‘fileformats’ не является пустой строкой, а опция ‘binary’ выключена.

Если значение этой опции не является пустой строкой, то сразу же после начала редактирования файла включается опция ‘modified’, поскольку файл будет отличаться от файла при сохранении.

Эта опция не может быть изменена, если отключена опция ‘modifiable’. Для обратной совместимости: если значением опции является «dos», то включается опция ‘textmode’, в противном случае опция ‘textmode’ выключается.

‘fileformats’ ‘ffs’

строка (по умолчанию:

Vim+ViMS-DOS, MS-Windows OS/2: «dos,unix»
VimUnix: «unix,dos»
VimMac: «mac,unix,dos»
ViCygwin: «unix,dos»
Viостальные системы: «»

)
глобальная опция
Vi не имеет такой возможности.

Опция сообщает редактору список возможных форматов конца строки (<EOL>), которые могут быть применены в начале редактирования нового буфера или при чтении файла в существующий буфер:

  • Пустое значение указывает, что формат всегда определяется значением, указанным в опции ‘fileformat’. Автоматическое определение в этом случае отключается.
  • Если значение опции задано единственным именем, то при открытии нового буфера всегда применяется указанный формат. При этом происходит изменение значения опции ‘fileformat’ в соответствии с указанным в этой опции значением. При чтении файла в существующий буфер всегда применяется значение, указанное в опции ‘fileformats’, независимо от того, каким является текущее значение опции ‘fileformat’ для данного буфера.
  • Если в значении этой опции указано несколько имён, разделённых запятыми, то выполняется автоматическое определение <EOL> при чтении файла. В начале редактирования файла проверка формата <EOL> выполняется следующим образом:

    1. Если все строки в файле заканчиваются на символы <CR><NL>, а значение опции ‘fileformats’ содержит «dos», то значение опции ‘fileformat’ изменяется на «dos».
    2. Если обнаруживается строка, оканчивающаяся на <NL>, а значение опции ‘fileformats’ содержит «unix», то значение опции ‘fileformat’ изменяется на «unix». Обратите внимание, что в данном случае выполняется поиск символа <NL> без предшествующего ему <CR>, и если это условие выполняется, то значение «unix» предпочитается значению «dos».
    3. Если значение опции ‘fileformats’ содержит «mac», то значение опции ‘fileformat’ изменяется на «mac». Иными словами, «mac» выбирается только в том случае, если значение «unix» отсутствует в списке или если в файле отсутствуют символы <NL> и в списке возможных форматов отсутствует значение «dos», либо если в файле отсутствует последовательность символов <CR><NL>. Кроме того, если сначала было выбрано значение «unix», но первый символ <CR> встречается перед первым символом <NL>, а в тексте присутствует больше символов <CR>, чем символов <NL>, то значение опции ‘fileformat’ устанавливается равным «mac».
    4. Если в результате описанных выше действий значение опции ‘fileformat’ всё ещё не установлено, то используется первое имя из списка значений опции ‘fileformats’.

    То же самое происходит и при чтении файла в существующий буфер, однако, если при этом значение опции ‘fileformat’ для данного файла выглядит подходящим, то значение опции не изменяется.

При включенной опции ‘binary’ значение опции ‘fileformats’ не используется.

В системах, которые используют DOS-подобные символы окончания строки <EOL> (<CR><NL>), при чтении файлов сценариев по команде «:source» и файлов vimrc может происходить автоматическое определение формата файла:

  • Если значение опции ‘fileformats’ пустое, то автоматическое определение отключается и используется формат «dos».
  • Если в значении опции ‘fileformats’ указано одно или несколько имён, то выполняется автоматическое определение, основанное на первом символе <NL> в файле: если перед ним встречается символ <CR>, то используется формат «dos», в противном случае используется формат «unix».

См. также |файл-форматы|.

Для обратной совместимости: если значением опции является пустая строка или указано только одно значение (запятая в значении опции отсутствует), то опция ‘textauto’ отключается, в противном случае опция ‘textauto’ будет включена.

ЗАМЕЧАНИЕ: значение опции устанавливается равным принятому по умолчанию в режиме совместимости с Vi при включении опции ‘compatible’ и равным принятому по умолчанию в режиме Vim при отключении опции ‘compatible’.

‘filetype’ ‘ft’

строка (по умолчанию: «»)
местная по отношению к буферу опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+autocmd|.

При включении этой опции срабатывает автокомандное событие FileType. При этом выполняются все автокоманды, соответствующие значению данной опции. Таким образом, значение ‘filetype’ используется вместо имени файла.

При этом, опция не обязательно отражает тип текущего файла. Обычно её значение изменяется при определении типа файла. Чтобы включить автоматическое определение типа файла нужно воспользоваться командой «:filetype on» |:filetype|.

Изменение этой опции может быть особенно полезным, если оно выполняется из режимной строки, например, в тех случаях, когда тип файла не может быть определён автоматически. Например, для файла IDL:

/* vim: set filetype=idl : */

См. также |FileType| и |типы_файлов|.

Не путайте эту опцию с опцией ‘osfiletype’, которая используется для отражения типа файла, сохранённого в самом файле. Эта опция не копируется в новый буфер, независимо от наличия флага ‘s’ или ‘S’ в значении ‘cpoptions’.

‘fillchars’ ‘fcs’

строка (по умолчанию: «vert:|,fold:-«)
глобальная опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностями |+windows| и |+folding|.

Опция задаёт символы, которые используются для заполнения строк состояния и вертикальных разделителей.

Значение опции представляет собой список элементов, разделённых запятыми:

элементпо умолчаниюзначение элемента
stl:c‘ ‘ или ‘^’строка состояния текущего окна
stlnc:c‘ ‘ или ‘-‘строка состояния остальных окон
vert:c‘|’вертикальные разделители |:vsplit|
fold:c‘-‘заполнение закрытой складки, см. ‘foldtext’
diff:c‘-‘отображение удалённых строк при использовании опции ‘diff’

Любой не указанный явно элемент принимает значение по умолчанию. Для «stl» и «stlnc» используется пробел при наличии подсветки синтаксиса, либо ‘^’ и ‘-‘ в противном случае.

Пример:

:set fillchars=stl:^,stlnc:-,vert:\|,fold:-,diff:-      

Данное значение похоже на значение по умолчанию, но описанные выше символы ‘^’ и ‘-‘ используются даже при наличии подсветки синтаксиса.

Для подсветки элементов интерфейса используются следующие группы:

элементгруппа подсветки
stl:cStatusLine |подсветка-StatusLine|
stlnc:cStatusLineNC |подсветка-StatusLineNC|
vert:cVertSplit |подсветка-VertSplit|
fold:cFolded |подсветка-Folded|
diff:cDiffDelete |подсветка-DiffDelete|

‘fkmap’ ‘fk’

переключатель (по умолчанию: выключено)
глобальная опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+rightleft|.

Если эта опция включена, то раскладка клавиатуры будет соответствовать кодировке для языка фарси. Обычно для переключения этой опции используется CTRL-_ в режиме Вставки при включённой опции ‘allowrevins’, |i_CTRL-_|. См. также |farsi.txt|.

‘foldclose’ ‘fcl’

строка (по умолчанию: «»)
глобальная опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+folding|.

Если значением опции является строка «all», то складка будет закрываться, когда курсор находится вне складки на уровне выше, чем заданный значением опции ‘foldlevel’. Эта опция может оказаться полезной, если вам захочется автоматически закрывать складки при выходе из них.

‘foldcolumn’ ‘fdc’

число (по умолчанию: 0)
местная по отношению к окну опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+folding|.

В случае, если значение опции отлично от 0, рядом с окном будет показана колонка заданной ширины, в которой отражаются раскрытые и закрытые складки. Максимальное значение для этой опции равно 12.

См. |складки|.

‘foldenable’ ‘fen’

переключатель (по умолчанию: включено)
местная по отношению к окну опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+folding|.

Если опция находится в выключенном состоянии, то все складки будут открыты. Изменение значения этой опции может быть использовано для быстрого переключения между просмотром всего текста полностью с открытыми складками и просмотром текста с открытыми и закрытыми складками (в том числе открытыми и зарытыми вручную). Значение опции может быть изменено на противоположно при помощи команды |zi|. При выключении опции ‘foldenable’ колонка складок будет очищаться. Опция автоматически включается по командам, которые создают новую складку или закрывают складки. См. |складки|.

‘foldexpr’ ‘fde’

строка (по умолчанию: «0»)
местная по отношению к окну опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностями |+folding| и |+eval|.

Опция используется для хранения выражения, которое применяется в том случае, если значением опции ‘foldmethod’ является «expr». Выражение вычисляется для каждой строки и возвращает уровень её складки.

См. также |складки-выражения| и |вычисления-песочница|.

‘foldignore’ ‘fdi’

строка (по умолчанию: «#»)
местная по отношению к окну опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+folding|.

Опция используется только в том случае, когда значением опции ‘foldmethod’ является «indent». Для строк, начинающихся с символов, заданных в значении опции ‘foldignore’ будет приниматься значение уровня складки соответствующее значению уровня складки соседних строк. Пробелы перед указанными символами не оказывают влияния. Используемое по умолчанию значение «#» хорошо подходит при работе с исходными текстами программ на языке C. См. также |складки-отступы|.

‘foldlevel’ ‘fdl’

число (по умолчанию: 0)
местная по отношению к окну опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+folding|.

Опция устанавливает уровень складок: складки с более высоким уровнем, чем значение данной опции, будут закрыты. Установка значения этой опции равным нулю приводит к закрытию всех складок. С увеличением значения опции количество закрытых складок уменьшается.

Значение этой опции может быть изменено при помощи команд |zm|, |zM| и |zR|.

См. |складки-уровень_складок|.

‘foldlevelstart’ ‘fdls’

число (по умолчанию: -1)
глобальная опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+folding|.

Опция задаёт значение опции ‘foldlevel’ в начале редактирования нового буфера в окне. Её полезно использовать для закрытия всех складок в файле в начале редактирования (при значении 0), закрытия некоторых складок (при значении от 1) или открывания всех складок (при значении 99).
Изменение значения опции ‘foldlevel’ происходит до чтения и разбора режимной строки, поэтому значения в режимной строке могут отменять эффект данной опции. Кроме того, при редактировании файла в |режиме_отображения_различий| значение данной опции также игнорируется, а все складки будут поначалу находиться в закрытом состоянии.

Изменение значения опции ‘foldlevel’ происходит также до выполнения автокоманд BufReadPre, что позволяет автокоманде изменять значение опции ‘foldlevel’ для определённых файлов. Если значением этой опции является отрицательное число, то оно не используется.

‘foldmarker’ ‘fmr’

строка (по умолчанию: «{{{,}}}»)
местная по отношению к окну опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+folding|.

Опция задаёт символьные маркеры для начала и конца складки, которые применяются, если значением опции ‘foldmethod’ является строка «marker». При указании значения этой опции обязательно должна быть включена запятая, которая разделяет начальный и конечный маркеры. Маркер является буквальной строкой (использование регулярных выражений было бы слишком неэффективным). См. |складки-маркеры|.

‘foldmethod’ ‘fdm’

строка (по умолчанию: «manual»)
местная по отношению к окну опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+folding|.

Опция задаёт метод образования складок для текущего окна. Список возможных значений:

|складки-ручной_способ| manualСкладки создаются вручную.
|складки-jncnegs| indentСкладка формируется строками с одинаковыми отступами.
|складки-выражения| exprУровень складки для строки задаётся значением опции ‘foldexpr’.
|складки-маркеры| markerСкладки задаются с использованием маркеров.
|складки-синтаксис| syntaxСкладки задаются в соответствии с правилами подсветки синтаксиса.
|складки-diff| diffВ складки помещаются неизменённые фрагменты текста.

‘foldminlines’ ‘fml’

число (по умолчанию: 1)
местная по отношению к окну опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+folding|.

Опция задаёт минимальное количество экранных строк, при котором складка будет отображаться в закрытом состоянии, в том числе для складок, закрытых вручную.

Обратите внимание, что опция влияет только на отображение складки. После применения команды «zc» для закрытия складки, отображающейся открытой по причине меньшего, чем значение опции ‘foldminlines’ количества содержащихся строк, повторное применение команды «zc» может привести к закрытию внешней складки.

‘foldnestmax’ ‘fdn’

число (по умолчанию: 20)
местная по отношению к окну опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+folding|.

Опция назначает максимальное количество вложений складок для методов «indent» и «syntax». Опция позволяет избежать создания слишком большого количества складок. Использование значения, большего, чем 20, не работает, поскольку встроенное ограничение количества вложений в складках соответствует 20.

‘foldopen’ ‘fdo’

строка (по умолчанию: «block,hor,mark,percent, quickfix,search,tag,undo»)
глобальная опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+folding|.

Опция указывает группы команд, выполнение которых приводит к открытию складки, если после выполнения команды курсор помещается внутри закрытой складки. Значением опции является список элементов, разделённых запятыми.

элементкоманды
allвсе команды
block«(«, «{«, «[[«, «[{» и т.п.
horкоманды горизонтального перемещения курсора: «l», «w», «fx», и т.п.
insertвсе команды режима Вставки
jumpкоманды перехода: «G», «gg» и т.п..
markкоманды прыжков к отметке: «‘m», CTRL-O и т.п.
percent«%»
quickfix«:cn», «:crew», «:make» и т.п.
searchкоманды поиска по шаблону: «/», «n», «*», «gd» и т.п. (кроме шаблонов поиска в командах «:»)
tagпереходы к меткам: «:ta», CTRL-T и т.п.
undoкоманды отмены или повторного выполнения: «u» и CTRL-R

Если команда выполняется из привязки, то значение опции не используется. Чтобы достигать аналогичного эффекта, к привязке следует добавлять команду |zv|.

Значение опции также не используется, если команда перемещения используется в качестве оператора (например, «dl» или «y%»). Пр этом оператор будет включать в качестве области выполнения всю закрытую складку целиком.

Обратите внимание, что вертикальные перемещения не используются, поскольку иначе было бы крайне сложно выполнить перемещение к закрытой складке.

В режиме вставки складки, в которых находится курсор, будут всегда открываться при вставке текста.

Чтобы закрыть складки, следует выполнить переназначение опции ‘foldlevel’ при помощи команды |zx| или установить значение опции ‘foldclose’ равным строке «all».

‘foldtext’ ‘fdt’

строка (по умолчанию: «foldtext()»)
местная по отношению к окну опция
Vi не имеет такой возможности.
Доступно только в том случае, если Vim скомпилирован с особенностью |+folding|.

Опция содержит выражение, которое используется для задания текста, отображаемого на месте закрытой складки.

См. |складки-текст_складки|.

‘formatoptions’ ‘fo’

строка (по умолчанию в режиме Vim: «tcq», по умолчанию в режиме совместимости с Vi: «vt»)
Vi не имеет такой возможности.

Опция представляет собой последовательность символов, описывающих особенности автоматического форматирования текста, см. |fo-таблица|. Форматирование не применяется при включённой опции ‘paste’ (в этом случае редактор ведёт себя так, как если бы значением опции ‘formatoptions’ была пустая строка). Для удобочитаемости между символами можно вставлять запятые. Чтобы избежать проблем с добавлением флагов, рекомендуется использовать особенности команды «:set»: «+=» и «-=». Подробнее об этом читайте в разделе |добавление_флага_к_опции|.

ЗАМЕЧАНИЕ: значение опции устанавливается равным принятому по умолчанию в режиме совместимости с Vi при включении опции ‘compatible’ и равным принятому по умолчанию в режиме Vim при отключении опции ‘compatible’.

‘formatprg’ ‘fp’

строка (по умолчанию: «»)
глобальная опция
Vi не имеет такой возможности.

Опция используется для задания имени внешней программы, которая применяется для форматирования строк, выделенных по команде «gq». Программа должна быть фильтром, то есть принимать исходные данные со стандартного потока ввода и выводить результат на стандартный поток вывода. Примером такой программы служит программа «fmt», входящая в поставку Unix-систем. Если данная опция является пустой строкой, то используется встроенная функция форматирования, см. |C-отступы|. При разборе значения опции выполняется |подстановка_переменных_окружения|.

Информация об использовании символа обратной косой черты для включения пробела или обратной косой приводится в разделе |опции-обратная_косая|.

Значение этой опции не может быть изменено из |режимной_строки| или в |песочнице| по соображениям безопасности.

Опции: A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,R,S,T,U,V,W

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *