Vim: рабочие режимы, хоткейсы и команды

Введение[править]

Здесь я делюсь опытом работы в Vim’е. Предполагается, читатель имеет установленные vi и vim, а также знаком с основами работы с UNIX-подобной системой.

Помнится, когда товарищ установил FreeBSD на мою домашнюю ЭВМ, некоторые файлы открывались непонятным мне образом. Я быстро старался избавиться от этого несчастья. Через некоторое время я понял, что происходит: в системе по умолчанию, в переменной окружения EDITOR, установлен редактор vi. Я сразу поменял его на ‘ee’ (easy editor). Это действительно простой редактор, затруднений с ним возникнуть просто не может, однако и особой свободы в нем не испытать. Вскоре его стало не хватать…

Описание работы с редактором я привожу в хронологическом порядке — от простого к сложному. Так как Vim на 99 % совместим с Vi, сначала я дам краткое описание работы с vi.

Легенда сокращений и специальных символов:

Строки, начинающиеся с символа "#" - командная строка;
<ESC> - нажатие клавишу Escape (Ctrl-[ или Ctrl-c);
<CR> - ... Enter;
<SHIFT> - ... Shift
^x - ... Ctrl-x

Расширенные инструкции

Объедините текущую строку со следующей. Объединить все выбранные строки. Заменить текущий символ следующим введенным символом. Такие как: Следить за Заменим текущего персонажа на Здесь Из сокращений: изменить от курсора до конца Здесь Сокращение: удалить от курсора до конца Здесь Сокращение: скопировать текущую строку Удалить символ под курсором и начать редактирование Удалить текущую строку и начать редактирование

Отступ вперед, одна строка или несколько строк, настройка диапазона, упомянутая выше,И т.д. Отступ назад, одна строка или несколько строк Формат, одна строка или несколько строк

Переключите регистр символов под курсором

Как открыть файл в нужной кодировке[править]

Автоматическиправить

При открытии файла Vim попытается определить кодировку, и открыть файл в этой кодировке. Для этого, в :

set encoding=utf-8                                  " set charset translation encoding
set termencoding=utf-8                              " set terminal encoding
set fileencoding=utf-8                              " set save encoding
set fileencodings=utf8,koi8r,cp1251,cp866,ucs-2le   " список предполагаемых кодировок, в порядке предпочтения

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

Например, можно вручную указать кодировку (MS Windows) уже открытому тексту:

:e ++enc=cp1251

Можно предварительно, перед открытием файла, указать ожидаемую кодировкуправить

Для этого нужно установить переменную (сокращенно ). Например, установить кодировку (unicode MS Windows):

:set enc=ucs-2le

После этого можно открывать файл. Он откроется в этой кодировке.

Пользовательское менюправить

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

set wildmenu
set wcm=<Tab>
menu Encoding.koi8-r  :e ++enc=koi8-r<CR>
menu Encoding.cp1251  :e ++enc=cp1251<CR>
menu Encoding.cp866   :e ++enc=cp866<CR>
menu Encoding.ucs-2le :e ++enc=ucs-2le<CR>
menu Encoding.utf-8   :e ++enc=utf-8<CR>
map <F12> :emenu Encoding.<Tab>

Перемещаться по пунктам пользовательского меню можно по или клавишами управления курсором.

0 Базовый старт

() Да Следующий текстовый редактор командной строки в системе, при непосредственном использовании Имя файла сопровождается

Два наиболее распространенных режима vi: |

Нормальный режим

Как вы выглядите, когда открываете файл?

В настоящее время вы можете напрямую использовать инструкции, упомянутые в этой статье, для манипулирования текстом.В это время вы нажимаете клавишу на клавиатуре, и она будет принята редактором и исполнена как инструкция вместо ввода в текст. Если вы печатаете напрямую Сохранить и выйти из файла. Хранить текст Выйти из текста. Если вы вносите изменения в текст, это не может быть завершено. Нужно следующее: Выход без сохранения текста Сохранить и выйти из текста

Показать номер строки Нет номера строки

Подсветка синтаксиса (если поддерживается) Формат документа, с приведенным выше утверждением

Режим ввода

Нажмите на инструкцию Начните печатать в позиции курсора, в это время будет Подсказка указывает, что режим в настоящее время вводится. В это время все ключевые операции вашей клавиатуры будут записаны в текст. Для переключения на Просто нажмите в левом верхнем углу клавиатуры Кнопка.

How to Save a File in Vim / Vi and Quit the Editor

26 Апреля 2020
&vert;

Терминал

В этом руководстве объясняется, как сохранить файл в Vim / Vi и выйти из редактора.

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

Vim или его предшественник Vi предустановлен на MacOS и почти во всех дистрибутивах Linux. Знание основ Vim поможет вам, когда вы столкнетесь с ситуацией, когда ваш любимый редактор недоступен.

Vim режимы

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

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

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

Открыть файл в Vim / Vi 

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

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

Сохранить файл в Vim / Vi 

Команда для сохранения файла в Vim есть .

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

  1. Нажмите
  2. Нажмите

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

Чтобы сохранить файл под другим именем, введите и нажмите .

Сохранить файл и выйти из Vim / Vi 

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

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

  1. Нажмите
  2. Нажмите

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

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

Выйти из Vim / Vi без сохранения файла 

Чтобы выйти из редактора, не сохраняя изменения, перейдите в обычный режим, нажав , введите и нажмите .

  1. Нажмите
  2. Нажмите

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

10 способов выйти из VIM / VI

Это вопрос, который довольно часто появляется в наших комментариях к статьям о командной строке … как вообще выйти из VIM? Оказывается, существует буквально 10+ способов выйти из VIM, что, возможно, указывает на то, почему VI сбивает с толку так много пользователей. Давайте сначала перейдем к самым простым методам:

Выйти из VIM без сохранения с помощью ZQ

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

Нажмите клавишу ESCAPE, затем нажмите SHIFT + ZQ.

Это приведет к немедленному выходу из VIM без сохранения, в основном так же, как: q! команда.

Быстрый выход из VIM с помощью функции записи и сохранения в файл

Нажмите клавишу ESCAPE, затем SHIFT + ZZ

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

Закройте VIM с помощью: q

Нажмите клавишу ESCAPE, затем введите: q и нажмите RETURN.

Чтобы быть предельно ясным, нажатие клавиши «Escape» переходит в командный режим. Затем введите: q буквальное значение, как двоеточие, а не точку с запятой, поэтому это будет Shift +; с последующим q и нажатием клавиши Return вводится команда выхода.

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

Нажмите клавишу ESCAPE, затем введите: q! и нажмите RETURN

Закройте VIM и запишите изменения с помощью: wq

Нажмите ESCAPE, введите: wq и нажмите RETURN.

Это сохраняет (записывает) изменения в активный файл и завершает работу. Вы можете заставить это сделать это, добавив при необходимости челку:

Нажмите ESCAPE и введите: wq! за которым следует клавиша RETURN

Это должно помочь избежать такой ситуации:

Все возможные способы выйти из VIM

Нажмите клавишу ESCAPE, чтобы сначала войти в командный режим, затем используйте любое из следующих действий:

  • : q — выйти
  • : q! — выйти без сохранения, даже если изменено
  • : cq — всегда выходить без записи
  • : wq — записать / сохранить текущий файл и выйти
  • : wq! — записывать текущий файл и всегда выходить
  • : wq (имя) — записать в файл (имя) и выйти
  • : wq! (имя) — записать в файл (имя) и выйти всегда, даже если он был изменен
  • ZZ — сохранить текущий файл, если он был изменен, затем выйти
  • ZQ — выйти и выйти без сохранения
  • Запустите новый терминал и введите killall vim — это шутка, которую многие поймут, и, хотя это не лучший способ выйти из vim, она работает

Так вот как выйти из VIM, менее запутавшись? Возможно, нет, и это нормально, мы обычно будем использовать nano здесь для пошаговых руководств, потому что он более удобен для пользователя. И в этом нет ничего плохого, хотя со временем я стал более комфортно работать с VIM, я все еще предпочитаю нано из-за легкости и, возможно, старых упрямых привычек.

Для тех, кто заинтересован в изучении VIM или, по крайней мере, становится более комфортно с ним, вы всегда можете попробовать команду vimtutor, использовать это отличное интерактивное онлайн-руководство по VIM и просто получить больше практики, часто используя его на любом терминале. Вы даже можете установить vim на свой iPad или iPhone, если действительно заинтересованы. По крайней мере, вы знаете, как выйти из vi, верно?

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

Команды для движения курсора

Помимо клавиш-стрелок для движения курсора можно использовать клавиши h, j, k и l. Они будут сдвигать курсор соответственно влево, вниз, вверх и вправо. Этими командами можно воспользоваться, если (по какой-либо причине) клавиши-стрелки действуют неправильно. Команда w перемещает курсор на начало следующего слова; команда b перемещает курсор на начало предыдущего слова.

Команда 0 (клавиша ноль) перемещает курсор на начало текущей строки, а команда $ перемещает курсор в её конец.

При редактировании больших файлов для „перелистывания“ целых экранов вперёд (т. е. вниз) и назад (вверх) используются команды соответственно Ctrl-F и Ctrl-B.

Для перемещения курсора в конец файла, используется команда G, а команда 10G, например, поместит курсор на строку с номером 10. Для того, чтобы переместить курсор в начало файла, можно использовать команду 1G.

Команды движения курсора можно совмещать с  другими командами, например, с командами удаления текста. Например, команда d$ удалит все, что находится между текущим положением курсора и концом строки; команда dG удалит все, что находится между текущим положением курсора и концом файла и т. д.

Советы и рекомендации

Нумерация строк

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

Переход к новой строке осуществляется посредством или . Все переходы запоминаются в лист переходов, для более подробной информации смотрите .

Проверка орфографии

Проверку орфографии в Vim можно включить с помощью:

set spell
Действие Команда
следующая ошибка
предыдущая ошибка
предложения для исправления
добавить правильное написание
добавить правильное написание (на сеанс)
добавить неправильное написание
добавить неправильное написание (на сеанс)
повторить проверку орфографии во всем файле

Совет:

  • Чтобы включить проверку сразу для двух языков (например, английского и русского), добавьте в или и перезапустите Vim.
  • Вы можете включить проверку орфографии для конкретных типов файлов (например .txt), используя плагин FileType и собственное правило для определения типа файла. Чтобы включить проверку орфографии для всех файлов, оканчивающихся на .txt, создайте файл и вставьте туда строку: . Далее, вставьте строку в файл или и перезапустите Vim. Или поместите строку в или и перезапустите Vim. Не забудьте отредактировать строчку (specifically ), чтобы включить соответствующие типы файлов для проверки орфографии.
  • Чтобы включить проверку орфографии только для документов LaTeX (или TeX), добавьте в файл или и перезапустите Vim.

Запуск Vim по команде vi

Создайте для на .

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

Возврат каретки DOS/Windows

Если вы видите последовательность в конце каждой линии, это означает, что вы редактируете текстовый файл, который был создан в MS-DOS или Windows. Дело в том, что в Linux для переноса принято использовать один символ новой строки (LR), тогда как в системах Windows/MS DOS для той же цели используется последовательность из двух символов: возврата каретки (CR) и новой строки (LR). Как раз эти символы возврата каретки и отображаются в виде .

Для удаления всех символов возврата каретки из файла, выполните:

:%s/^M//g

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

Также вы можете просто установить пакет и исправлять файлы командой .

Примечание: Другой простой способ заключается в изменении опции . Используйте для преобразования файлов с окончанием строки DOS/Windows в файлы с окончанием строки Unix. Для того, чтобы сделать обратное, просто используйте .

Пустое пространство в нижней части окон gVim

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

Решение заключается в регулировании количества места, которое будет резервировать в нижней части окна gVim. Поместите следующую строку в :

set guiheadroom=0

Примечание: Установив значение 0, вы не сможете видеть горизонтальную полосу прокрутки внизу окна.

Начнем с примера

Типичная сессия работы с Vim выглядит так:

#vim httpd.conf

В открывшемся редакторе:

/SSLVerif
nwr1ZZ

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

  • Открыть файл «httpd.conf»
  • Открыть диалог поиска
  • Ввести «SSLVerif».
  • С помощью кнопки «Далее», перейти ко второму по счету вхождению искомой строки.
  • Поставить курсор в нужном месте
  • Удалить «0» и напечатать «1»
  • Сохранить изменения
  • Закрыть файл

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

  • / — Перейти в режим поиска
  • Kлавиша Enter — Искать’.
  • n — Перейти к следующему вхождению искомой строки
  • w — Переместить курсор к следующему слову
  • r — Заменить знак под курсором
  • ZZ — Сохранить изменения и выйти
  • ZQ — Выйти без сохранения изменений

Быстрый старт

Итак, вам срочно понадобилось отредактировать какой-либо конфигурационный файл и под рукой нет знакомых консольных текстовых редакторов, только Vi (Vim)? Предлагаем следующий алгоритм действий, который выручит вас в данной ситуации:

1. Открываем файл в текстовом редакторе командой vi /путь/имя_файла, например:

Команда sudo используется в том случае, если для открытия файла нужны повышенные привилегии (например, редактирование системных конфигурационных файлов). Указанный файл откроется в текстовом редакторе:

2. Перемещаем курсор по тексту с помощью стрелок или клавиш h (влево), l (вправо), j (вниз), k (вверх) до нужного места в тексте.

3. Переводим открытый файл в режим редактирования текста нажатием клавиши i (раскладка клавиатуры должна быть англоязычной). В результате в нижней части экрана появится индикация режима работы — INSERT:

4. Вносим в текст необходимые корректировки.

5. Выходим из режима редактирования нажатием клавиши Esc — индикатор INSERT в нижней части экрана должен исчезнуть.

6. Теперь необходимо закрыть файл, сохранив внесенные изменения. Для этого набираем:

Данный набор символов также должен отобразиться в нижней части окна. Буква w помогает сохранить файл на диск (write), q — завершить работу редактора (quit):

Русский ферштейн?

Наверное, самый главный отталкивающий фактор в освоении Вима, с которым сталкиваются все русскоговорящие программные инженеры — Русский язык. Не то, чтобы у меня была какая-то неприязнь к великому и могучему, но она есть у нашего редактора, причём ко всем языкам, отличным от Английского.

Вим обходит системные драйвера клавиатуры и сам обрабатывает ввод. Хорошая новость состоит в том, что это делает его самым быстрым и отзывчивым редактором среди конкурентов. Плохая новость — он считывает не нажатие клавиши, а введённые символы. Результирует это в том, что команды нормального режима (и много что ещё) на других раскладках не работают.

Лекарство для этой болезни искали люди давно, так как вечно ручками дёргать язык ввода неудобно. Когда появились более близкие к системе штуки, такие как gVim и MacVim, они тоже не справились (и не особо пытались). Поэтому на данный момент есть пара костылей:

Langmap

Наверное, при поиске решения в интернете, вы натыкались на строчки подобного характера:

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

Keymap

Существует чуть более адекватный стандартный способ переключения раскладки:

Теперь вам просто нужно при входе в редактор удостовериться, что системная раскладка — английский и… научиться переключать язык по … Да, это сочетание клавиш можно переназначить. Нет, не на ту же комбинацию клавиш, что и системое переключение.

Помимо того, что вам придётся привыкать к переключению языка разными командами в разных программах, он также не работает в режиме замены. Но это универсальный, кроссплатформенный способ, а как скрыть отображение текущего (и скорее всего единственного) Keymap мы уже рассмотрели.

Xkb-switch

А теперь победным маршем добавим эти строчки в конфиг:

И все ваши проблемы решены. В основном потому что мы это сделали заранее. Помните строчку из настройки Airline, упоминавшую Xkb-switch? По дефолту наш статус бар показывает номер текущей раскладки, но (по крайней мере у меня) это заставляло скроллинг в Виме безбожно зависать вплоть до полной остановки работы, поэтому мы это просто отключили.

Теперь наш верный друг должен работать с разными раскладками как любой другой современный редактор. При переходе в режим вставки Xkb-switch будет переключать раскладку с английской, на последнюю, вами использованную и vice versa. Также он умеет автоматически адаптировать ваши сочетания клавиш под новые раскладки. Однако командный режим и режим замены снова за бортом.

Открываем файл

Перед использование Vi для редактирования файлов вам следует узнать, как в Vi перемещаться по файлу. У Vi множество команд перемещения, многие из них мы сейчас рассмотрим. Для этой части обучения найдите какой-нибудь малоценный текстовый файл (TODO: лучше на английском) и загрузите его в Vi напечатав:

vi myfile.txt

Если у вас установлен Vim, наберите в консоли:

vim myfile.txt

Если вы предпочитаете использовать GVim:

gvim myfile.txt

myfile.txt должно быть именем текстового файла в вашей системе.

Внутри Vi

После загрузки Vi, на экране вы должны увидеть часть загруженного вами текстового файла. Поздравляю — вы уже в Vi! В отличии от большинства редакторов, загрузившись, Vi находится в специальном режиме, называемом «командным режимом». Это значит, что если вы нажмете клавишу <l>(строчная L), вместо появления «l» на месте курсора вы увидите, что курсор всего лишь сдвинулся на один символ вправо. В командном режиме знаки, набираемые на клавиатуре, используются как команды для Vi, а не как помещаемые в текст символы. Один из наиболее важных типов команд — это команды перемещения. Давайте рассмотрим некоторые из них.

Сохранение, Выход & Shell Escaping

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

  • :w запишет файл;
  • :wq запишет файл и выйдет из него;
  • :q! выйдет из редактора и сбросит все изменения;
  • :w someFileName сохранит изменения в файле под названием someFileName.

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

:!command

Формулировка в данном формате выполнит любую команду, которую мы укажем после восклицательного знака. Это может быть оболочка :!bash , которая может быть использована для выхода и возврата в Vim, или :!ls /etc , которая используется, чтобы просмотреть содержание директории /etc.

Режим Insert

В этом видео мы с вами поговорим про режим ввода — и наконец-то попишем код.

Важный момент. Настоящий вимер в режиме ввода только вводит текст. Редактирование текста он должен производить с помощью возможностей других режимов.

Если вы будете постоянно находиться в режиме ввода и редактировать текст тоже в нём, вы будете тратить время впустую. Запомните — в режиме ввода мы только вводим текст. Максимум, что тут можно сделать дополнительно, — нажать Backspace, когда вы случайно опечатались. Остальные изменения привыкайте вносить в других режимах. Перемещаться по файлу тоже следует не в режиме ввода, а в командном или каком-то другом режиме.

Есть несколько способов перейти из командного режима в режим ввода. Первый, самый простой, — клавиша i. Нажав её, вы получите возможность вводить текст в месте, где находится курсор. Чтобы выйти из режима ввода, достаточно нажать Esc — так вы вернётесь в командный режим.


Insert-режим

  • Если вы хотите начать ввод со следующего после курсора символа, введите a.
  • Чтобы заменить текущий символ и перейти в режим ввода, нажмите s.
  • Чтобы начать ввод с новой строки ниже — нажмите клавишу o, с новой строки выше — Shift + o.
  • Перейти в режим ввода и сразу перебросить курсор на конец строки — Shift + a.
  • Удалить всё от курсора и до конца строки и войти в режим ввода — Shift + c.
  • Удалить строку и сразу перейти в режим ввода — cc.

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

Однако можно начать печатать с начала текущей строки — для этого нажмите Shift + i.

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

КАК ИСПОЛЬЗОВАТЬ РЕДАКТОР VIM

Начнем мы, как обычно с запуска программы, а также опций, которые ей можно передать. Синтаксис Vim очень прост:

$ vim опции имя_файла

Или:

$ vi опции имя_файла

Простой запуск vim без указания имени файла приведет к созданию пустого файла. А теперь давайте рассмотрим основные опции запуска:

  • +номер — переместить курсор к указной строке после запуска.
  • +/шаблон — выполнить поиск по шаблону и переместить курсор к первому вхождению
  • «+команда» — выполнить команду после запуска программы
  • -b — двоичный режим, для редактирования исполняемых файлов.
  • -d — режим поиска различий в файлах, нужно указать несколько файлов для открытия.
  • -g — графический режим.
  • -n — не использовать автосохранение для восстановления файла при сбое.
  • -R — режим только для чтения.
  • -w — сохранить все действия в файл.
  • -x — шифровать файл при записи.
  • -C — режим совместимости с Vi.

Круто, правда? Но это только начало. Опции ничего по сравнению с командами редактора.

Сохранение и редактирование

Save(сохранить) и Save as…(сохранить как…)

Мы уже видели, как используя ex-команду :q выйти из vi.

  • :w – записать или сохранить файл;
  • :w filename – для сохранение под другим именем;
  • :x или :wq – сохранить и выйти.

В Vim (и других потомках Vi, типа elvis), вы можете держать открытыми одновременно несколько буферов. Введите команду

  • :sp filename.txt для открытия файла filename.txt в новом окне;
  • :sp (без имени файла) откроет дополнительное окно для активного буфера.

Для перехода между окнами нажмите <C-w>,<C-w> (дважды <Ctrl>+<w>). Любая из команд :q, :q!, :w и :x относиться только к активному окну.

Простое редактирование

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

  • х – удаление символа под курсором;
  • J – присоединение следующей стоки к текущей;
  • r+символ – замена символа на символ;
  • dd – удаление текущей стоки.

Повторение и удаление

Повторить любую команду редактирования вы можете нажимая клавишу <.> (точка). Если попробуете, то можете увидеть, что печать dd… удалит 4 строки, а J…… объединит семь строк. Как обычно, Vi обеспечивает вас различными удобными средствами сокращения трудозатрат.

Удалять текст вы можете также комбинируя команду d с любыми командами перемещения. Например, dw удалит часть текста от текущей позиции курсора до начала следующего слова; d) удалит вплоть до следующего конца предложения, и d} удалит весь остаток абзаца. Поэкспериментируйте с командой d и другими командами редактирования, пока не почувствуете себя с ними уверенно.

Как открыть файл в нужной кодировке

Автоматически

При открытии файла Vim попытается определить кодировку, и открыть файл в этой кодировке. Для этого, в :

set encoding=utf-8                                  " set charset translation encoding
set termencoding=utf-8                              " set terminal encoding
set fileencoding=utf-8                              " set save encoding
set fileencodings=utf8,koi8r,cp1251,cp866,ucs-2le   " список предполагаемых кодировок, в порядке предпочтения

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

Например, можно вручную указать кодировку (MS Windows) уже открытому тексту:

:e ++enc=cp1251

Можно предварительно, перед открытием файла, указать ожидаемую кодировку

Для этого нужно установить переменную (сокращенно ). Например, установить кодировку (unicode MS Windows):

:set enc=ucs-2le

После этого можно открывать файл. Он откроется в этой кодировке.

Пользовательское меню

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

set wildmenu
set wcm=<Tab>
menu Encoding.koi8-r  :e ++enc=koi8-r<CR>
menu Encoding.cp1251  :e ++enc=cp1251<CR>
menu Encoding.cp866   :e ++enc=cp866<CR>
menu Encoding.ucs-2le :e ++enc=ucs-2le<CR>
menu Encoding.utf-8   :e ++enc=utf-8<CR>
map <F12> :emenu Encoding.<Tab>

Перемещаться по пунктам пользовательского меню можно по или клавишами управления курсором.

Кривая обучения того стоит

Использование vi немного похоже на использование фортепиано. Вы не можете просто сесть и использовать его; вам нужно немного попрактиковаться. Сидеть холодно и пытаться учиться на лету, когда на вас давление, чтобы что-то отредактировать, — не лучший способ это сделать. Это так же логично, как впервые сесть за пианино, когда поднимается занавес перед вашим инаугурационным концертом.

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

А пока, если вы окажетесь в vi и просматриваете важный файл, просто: q! и изящно выйдите. Ваш важный файл будет вам благодарен.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: