Поиск…


замечания

Vim (или «Vi IMproved») представляет собой консольный многомодовый ( модальный ) текстовый редактор. Он широко используется и доступен по умолчанию для всех систем Unix, Linux и Apple OS X. Vim имеет большое активное сообщество и широкую пользовательскую базу. Редактор поддерживает все популярные языки программирования, и многие плагины доступны для расширения своих возможностей.

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

Vim основан на более раннем редакторе Unix «vi», созданном в семидесятых годах, и с 1991 года он постоянно развивается. С помощью макросов и плагинов редактор предлагает большинство функций современной среды разработки. Он также уникально способен обрабатывать большие объемы текста со своим языком сценариев (vimscript) и регулярными выражениями.

Главные темы:

Стандартное сообщение запуска Vim

Версии

Версия Дата выхода
8,0 2016-09-12
7,4 2013-08-10
7,3 2010-08-15
7,2 2008-08-09
7,1 2007-05-12
7,0 2006-05-07
6,0 2001-09-26
5.0 1998-02-19
4,0 1996-05-29
3.0 1994-08-12
2,0 1993-12-14
1,14 1991-11-02

Монтаж

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

Это не проблема, если все, что вам нужно, это быстрый способ редактировать файлы конфигурации, но вскоре вы нажмете на несколько стен, если вы намереваетесь сделать Vim своим главным редактором.

Поэтому, как правило, рекомендуется установить полную сборку.

Установка на Linux / BSD

В этих системах фокусом является просто установка версии GUI, которая поставляется с командой gvim для запуска GUI и команды vim для запуска TUI.

Архивные и архивные дистрибутивы

$ sudo pacman -R vim
$ sudo pacman -S gvim

Распределения Debian и Debian

$ sudo apt-get update
$ sudo apt-get install vim-gtk

Распределения Gentoo и Gentoo

$ sudo emerge --sync
$ sudo emerge app-editors/gvim

RedHat и RedHat-распределения

$ sudo yum check-update
$ sudo yum install vim-X11

мягкая фетровая шляпа

$ sudo dnf check-update
$ sudo dnf install vim-X11

Распределения Slackware и Slackware

$ sudo slackpkg update
$ sudo slackpkg install-new vim-gvim

Распределения OpenBSD и OpenBSD

$ sudo pkg_add vim-x11

Распределения FreeBSD и FreeBSD

$ sudo pkg install editors/vim

Установка в Mac OS X

Стратегия похожа на Mac OS X: мы устанавливаем версию GUI для получения графического интерфейса и TUI. В итоге мы должны уметь:

  • дважды щелкните значок MacVim в Finder,
  • нажмите на значок MacVim в Dock,
  • выпустите $ mvim в оболочке, чтобы открыть графический интерфейс MacVim,
  • выпустите $ mvim -v в оболочке, чтобы открыть TUI MacVim.

Обычная установка

Загрузите и установите официальный снимок, как и с любым другим приложением Mac OS X.

Поместите сценарий mvim который поставляется в комплекте с MacVim где-то в вашей $PATH .

Менеджер пакетов

MacPorts:
$ sudo port selfupdate
$ sudo port install macvim
Homebrew:
$ brew install macvim

Чтобы сделать MacVim стандартной консолью Vim:

$ brew install macvim --with-override-system-vim

Установка в Windows

По умолчанию в системе Windows нет Vim. Вы можете загрузить и установить Vim с сайта Tuxproject для получения более актуальных и полных сборок или вы можете загрузить и установить Vim с официального сайта Vim .

шоколадным

> choco install vim

Строительство Vim из источника

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

Эта тема будет обсуждаться в отдельном разделе (в настоящее время в проекте).

Выход из Vim

Чтобы выйти из Vim, сначала убедитесь, что вы находитесь в обычном режиме, нажав Esc .

  • :q Ввод (будет препятствовать выходу из системы, если у вас есть несохраненные изменения - сокращение: quit)

Отменить изменения и выйти из Vim:

  • :q! Enter, чтобы принудительно выйти и отменить изменения (сокращение для :quit! Не путать с :!q ),
  • ZQ - это ярлык, который делает то же самое, что :q! ,
  • :cq Введите quit и return error (отмените все изменения, чтобы компилятор не перекомпилировал этот файл)

Чтобы сохранить изменения и выйти из Vim:

  • :wq Enter (сокращенно :write and :quit ),
  • :x Enter (то же, что и :wq , но не будет писать, если файл не был изменен),
  • ZZ - это ярлык, который делает то же самое, что :x (Сохранить рабочее пространство и выйти из редактора),
  • :[range]wq! Введите ( введите строки в [диапазон])

Чтобы закрыть несколько буферов одновременно (даже в нескольких окнах и / или вкладках), добавьте букву a в любой из вышеперечисленных команд (те, которые начинаются с : . Например, чтобы написать и закрыть все окна, вы можете использовать:

  • :wqa Введите или
  • :xa Enter - записать все измененные буферы и выйти из Vim. Если существуют буферы без имени файла, которые являются readonly или которые не могут быть написаны по другой причине, Vim не уйдет
  • :xa! Enter - пишите все измененные буферы, даже те, которые только что читаются, и выйдите из Vim. Если есть буферы без имени файла или которые не могут быть написаны по другой причине, Vim не уйдет
  • :qa Enter - попробуйте выйти, но остановитесь, если есть несохраненные файлы;
  • :qa! Enter - выйти без сохранения (изменений откинуть несохраненные файлы)

Если вы открыли Vim без указания файла и хотите сохранить этот файл перед выходом, вы получите сообщение E32: No file name . Вы можете сохранить файл и выйти из него, используя:

  • :wq filename Ввод или;
  • :x filename Введите

Объяснение:

Действие : нажатие клавиши действительно открывает командный режим. Команда q является аббревиатурой quit , w , write и x , exit (вы также можете ввести :quit :write и :exit если хотите). Ярлыки, не начинающиеся с : например ZZ и ZQ относятся к сопоставлениям в режиме нормального режима. Вы можете рассматривать их как ярлыки.

! нажатие клавиши иногда используется в конце команды для принудительного ее выполнения, что позволяет отменить изменения в случае :q! , Размещение ! в начале команды имеет другое значение. Например, можно ошибаться :!q вместо :q! и vim закончил бы с ошибкой 127.

Легкий способ запомнить это - думать ! как способ настаивать на выполнении чего-то. Также, когда вы пишете: «Я хочу бросить курить!»

Интерактивные учебники Vim (например, vimtutor)

vimtutor - интерактивное учебное пособие, охватывающее самые основные аспекты редактирования текста.

В UNIX-подобной системе вы можете запустить учебник с помощью:

$ vimtutor

В Windows «Vim tutor» можно найти в каталоге «Vim 7.x» в разделе «Все программы» в меню Windows.

Смотрите :help vimtutor для получения дополнительной информации.

Другие интерактивные руководства включают эти браузерные:

  • Vim Adventures - интерактивная версия игры vimtutor, доступная в Интернете. Только первые несколько уровней бесплатны.
  • Open Vim - интерактивный терминал, который учит вас основным командам с обратной связью.
  • Vim Genius - еще один интерактивный терминал, который также включает в себя промежуточные и продвинутые уроки, включая макросы и arglist.

Сохранение файла только для чтения, отредактированного в Vim

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

Используйте эту команду, чтобы сохранить файл только для чтения, отредактированный в Vim.

:w !sudo tee > /dev/null %

Которое можно было бы сопоставить с :w!! в вашем .vimrc :

cmap w!! w !sudo tee > /dev/null %

Вам будет предложено ввести подсказку, как показано на рисунке.

Нажмите ENTER или введите команду для продолжения. [O] K, (L) oad Файл: ,

Нажмите O и файл будет сохранен. Он остается открытым в vi / vim для большего редактирования или чтения, и вы можете нормально выйти, набрав :q! поскольку файл по-прежнему открыт как доступный только для чтения.

Объяснение команды

:w ............................ isn't modifying your file in this case, 
   ............................ but sends the current buffer contents to 
   ............................ a substituted shell command
   !sudo ...................... call the shell 'sudo' command
         tee .................. the output of the vi/vim write command is redirected 
                                using the 'tee' command
             > /dev/null ...... throws away the standard output, since we don't need 
                                to pass it to other commands
                         % .... expands to the path of the current file

Источники:

Приостановить vim

При использовании vim из командной строки вы можете приостановить vim и вернуться к своей подсказке, не покидая vim . Следовательно, вы позже сможете вернуть сеанс vim из того же приглашения.

Если в нормальном режиме (если нет, нажмите esc, чтобы попасть туда), выполните одну из следующих команд:

:st enter

:sus введите

:stop ввод

:suspend ввод

Альтернативно, в некоторых системах, когда в обычном или визуальном режиме выдача Ctrl + Z будет иметь тот же эффект.

Примечание. Если autowrite будут autowrite буферы с изменениями и именами файлов. Добавьте ! перед тем, как войти, чтобы избежать, например. :st! введите .

Позже, когда вы захотите вернуться на сеанс vim , если вы не приостановили какие-либо другие задания, выдача следующего будет восстанавливать vim в качестве задания переднего плана.

fg enter

В противном случае вам нужно будет найти ваши vim сессий это работа ID путем выдачи jobs ввода и затем выдвижение на первый план согласующего рабочих мест fg %[job ID] введите например. fg %1 введите .

основы

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

Vim имеет несколько режимов, например, обычный режим , режим вставки и режим командной строки .

Обычный режим предназначен для редактирования и навигации по тексту. В этом режиме h , j , k и l соответствуют клавишам курсора , , и . Большинство команд в нормальном режиме могут иметь префикс «счет», например, 3j перемещается вниз по 3 линиям.

Режим вставки предназначен для непосредственного вставки текста, в этом режиме vim аналогичен другим более простым текстовым редакторам. Для входа в режим вставки нажмите i в нормальном режиме. Чтобы оставить его, нажмите клавишу <ESC> (клавиша эвакуации).

Режим командной строки предназначен для запуска более сложных команд, таких как сохранение файла и выход из vim. Нажмите : для запуска режима командной строки. Чтобы выйти из этого режима, вы также можете нажать <ESC> . Чтобы сохранить изменения в файле, используйте :w (или :write ). Для выхода из vim без сохранения изменений используйте :q! (или :quit! ).

Вот некоторые из наиболее полезных команд в vim:

команда Описание
i (вставка) переходит в режим вставки до текущей позиции курсора
I переходит в режим вставки до первого печатаемого символа текущей строки
a (append) переходит в режим вставки после текущей позиции курсора
A переходит в режим вставки после последнего печатного символа текущей строки
x удалить символ в текущей позиции курсора
X удалить символ слева до текущей позиции курсора
w перейти к следующему слову
b перейти к предыдущему слову
0 перейти к началу строки
$ переместиться в конец строки
r replace - вводит режим замены для одного символа. Следующий символ, который вы вводите, заменит символ под курсором.
R входит в режим замены неограниченно. Каждый вводимый вами персонаж заменяет символ под курсором и продвигает курсор на один.
s substitute - удаляет символ в текущей позиции курсора, а затем переходит в режим вставки
S удалите текущую строку, в которой находится текущий курсор, и введите режим вставки
<Esc> , <Cc> выйдите из режима вставки и вернитесь в нормальный режим
u расстегивать
<Cr> переделывать
dd , dw , dl , d$ отредактируйте текущую строку, от курсора до следующего слова или символ, текущую позицию до конца текущей строки соответственно, обратите внимание: D является эквивалентом d$
cc , cw , cl измените текущую строку, от курсора до следующего слова или символ, соответственно
yy , yw , yl , y$ yank («копировать») текущую строку, от курсора до следующего слова или символ, текущую позицию до конца текущей строки соответственно
p , P put ("paste") после или перед текущей позицией соответственно
o , O создать новую пустую строку, после или до текущей, и ввести режим вставки
:w записать текущий буфер на диск
:q! , ZQ бросить
:x :wq , ZZ писать и оставлять
:help открыть окно с помощью файла справки
:help {subject} показать справку по конкретному предмету
qz начните записывать действия для регистрации z , q до конца записи, @z чтобы воспроизвести действия. z может быть любой буквой: q часто используется для удобства. Подробнее: Макросы

Что делать в случае аварии

Vim сохраняет все несохраненные изменения в файле подкачки , дополнительный файл, который удаляется после внесения изменений путем сохранения. Имя файла подкачки обычно является именем редактируемого файла, которому предшествует a . и с суффиксом .swp (вы можете увидеть его с помощью :sw ).

Поэтому, если ваш процесс vim завершится до того, как у вас будет возможность сохранить свои изменения, вы можете восстановить свою работу, применив изменения, содержащиеся в файле подкачки, к текущему файлу с помощью параметра командной строки -r . Например, если myFile - это файл, который вы редактировали, используйте:

$ vi -r myFile

для восстановления незафиксированных изменений.

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

$ vi myFile
E325: ATTENTION
Found a swap file by the name ".myFile.swp"
...
Swap file ".myFile.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

Если вы выберете (R) ecover, будут применены изменения из swp файла, но файл подкачки не будет удален, поэтому не забудьте впоследствии удалить файл подкачки, если вы удовлетворены восстановлением.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow