Руководства по командной строке

Man » vim Manual online - подробная онлайн-документация для страницы man vim

🌍
vim - Vi IMproved, текстовый редактор для программистов

СИНТАКСИС

vim [опции] [файл ..]
vim [опции] vim [опции] -t метка
vim [опции] -q [файл_ошибок]

ex
view
gvim gview evim eview
rvim rview rgvim rgview

ОПИСАНИЕ

Vim — это текстовый редактор, который обратно совместим с Vi. Его можно использовать для редактирования любых обычных текстовых файлов. Он особенно полезен для редактирования программ.

Существует множество улучшений по сравнению с Vi: многоуровневое отмена, несколько окон и буферов, подсветка синтаксиса, редактирование командной строки, автозаполнение имен файлов, онлайн-справка, визуальный выбор и т. д. См. ":help vi_diff.txt" для получения краткого обзора различий между Vim и Vi.

Во время работы с Vim можно получить много полезной информации из онлайн-системы справки с помощью команды ":help". См. раздел "ОНЛАЙН-СПРАВКА" ниже.

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

vim файл

В более общем случае Vim запускается следующим образом:

vim [опции] [список_файлов]

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

файл ..     Список имен файлов. Первый файл будет текущим файлом и загружен в
буфер. Курсор будет помещен на первую строку буфера. Вы можете
перейти к другим файлам с помощью команды ":next". Чтобы отредактировать файл, начинающийся с дефиса,
представьте список файлов с помощью "--".

-           Файл для редактирования считывается из стандартного ввода. Команды считываются из стандартного вывода, который должен быть
терминалом.

-t {метка}    Файл для редактирования и начальная позиция курсора зависят от "метки", своего рода метки перехода.
{метка} ищется в файле меток, связанный файл становится текущим
файлом, и выполняется связанная команда. В основном это используется для программ на C, в
котором случае {метка} может быть именем функции. Эффект заключается в том, что файл, содержащий
эту функцию, становится текущим файлом, и курсор помещается на начало
функции. См. ":help tag-commands".

-q [файл_ошибок]

Запуск в режиме QuickFix. Файл [файл_ошибок] считывается, и первая ошибка отображается. Если [файл_ошибок] не указан, имя файла берется из опции 'errorfile' (по умолчанию "AztecC.Err" для Amiga, "errors.err" на других системах). К последующим ошибкам можно переходить с помощью команды ":cn". См. ":help quickfix".

Vim ведет себя по-разному в зависимости от имени команды (исполняемый файл может быть одним и тем же).

vim       Обычный способ, все по умолчанию.

ex        Запуск в режиме Ex. Переход в нормальный режим с помощью команды ":vi". Также можно сделать с помощью аргумента "-e".

view      Запуск в режиме только для чтения. Вы будете защищены от записи файлов. Также можно сделать с помощью аргумента "-R".

gvim gview
GUI-версия. Открывает новое окно. Также можно сделать с помощью аргумента "-g".

evim eview
GUI-версия в упрощенном режиме. Открывает новое окно. Также можно сделать с помощью аргумента "-y".

rvim rview rgvim rgview
Как и выше, но с ограничениями. Невозможно будет запускать команды оболочки или приостанавливать Vim. Также можно сделать с помощью аргумента "-Z".

ОПЦИИ

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

+[num]      Для первого файла курсор будет установлен на строку "num". Если "num" отсутствует, курсор будет установлен на последнюю строку.

+/{pat}     Для первого файла курсор будет установлен на строку с первым вхождением {pat}. См. ":help search-pattern" для доступных шаблонов поиска.

+{command}

-c {command}
{command} будет выполнена после чтения первого файла. {command} интерпретируется как команда Ex. Если {command} содержит пробелы, ее необходимо заключать в двойные кавычки (это зависит от используемой оболочки). Пример: vim "+set si" main.c
Примечание: вы можете использовать до 10 команд "+" или "-c".

-A          Если Vim был скомпилирован с поддержкой ARABIC для редактирования файлов, ориентированных справа налево, и с арабской раскладкой клавиатуры, эта опция запускает Vim в арабском режиме, т. е. устанавливается 'arabic'. В противном случае выдается сообщение об ошибке, и Vim завершает работу.

-b          Режим двоичных файлов. Устанавливается несколько опций, которые позволяют редактировать двоичный или исполняемый файл.

-C          Совместимый режим. Устанавливается опция 'compatible'. Это заставит Vim вести себя в основном как Vi, даже если существует файл .vimrc.

-d          Запуск в режиме сравнения. Должно быть от двух до восьми аргументов имен файлов. Vim открывает все файлы и показывает различия между ними. Работает как vimdiff(1).

-d {device}, -dev {device}
Открывает {device} для использования в качестве терминала. Только для Amiga. Пример: "-d con:20/30/600/150".

-D          Отладка. Переход в режим отладки при выполнении первой команды из скрипта.

-e          Запуск Vim в режиме Ex, как если бы исполняемый файл назывался "ex".

-E          Запуск Vim в улучшенном режиме Ex, как если бы исполняемый файл назывался "exim".

-f          Для GUI-версии Vim не будет создавать дочерний процесс и отсоединяться от оболочки, в которой он был запущен. На Amiga Vim не перезапускается для открытия нового окна. Эта опция должна использоваться, когда Vim запускается программой, которая будет ждать завершения сеанса редактирования (например, почта). На Amiga команды ":sh" и ":!" не будут работать.

-F          Если Vim был скомпилирован с поддержкой FKMAP для редактирования файлов, ориентированных справа налево, и с фарси (персидской) раскладкой клавиатуры, эта опция запускает Vim в фарси (персидском) режиме, т. е. устанавливаются 'fkmap' и 'rightleft'. В противном случае выдается сообщение об ошибке, и Vim завершает работу.
Примечание: поддержка фарси удалена в версии 8.1.0932.

-g          Если Vim был скомпилирован с поддержкой GUI, эта опция включает GUI. Если поддержка GUI не была включена при компиляции, выводится сообщение об ошибке, и Vim завершает работу.

-H          Если Vim был скомпилирован с поддержкой RIGHTLEFT для редактирования файлов, ориентированных на запись справа налево, и с поддержкой раскладки клавиатуры для иврита, эта опция запускает Vim в режиме иврита, то есть устанавливает параметры 'hkmap' и 'rightleft'. В противном случае выводится сообщение об ошибке, и Vim завершает работу.

-i {viminfo}
Указывает имя файла, который следует использовать для чтения или записи файла viminfo, вместо значения по умолчанию "~/.viminfo". Также может использоваться для отключения использования файла .viminfo, указав имя "NONE".

-l          Режим Lisp. Устанавливает параметры 'lisp' и 'showmatch'.

-L          То же, что и -r.

-m          Редактирование файлов отключено. Сбрасывает параметр 'write'. Вы все еще можете изменять содержимое буфера, но запись файла невозможна.

-M          Изменения запрещены. Параметры 'modifiable' и 'write' будут сброшены, поэтому изменения не будут разрешены, и файлы нельзя будет записывать. Обратите внимание, что эти параметры можно установить, чтобы разрешить внесение изменений.

-n          Файл подкачки использоваться не будет. Восстановление после сбоя будет невозможно. Удобно, если вы хотите редактировать файл на очень медленном носителе (например, на дискете). Также можно сделать с помощью ":set uc=0". Можно отменить с помощью ":set uc=200".

-N          Режим без совместимости. Сбрасывает параметр 'compatible'. Это заставит Vim работать немного лучше, но менее совместимо с Vi, даже если файл .vimrc не существует.

-nb         Станьте редактором-сервером для NetBeans. См. документацию для получения подробной информации.

-o[N]       Откройте N окон в виде стопки. Если N не указан, откроется одно окно для каждого файла.

-O[N]       Откройте N окон рядом друг с другом. Если N не указан, откроется одно окно для каждого файла.

-p[N]       Откройте N страниц вкладок. Если N не указан, откроется одна страница вкладок для каждого файла.

-P {parent-title}
Только для Win32 GUI: укажите заголовок родительского приложения. Если возможно, Vim будет работать в MDI-окне внутри приложения. {parent-title} должен присутствовать в заголовке окна родительского приложения. Убедитесь, что он достаточно специфичен. Обратите внимание, что реализация все еще примитивна. Это не будет работать со всеми приложениями, и меню не работает.

-r          Отобразить список файлов подкачки с информацией об их использовании для восстановления.

-r {file}   Режим восстановления. Файл подкачки используется для восстановления сеанса редактирования после сбоя. Файл подкачки — это файл с тем же именем, что и у текстового файла, к которому добавлено расширение ".swp". См. ":help recovery".

-R          Режим только для чтения. Параметр 'readonly' будет установлен. Вы все еще можете редактировать содержимое буфера, но это предотвратит случайное перезаписывание файла. Если вы все же хотите перезаписать файл, добавьте восклицательный знак к команде Ex, например, ":w!". Опция -R также подразумевает опцию -n (см. выше). Параметр 'readonly' можно сбросить с помощью ":set noro". См. ":help 'readonly'".

-s          Тихий режим. Работает только при запуске как "Ex" или если опция "-e" была указана перед
опцией "-s".

-s {scriptin}

Файл сценария {scriptin} считывается. Символы в файле интерпретируются так, как если бы вы их ввели. То же самое можно сделать с помощью команды ":source! {scriptin}". Если конец файла достигнут до выхода из редактора, дальнейшие символы считываются с клавиатуры.

-S {file}   Файл {file} будет загружен после чтения первого файла. Это эквивалентно -c
"source {file}". Файл {file} не может начинаться с '-'. Если {file} опущен, используется "Session.vim"
(работает только если -S является последним аргументом).

-T {terminal}

Сообщает Vim имя используемого вами терминала. Требуется только в том случае, если автоматический способ не работает. Должен быть терминалом, известным Vim (встроенным) или определенным в файле termcap или terminfo.

-u {vimrc}  Используйте команды из файла {vimrc} для инициализации. Все остальные инициализации пропускаются. Используйте это для редактирования специальных типов файлов. Также может использоваться для
пропуска всех инициализаций, указав имя "NONE". Подробности см. в ":help initialization"
внутри vim.

-U {gvimrc} Используйте команды из файла {gvimrc} для инициализации графического интерфейса. Все остальные инициализации графического интерфейса пропускаются. Также может использоваться для
пропуска всех инициализаций графического интерфейса, указав имя "NONE". Подробности см. в ":help gui-init" внутри vim.

-v          Запустите Vim в режиме Vi, как если бы исполняемый файл назывался "vi". Это работает только тогда, когда исполняемый файл вызывается как "ex".

-V[N]       Подробный режим. Выводит сообщения о том, какие файлы загружаются и для чтения и записи файла viminfo. Необязательное число N — это значение для 'verbose'. По умолчанию — 10.

-V[N]{filename}

Как -V и устанавливает 'verbosefile' в {filename}. В результате сообщения не отображаются, а записываются в файл {filename}. Файл {filename} не должен начинаться с цифры.

-w{number}  Установите опцию 'window' на {number}.

-w {scriptout}

Все символы, которые вы вводите, записываются в файл {scriptout}, пока вы не выйдете из Vim. Это полезно, если вы хотите создать файл сценария для использования с "vim -s" или ":source!". Если файл {scriptout} существует, символы добавляются в конец файла.

-W {scriptout}

Как -w, но существующий файл перезаписывается.

-x          Если Vim был скомпилирован с поддержкой шифрования, используйте шифрование при записи файлов.

Запросит криптографический ключ.

-X          Не подключайтесь к X-серверу. Сокращает время запуска в терминале, но заголовок окна и буфер обмена не будут использоваться.

-Y          Не подключайтесь к композитору Wayland

-y          Запустите Vim в простом режиме, как если бы исполняемый файл назывался "evim" или "eview". Делает Vim похожим на редактор, в котором можно просто щелкать и вводить текст.

-Z          Режим ограниченных возможностей. Работает так, как если бы исполняемый файл запускался с флагом "r".

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

--clean     Не использовать никакие личные конфигурационные файлы (vimrc, плагины и т. д.). Полезно, чтобы проверить, воспроизводится ли проблема в чистой конфигурации Vim.

--cmd {command}
Как использование "-c", но команда выполняется непосредственно перед обработкой любых файлов vimrc.
Можно использовать до 10 таких команд, независимо от команд "-c".

--echo-wid  Только для GTK GUI: выводит идентификатор окна в stdout.

--gui-dialog-file {name}
При использовании GUI вместо отображения диалогового окна записывает заголовок и сообщение диалогового окна в файл {name}. Файл создается или дополняется. Полезно только для тестирования, чтобы избежать того, что тест зависнет на диалоговом окне, которое не видно. Без GUI аргумент игнорируется.

--help, -h, -?
Предоставляет справку об аргументах и опциях командной строки. После этого Vim завершает работу.

--literal   Рассматривает аргументы имен файлов буквально, не выполняет расширение подстановочных знаков. Это не влияет на Unix, где оболочка выполняет расширение подстановочных знаков.

--log {filename}
Если Vim был скомпилирован с поддержкой eval и channel, начинает ведение журнала и записывает записи в {filename}. Это работает так, как если бы очень рано во время запуска вызывалась функция ch_logfile({filename}, 'ao').

--nofork    Работа в фоновом режиме. Для GUI-версии Vim не будет создавать дочерний процесс и отсоединяться от оболочки, из которой он был запущен.

--noplugin  Не загружать плагины. Подразумевается флагом -u NONE.

--not-a-term
Сообщает Vim, что пользователь знает, что ввод и/или вывод не подключены к терминалу. Это предотвратит предупреждение и двухсекундную задержку.

--remote    Подключается к серверу Vim и заставляет его редактировать файлы, указанные в остальных аргументах. Если сервер не найден, выдается предупреждение, и файлы редактируются в текущем экземпляре Vim.

--remote-expr {expr}
Подключается к серверу Vim, вычисляет {expr} в нем и выводит результат в stdout.

--remote-send {keys}
Подключается к серверу Vim и отправляет {keys} на сервер.

--remote-silent
Как --remote, но без предупреждения, если сервер не найден.

--remote-wait
Как --remote, но Vim не завершает работу, пока файлы не будут отредактированы.

--remote-wait-silent
Как --remote-wait, но без предупреждения, если сервер не найден.

--serverlist
Выводит список имен всех серверов Vim, которые можно найти.

--servername {name}
Использует {name} в качестве имени сервера. Используется для текущего экземпляра Vim, если не используется с аргументом --remote, тогда это имя сервера, к которому нужно подключиться. Если используется серверная часть socketserver, если имя начинается с "/", "./" или "../", оно рассматривается как абсолютный, относительный или относительный путь к сокету.

--clientserver {backend}
Использует {backend} в качестве серверной части для функциональности clientserver, либо "socket", либо "x11" соответственно. Доступно только при компиляции с поддержкой функций socketserver и X11.

--socketid {id}

Только для GTK GUI: Используйте механизм GtkPlug для запуска gVim в другом окне.

--startuptime {file}

Во время запуска записывайте сообщения о времени выполнения в файл {fname}.

--ttyfail Если stdin или stdout не являются терминалом, немедленно завершите работу.

--version Выведите информацию о версии и завершите работу.

--windowid {id}

Только для Win32 GUI: Заставьте gVim попытаться использовать окно {id} в качестве родительского, чтобы он запускался внутри этого окна.

ОНЛАЙН-СПРАВКА

Введите ":help" в Vim, чтобы начать работу. Введите ":help subject", чтобы получить справку по определенной теме. Например: ":help ZZ", чтобы получить справку по команде "ZZ". Используйте и CTRL-D для завершения тем (":help cmdline-completion"). Существуют метки для перехода из одного места в другое (подобно гиперссылкам, см. ":help"). Все файлы документации можно просматривать таким образом, например: ":help syntax.txt".

ФАЙЛЫ

/usr/local/share/vim/vim??/doc/*.txt

Файлы документации Vim. Используйте ":help doc-file-list", чтобы получить полный список. vim?? — сокращенный номер версии, например vim91 для Vim 9.1

/usr/local/share/vim/vim??/doc/tags

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

/usr/local/share/vim/vim??/syntax/syntax.vim

Системные инициализации синтаксиса.

/usr/local/share/vim/vim??/syntax/*.vim

Файлы синтаксиса для различных языков.

/usr/local/share/vim/vimrc

Системные инициализации Vim.

~/.vimrc, ~/.vim/vimrc, $XDG_CONFIG_HOME/vim/vimrc

Ваши личные инициализации Vim (используется первый найденный).

/usr/local/share/vim/gvimrc

Системные инициализации gvim.

~/.gvimrc, ~/.vim/gvimrc, $XDG_CONFIG_HOME/vim/gvimrc

Ваши личные инициализации gVim (используется первый найденный).

/usr/local/share/vim/vim??/optwin.vim

Скрипт, используемый для команды ":options", — удобный способ просмотра и установки параметров.

/usr/local/share/vim/vim??/menu.vim

Системные инициализации меню для gVim.

/usr/local/share/vim/vim??/bugreport.vim

Скрипт для создания отчета об ошибке. См. ":help bugs".

/usr/local/share/vim/vim??/filetype.vim

Скрипт для определения типа файла по его имени. См. ":help 'filetype'".

/usr/local/share/vim/vim??/scripts.vim

Скрипт для определения типа файла по его содержимому. См. ":help 'filetype'".

/usr/local/share/vim/vim??/print/*.ps

Файлы, используемые для PostScript-печати.

Для получения актуальной информации посетите домашнюю страницу VIM:

СМОТРИТЕ ТАКЖЕ

vimtutor(1)

АВТОР

Большая часть Vim была создана Брэмом Мулленаром, при активной помощи других. См. ":help credits" в Vim. Vim основан на Stevie, над которым работали: Тим Томпсон, Тони Эндрюс и Г.Р. (Фред) Вальтер. Хотя от исходного кода почти ничего не осталось.

ОШИБКИ

Вероятно. См. ":help todo" для списка известных проблем. Обратите внимание, что некоторые вещи, которые могут быть восприняты как ошибки, на самом деле вызваны слишком точным воспроизведением поведения Vi. А если вы думаете, что другие вещи являются ошибками «потому что Vi делает это по-другому», вам следует внимательнее изучить файл vi_diff.txt (или набрать :help vi_diff.txt в Vim). Также обратите внимание на параметры 'compatible' и 'cpoptions'.