Разное

Редактор vim команды: Как пользоваться текстовым редактором vim

Содержание

Как пользоваться текстовым редактором vim

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

В операционной системе Linux есть несколько текстовых редакторов, которые работают в терминале. Чаще всего новички используют редактор nano, но если вы заметили на нашем сайте во всех статьях используется текстовый редактор vi. Nano неудобный, и недостаточно функционален. Я сознательно не пишу в своих статьях о nano. Есть намного лучший текстовый редактор, это редактор vi. Здесь поддерживается быстрое перемещение по тексту, удобное редактирование, команды для изменения настроек работы, выполнение команд терминала из редактора, а также плагины для расширения функциональности. Но он немного сложный для новичков и очень непривычный.

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

Содержание статьи:

Минимальные основы

На данный момент существует две версии редактора — vi и vim. Vim расшифровывается как Vi Improved, улучшенный vi. Это новая версия, которая принесла очень много улучшений. В большинстве современных дистрибутивов используется именно она. Поэтому если я буду писать vi, это значит, что я предполагаю использование vim.

Текстовый редактор Vim может работать в двух режимах. Это и есть его главная особенность. Первый режим, который используется по умолчанию при открытии редактора — это командный. В этом режиме вы можете вводить команды vi, а также использовать символьные клавиши для управления редактором. Второй режим — обычное редактирование текста, он работает так же как и редактирование текста в nano. Для переключения в командный режим используется клавиша Esc. Для переключения в режим редактирования — клавиша i. Если вас интересует только как в редакторе vi сохранить и выйти, листайте вниз, но если вы хотите узнать как пользоваться текстовым редактором vim, эта статья для вас.

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

vimtutor

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

Как использовать редактор Vim

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

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

Или:

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

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

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

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

Командный режим Vim

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

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

  • h — на один символ влево;
  • l — на один символ вправо;
  • j — на одну строку вниз;
  • k — на одну строку вверх;
  • w — на слово вправо;
  • b — на слово влево;
  • H — перейти в низ экрана;
  • G — перейти в конец файла;

Можете запустить редактор и поэкспериментировать, чтобы было легче понять как это работает. Если перед тем как нажать кнопку буквы нажать цифру, то эта команда будет повторена несколько раз. Например, 3j переведет курсор на три строки вверх.

Для переключения в режим редактирования используются такие команды:

  • i — вставить текст с позиции курсора, символ под курсором будет заменен;
  • I — вставить текст в начало строки;
  • a — добавить текст начиная от позиции курсора;
  • o — вставить новую строку после этой и начать редактирование;
  • O — вставить новую строку перед этой и начать редактирование;
  • r — заменить текущий символ;
  • R — заменить несколько символов.

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

Более сложны команды редактирования текста. Вы можете править текст не только в обычном режиме, но и в командном с помощью команд. Для этого применяются такие команды:

  • d — удалить символ;
  • dd — удалить всю строку;
  • D — удалить символы начиная от курсора и до конца строки;
  • y — копировать символ;
  • yy или Y — скопировать всю строку;
  • v — выделить текст;

Эти команды редактора vim работают немного по-другому после нажатия одной из них ничего не произойдет. Мы еще можем задать количество символов, к которым будет применена команда и направление, с помощью кнопок перемещения курсора. Например, чтобы удалить два символа справа от курсора нажмите d3l, а чтобы удалить три строки вниз — d3j. Команды yy, dd, Y — не что иное, как сокращения.

Кроме этих команд, есть еще несколько полезных, которые мы не можем не рассмотреть:

  • p — вставить после позиции курсора;
    P — вставить перед позицией курсора;
  • u — отменить последнее действие;
  • . — повторить еще раз последнее действие;
  • U — отменить последнее действие в текущей строке;
  • /шаблон — искать вхождение;
  • %s/шаблон/заменить — заменить первое слово на второе;
  • n — продолжить поиск вперед;
  • N — продолжить поиск назад;

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

Командная строка Vim

Командная строка Vim запускается в командном режиме нажатием двоеточия — «:«. Здесь доступны команды для сохранения файла и выхода из редактора, настройки внешнего вида и взаимодействия с внешней оболочкой. Рассмотрим наиболее часто используемые команды редактора vim:

  • :w — сохранить файл;
  • :q — закрыть редактор;
  • :q! — закрыть редактор без сохранения;
  • :e файл — прочитать содержимое файла в позицию курсора;
  • :r файл — вставить в содержимое файла в следующую строку;
  • :r! — выполнить команду оболочки и вставить ответ в редактор;
  • :set переменная=значение — установить значение переменной, например, tabstop=4, или set number, с помощью этой команды можно управлять многими аспектами работы vim.
  • :buffers — посмотреть открытые файлы.

Со всеми основами разобрались, и вы теперь использование vim не будет казаться вам таким сложным. Но это еще далеко не все, этот мощный редактор может еще очень многое. Дальше мы рассмотрим несколько примеров использования vim, чтобы вам было легче справиться с новой программой.

Редактирование файла в Vim

Несмотря на то, что из всего вышесказанного можно понять как это делается рассмотрим еще раз. Чтобы открыть файл выполните:

vim имя_файла

Затем, если вы не хотите пока использовать возможности командного режима просто нажмите i, чтобы перейти в режим редактирования. Здесь вы можете редактировать файл так же, как и в nano. После того как завершите нажмите Esc, чтобы перейти в командный режим и наберите :wq. Записать и выйти. Все, готово.

Поиск и замена в Vim

Довольно часто нам нужно найти определенную последовательность в тексте. Текстовый редактор Vim умеет это делать.

Во-первых, если нужно найти символ в строке, нажмите f и наберите нужный символ, курсор будет перемещен к его позиции.

Для поиска по всему файлу используйте команду /. После нее нужно ввести слово, которое нужно найти. Для поиска следующего вхождения используйте n, для предыдущего — N.

Для замены будет использоваться немного другая конструкция:

:%s/искать/заменить/g

Двоеточие запускает командную оболочку с командой s для замены. Символ % означает что обрабатывать нужно весь файл, а g значит, что нужно обработать все найденные строки, а не только первую. Чтобы программа спрашивала перед каждой заменой можно добавить в конец строки опцию c.

Одновременное редактирование нескольких файлов

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

vim файл1 файл2 файл3

Редактор vim linux откроет первый файл, для переключения ко второму используйте команду :n, чтобы вернутся назад :N.

С помощью команды :buffers вы можете посмотреть все открытые файлы, а командой :buffer 3 переключится на третий файл.

Буфер обмена Vim

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

  • Нажмите Esc, чтобы перейти в командный режим;
  • Наберите 4yy чтобы скопировать четыре строки;
  • Переместите курсор в место где нужно вставить эти строки;
  • Нажмите p для вставки.

Также можно использовать выделение vim, чтобы скопировать строки. Выделите текст с помощью v, а затем нажмите y, чтобы скопировать.

Кириллица в Vim

Кириллица в Vim работает превосходно. Но есть одно но, когда включена кириллица в системе, все команды vim не работают, им и не нужно работать, они же не приспособлены для кириллицы.

Но переключать каждый раз раскладку, когда работаете в командном режиме тоже не очень удобно, поэтому открываем файл ~/.vimrc и добавляем туда такие строки:

set keymap=russian-jcukenwin
set iminsert=0
set imsearch=0

Теперь раскладка клавиатуры в командном режиме переключается по Ctrl+^ и все команды работают.

Выводы

В этой статье мы рассмотрели как пользоваться текстовым редактором vim. Это еще далеко не все его возможности, но теперь вы можете уверенно обращаться с редактором и забыть о nano. Более подробно о настройке Vim читайте тут. А вы уже пользуетесь Vim? Или другим редактором? Напишите в комментариях!

Еще немного информации по использованию Vim можно почерпнуть из видео:

Редактор VIM как пользоваться, инструкция команд

Vim — один из наиболее функциональных текстовых редакторов для интерфейса командной строки. Построенный на основе “vi”, редактора 1976 года, vim мощнее и обладает дополнительными возможностями, сохраняя подход своего предшественника к работе с текстами.

Установка

Редактор есть практически в любом стандартном репозитории каждого дистрибутива Linux. Воспользуйтесь своим установщиком пакетов (например, yum для CentOS):

sudo yum install vim

После этого vim должен корректно установиться.

Запуск Vim

Если не указывать никаких агрументов открывается пустой файл. В зависимости от вашего дистрибутива могут присутствовать представление и информация о лицензии.
Когда вы начнете пользоваться редактором, они пропадут. Чтобы открыть файл, укажите его имя. Например, далее мы создадим файл “newfile” и откроем его в vim.

Создание файла:

echo "Это новый файл.
Вот вторая строчка,
А это третья.

Здесь ещё немного текста. Мы будем работать с этим файлом.

Это будет очень здорово." >> newfile

Открытие файла при помощи vim:

vim newfile

Режимы работы

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

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

Режим по умолчанию, в котором vim находится после запуска. Применяется для быстрой навигации по документу и редактирования: в нем можно копировать, вставлять, перемещать, удалять и изменять текст. Переход из других режимов осуществляется нажатием клавиши «escape». Для набора текста не используется.

Режим вставки

Для набора текста нужно перейти в режим “вставки”. Он похож на интерфейс набора текста многих других программ. Вводимый вами текст появляется на экране в документе, каждая клавиша соответствует своему символу. Перейти в этот режим можно следующим образом:

i — в текущем положении курсора
a — на следующем символе после текущего положения
I — в начале текущей строки
A — в конце текущей строки

Режим визуального выделения

Позволяет визуально выделять текстовые фрагменты. Затем к ним можно применять команды нормального режима для редактирования или форматирования.

v — режим обычного (посимвольного) визуального выделения перемещением курсора вверх, вниз, влево или вправо

V — режим построчного визуального выделения. Строки выделяются целиком перемещением вверх или вниз

[ctrl]-v — режим блочного визуального выделения. Выделяется прямоугольный участок, который можно увеличивать и уменьшать. Позволяет выбирать фрагменты нескольких линий.

Перемещение

Вы всегда можете передвигаться по документу стрелками, но vim предоставляет более быстрый и удобный способ. В нормальном режиме для навигации применяются следующие клавиши:

h — перемещение влево
j — перемещение вниз
k — перемещение вверх
l — перемещение вправо

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

Также есть дополнительные функции навигации, вот несколько наиболее важных:

gg — переход в начало документа
G — переход в конец документа. Если предварительно ввести номер — переместиться на строку с этими номером
w — перемещение к следующему слову. Если предварительно ввести количество — переместиться на это количество слов
b — перемещение к предыдущему слову. Если предварительно вввести количество — переместиться на это количество слов назад
e — перемещение к концу слова. Если предварительно указать количество — переместиться на указанное количество слов
0 — перемещение к началу строки
$ — перемещение к концу строки

Поиск текста

Что бы найти фрагмент текста, нужно перед текстом поиска ввести слэш «/» и нажать enter

/это 

По умолчанию поиск в vim регистрозависимый, для того что бы сделать поиск независимый от регистра, нужно перед текстом ввести следующую комбинацию "/\c"
/\cэто

Если же наоборот нужно сделать явное задание регистрозависимого поиска используйте комбинацию «/\C»

/\СЭто будет

Что бы найти следующий фрагмент нажмите «n» предыдущий «N»

Редактирование

Редактирование выполняется посредством команд в нормальном режиме. Они очень эффективны в комбинации с командами перемещения. Любая команда из раздела перемещения может задать направление. Например, можно удалить или скопировать одно слово, указав “w” за соответствующей командой.

Рассмотрим наиболее употребимые действия.

Удаление текста

x — удалить символ на позиции курсора
d — удалить в заданном командой перемещения направлении. Например, “dl” удаляет один символ справа
dd — удалить строку
D — удалить все символы от положения курсора до окончания строки

Замена текста

r — заменить символ на позиции курсора заданным после команды символом
c — заменить в заданном командой перемещения направлении. Например, “cb” заменяет предыдущее слово. Для набора текста на замену запускается режим вставки.
C — заменить до окончания строки. Текст на замену набирается в режиме вставки.

Копирование и вставка

y — копировать в заданном далее направлении
yy — копировать всю строку
Y — копировать до окончания строки
p — вставить последнюю скопированную (или удаленную!) строку ниже текущей
P — вставить последнюю скопированную (или удаленную!) строку выше текущей

Дополнительные команды редактирования

u — отменить последнее действие
<ctrl>-r — вернуть последнее отмененное действие
J — присоединить строку ниже к текущей

Командный режим

Используется для продвинутого редактирования, изменения параметров и управления. В нем выполняется сохранение, выход из программы, продвинутый поиск и многое другое. Активируется клавишей двоеточия “:”.

Команды управления

Команды управления задаются вводом “:” перед каждой командой.

:q — выход из программы. Действие не будет выполнена, если не сохранить изменения
:q! — выход из программы с отменой всех изменений, которые не были сохранены
:w — сохранить изменения. При первичном сохранении или сохранении в другой файл укажите имя через пробел
:e — редактировать указанный далее файл
:bn — редактировать следующий файл (если открыто несколько файлов)
:bp — редактировать предыдущий файл (если открыто несколько файлов)
:qw – сохранить файл и выйти

Объединение команд

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

Например, для копирования 5 слов представьте эту фразу как команды, которые понимает vim. Это будет выглядеть так:

:y5w (y — копировать, 5 — количество, w — слов)

Удалить текст от текущей позиции до окончания файла:

:dG (d — удалить, G — переход в конец файла)

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

:yy

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

:C

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

:2C

Заключение

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

vimtutor

В нем не рассматриваются тонкости, но он позволит вам разобраться в работе vim и освоить основы редактирования.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Команды редактора Vim | Losst

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

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

Содержание статьи:

Что такое команды Vim

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

Чтобы активировать расширенный режим редактора (Ex), его нужно запустить с опцией -e. Или для выполнения одной команды нужно ввести двоеточие. Синтаксис команд расширенного режима такой:

[адрес] [команда] [!] [параметры]

Все части команды необязательны, в определенной команде может использоваться только одна или несколько из них. Чтобы перечислить несколько команд подряд используйте символ «|». А теперь рассмотрим детальнее что означает каждый из этих пунктов:

  • Адрес — указывает набор данных, над которыми будет выполнять операции команда. Можно указать адрес начала и конца фрагмента, адресовать только внутри строки и многое другое;
  • Команда — сама команда, которая сообщает программе что ей нужно сделать;
  • ! — в некоторых командах список аргументов отделен восклицательным знаком;
  • Параметры — команда может принимать различные параметры, чтобы определить что нужно делать с теми или иными данными, например, файл, флаги, регулярные выражения и так далее.

Это все довольно сложно, поэтому хватит теории и перейдем сразу к практике, где все сразу станет на свои места.

Команды редактора Vim

А теперь давайте рассмотрим команды vi в расширенном режиме. Все команды отсортированы в алфавитном режиме.

abbreviate

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

ab без параметров показывает все созданные аббревиатуры:

:ab

Создадим аббревиатуру, которая будет заменять tst на test:

:ab tst test

Дальше просто вводите текст в режиме редактирования.

append

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

:append

Также можно добавить знак восклицания, он заставит команду начать вставку с новой строки:

:append!

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

:1append

args

Позволяет отобразить список файлов, которые сейчас редактируются:

:ar

 

 

buffers

Отображает список активных буферов (открытых файлов):

:buffers

buffer

Переключает в указанный буфер, например, чтобы переключиться в первый буфер выполните:

:buffer 1

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

cd

Команда cd позволяет изменить текущий каталог программы. В параметрах ей нужно передать путь:

:cd /tmp

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

copy

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

[адрес]copy адрес_вставки

Например, скопируем первых четыре строки, нумерация начинается с нуля, и вставим их после четвертой:

:0,3copy3

Чтобы указать адрес диапазона используйте запятую.

edit

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

:edit file
:buffers

file

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

:file tutor

global

Команда global позволяет выполнять поиск по регулярному выражению в документе. Ей можно передать диапазон строк, в которых нужно искать. Синтаксис:

:[адрес] global /выражение/параметры

Например, такая команда выведет все вхождения слова Vim во всем документе:

:g/Vim/

А эта только в первых пяти строчках:

:0,5g/Vim/

join

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

:0,10join

Или

:0join10

list

Отображает все символы текущей или указанной в адресе строки визуально недвусмысленным образом. Табуляции отображаются в виде ^I, конец строки — $. Флаг # позволяет включить нумерацию строк.

:list

map

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

Например, создадим макрос для отображения номеров строк:

:map sn :set number<Enter>

После этого достаточно набрать sn.

mark

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

:mark x

 

Также можно указать адрес строки, для которой вы хотите создать метку. Затем, чтобы перейти к метке, просто наберите в командном режиме:

ʼx

move

Команда позволяет переместить часть текста по указанному адресу. Если адрес не указать, то текст перемещается в начало. Например, переместим строки 4, 5 и 6 в начало:

:4,6move0

 

next

Перейти к редактированию следующего файла в списке аргументов:

:next

number

Позволяет отобразить нужное количество строк, начиная с текущей, вместе с их номерами:

:number 5

put

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

:put

read

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

:read file

rewind

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

:rewind

set

Это одна из самых часто используемых команд. Она позволяет установить значение переменных, которые во многом определяют поведение редактора. Если параметров не задать, то будут выведены все существующие переменные. Синтаксис команды:

:set имя_переменной=значение

Чтобы получить все возможные переменные наберите:

:set all

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

:set number

 

Или отключаем показ номеров строк:

:set nonumber

shell

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

:shell

source

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

:source ~/vimrc

substitute

Это команда для поиска строки по всему документу или в заданном диапазоне и замены ее на нужную. Вот ее синтаксис:

:[адрес]s/шаблон_поиска/на_что_заменить/опции

По умолчанию будет заменено только первое вхождение.

:s/Vim/vi/i

Чтобы заменить все найденные нужно добавить опцию g:

:s/Vim/vi/gi

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

unabbreviate

Удаляет все ранее созданные сокращения с помощью команды ab. Например, удалим аббревиатуру tst:

:unabbreviate tst

undo

Отменяет последнее изменение или несколько изменений. Нельзя только отменять команду edit и системные команды.

:undo

unmap

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

:unmap sn

write

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

:w

wq

Аналогично команде write, только после записи завершает сеанс работы с редактором.

:wq

quit

Закрывает редактор, если изменения не были сохранены, а редактор нужно закрыть, то добавьте восклицательный знак:

:q!

Выводы

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

На завершение видео со сравнением Emacs, Vim и IDE:

Оцените статью:

Загрузка…

Урок 13. Редактирование файлов редактором Vim

Данный редактор является очень мощным инструментом для редактирования текста. Работает в консольном и графическом режимах. Он содержит множество команд и позволяет быстро и элегантно выполнять различные задачи. Минусом данного редактора является неинтуитивный терминал, который в отличие от nano не содержит никаких подсказок. Поэтому, открыв файл, сразу же хочется его закрыть.

 

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

 

Немного теории.

Vim имеет 4 режима работы:

  • Обычный режим
  • Командный режим или режим “последней строки”
  • Режим вставки или редактирования
  • Режим выделения текста (визуальный)

 

При открытии файла по умолчанию открывается обычный режим. В нем любая набранная буква воспринимается как команда. Некоторые команды мы рассмотрим немного позже. Вот как выглядит обычный режим:

Чтобы из обычного режима попасть в командный режим необходимо набрать знак “:” (двоеточие). В этом режиме можно вводить более “продвинутые” команды, которые позволяют открывать другие файлы и выполнять команды из shell, bash. Чтобы вернуться в обычный режим нажмем 2 раза на Esc. Вот как выглядит командный режим:

Для перехода в режим редактирования набери команду “i” в обычном режиме. В данном режиме можно печатать и удалять текст. Для возврата в обычный режим нажми на Esc. Вот как выглядит режим редактирования:

Для входа в визуальный режим набери команду « (сокр. от visual — визуальный, видимый) или «, находясь в обычном режиме. Для возврата в обычный режим нажмем 2 раза на Esc. Вот как выглядит режим выделения:

А в чем разница между v и V?

С помощью v можно выделять каждый символ по отдельности, а с V — сразу целую строку.

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

 

Теперь попробуем выполнить те же операции, что и в предыдущем уроке.

У нас имеется файл Configuration.txt. Необходимо сделать следующее:

  1. Создать новый текстовый файл Example.txt
  2. В файле Configuration.txt найти 28-ю строчку
  3. Начиная с 28-й строки выделить и скопировать в буфер 10 строк текста
  4. Вставить текст из буфера в файл Example.txt
  5. Закрыть файл Configuration.txt
  6. В файле Example.txt найти и удалить строки, которые содержат слово “configuration”
  7. Затем в конец файла добавить произвольный текст
  8. Сохранить изменения в файле и закрыть

1) Создадим файл Example.txt

vim Example.txt

Пока файл не сохранен он не будет создан. Поэтому для записи  необходимо перейти в командный режим и наберем команду «w» (сокр. от write — запись) и нажимаем Enter.

После выполнения команды редактор автоматически вернется в обычный режим. В дальнейшем все команды командного режима будут сопровождаться  двоеточием, например так :w.

Для закрытия файла используем команду :q (сокр. от quit — выходить).

 

А можно одной командой сохранить и закрыть файл?

Да, в vim можно комбинировать несколько команд. Например, :wq означает сохранить и закрыть. В дальнейшем мы изучим больше команд и поймем как их можно между собой комбинировать.

 

2) Теперь откроем файл Configuration.txt и найдем 28-ю строчку:

vim Configuration.txt

Находясь в обычном режиме наберем номер строки и комбинацию Shift +G и курсор остановится на нужной строке. Чтобы было удобнее отслеживать номера строк введем команду :set number

Чтобы удалить номера строк введем :set nonumber.

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

 

Существует и второй способ.

Для этого наберем символ “:” (двоеточие), то есть перейдем в командный режим и просто введем номер строки. Затем нажимаем Enter.

 

3) Теперь выделим и скопируем текст. 

Для этого выполним v или V и с помощью стрелок выделим часть текста:

Теперь скопируем текст в буфер обмена с помощью команды y. Редактор автоматически перейдет в обычный режим.

 

4) Для вставки текста в файл Example.txt не нужно держать файл Configuration.txt открытым. Однако попробуем открыть файл Example.txt, не закрывая Configuration.txt

Для этого выполним команду :sp Example.txt. В этом же терминале откроется второе окно и можно сразу видеть и редактировать оба файла:

 

 

В открывшемся файле вставим скопированный текст командой p (сокр. от put — ставить, помещать):

Для того, чтобы переключаться между открытыми файлами воспользуемся комбинацией Ctrl + W (иногда требуется выполнить данную комбинацию 2 раза).

 

5) Закроем Configuration.txt с помощью :q.

Кстати, если файл редактировали и не сохранили, то при выполнении команды :q редактор выдаст ошибку:

 

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

 

6) Теперь найдем и удалим строки, содержащие слово “configuration”. 

Существуют 2 варианта поиска слов:

/искомое_слово — поиск от текущей позиции и до конца файла

?искомое_слово — поиск от текущей позиции и до начала файла

 

Для продолжения поиска нажимаем на n, для перехода к предыдущему найденному слову нажмем на N.

Найденные слова могут быть подсвечены, но это зависит от настроек редактора. Все настройки хранятся в файле /etc/vim/vimrc.

 

Когда строки найдены, то удалить их можно также 2-мя способами:

посимвольно с помощью клавиши Delete или x.

сразу целую строку командой dd.

 

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

 

А что делать, если случайно удалено не то, что хотелось?

Для отката действий используем u (сокр. от undo — отмена) или U.

А в чем между ними разница?

u используется для отмены последнего действия, а U — для всех действий. То есть, чтобы отменить последние 5 действий нужно 5 раз нажать на клавишу u либо можно все это сделать одним нажатием на U

Для отмены самого отката, то есть для возврата в состояние до выполнения команды u используем комбинацию Ctrl + R.

 

7) И наконец последнее — добавление произвольного текста. Здесь все просто — перейдем в режим редактирования командой i и набираем произвольный текст. Команды в данном режиме не работают. Затем перейдем в обычный режим.

 

8) Сохраняем и закрываем файл с помощью :wq.

 

Итак, подытожим:

:q — закрыть файл

:wq — сохранить и закрыть файл

:!q —  закрыть файл без сохранения изменений

:w — сохранить изменения

стрелки — перемещения по файлу

i — переход в режим редактирования

v, V — переход в визуальный режим

u, U — откат действий

Ctrl + R — отмена отката действий

y — копирование в буфер обмена

p — вставка из буфера обмена

x, Delete — посимвольное удаление

dd — построчное удаление

/искомое_слово — поиск слова вперед от текущей позиции

?искомое_слово — поиск слов назад от текущей позиции

n — продолжение поиска

N — возврат к предыдущему найденному слову

номер_строки + Ctrl + G — переход на указанную строку

:номер строки — переход на указанную строку

:sp файл — открывает новый файл в текущем терминале, текущий файл при этом остается открытым.

Ctrl + W — переключение между открытыми файлами одного терминала.

 

Для начала этих команд будет достаточно. Приведу еще парочку полезных команд:

vimtutor — выполняется из bash. Представляет собой встроенный краткий курс по vim

r буква (символ) — заменяет букву в тексте под курсором на указанную букву

w — переход на одно слово вперед

2w — переход на слова вперед. Цифра указывает на сколько слов необходимо перейти.

b — переход на одно слово назад

2b — переход на 2 слова назад

gg — переход в начало файла

G — переход в конец файла

0 — переход в начало строки

$ — переход в конец строки

:help — справка

d$ — удаление строки, начиная от текущей позиции и до конца строки

dd — удаление всей строки

d2w — удаление 2-х первых слов, то есть удаление вперед от текущей позиции

d2b — удаление 2-х последних слов, то есть удаление назад от текущей позиции

 

Для тех, кому не совсем удобно редактировать в консольном режиме, можно работать в графическом редакторе.

Достаточно выполнить команду gvim файл:

Для работы в графическом редакторе понадобится меньше команд. Для изучения графического редактора воспользуемся встроенным руководством:

gvimtutor

 

 

Редактор поддерживает множество настроек, которые хранятся в /etc/vim/vimrc. Изменяя данные настройки можно максимально адаптировать редактор для своего удобства. 

На этом все.

 

 

Комментарии для сайта Cackle

Основы работы в VIM | Блог любителя экспериментов

Доброго времени, читатели моего блога! В данной статье расскажу о своем опыте изучения редактора vim. Это вторая реинкарнация статьи 2010 года. Опишу основные команды и принципы работы данного текстового редактора. Вопрос — Как выйти из vim тоже будет затронут

Редактор vim — это текстовый редактор, созданный на основе более старого — vi. Ныне это один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, и созданным благодаря этому расширениям и надстройками. Основное достоинство редактора — он есть на любой системе Linux.

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

Основной источник информации по vim в Linux — это справка и, конечно же, Google. В Linux есть отличная встроенная справка, которую можно получить несколькими способами:

  1. В режиме командной строки
    1. :help — вывод полной справочной системы по vim
    2. :help value — вывод справки, касающейся value
    3. :help value <Ctrl+D> — вывод списка разделов справки, содержащих value
  2. Утилита vimtutor содержит множество обучающих уроков.

Запуск vim производится следующим способом:

[[email protected] root]# vim

запускается редактор с пустым файлом.

[[email protected] root]# vim textfile

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

Режимы работы vim

У редактора есть несколько режимов работы:

  • нормальный (или командный)
  • режим ввода текста
  • режим командной строки

Если быть более точным, то режимов работы у vim — 14. 7 основных и 7 дополнительных (расширяющих основные). Но пока предлагаю остановиться на 3х основных.

Режимы работы vim

Основные особенности работы разных режимов в том, что некоторые действия можно делать как в режиме командной строки, так и в нормальном режиме. Например, отмена действия — в нормальном режиме — клавиша u, в режиме командной строки — :u, :un, :undo.

Работа в vim

Нормальный (командный) режим \ Normal mode

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

В командном режиме существуют одноклавишные комады (a, u, i), комбинации клавиш (Ctrl+R, Ctrl+w), а так же, многоклавишные (gg, zz, qq). 

Общие:

  • u — отмена предыдущего действия (undo)
  • Ctrl + R — отмена отмены (повтор) (redo)
  • ZZ — аналог 😡 (или :wq) — записать и выйти
  • ZQ — аналог :q! — выйти без подтверждения

Поиск текста:

  • /string — поиск значения string вниз по тексту
  • ?string — поиск значения string вверх по тексту
  • N — перейти к предыдущему найденном
  • n — перейти к следующему найденному

Смена режимов

  • a — перейти в режим вставки после символа в текущей позиции курсора
  • A — перейти в режим вставки в конце текущий строки
  • i или Ins — переход в режим ввода текста перед курсором
  • o — переход в режим ввода текста c новой строки ниже
  • O — переход в ражим вставки текста с новой строки выше

Перемещение курсора по тексту:

Если перед командой перемещения курсора ввести цифру, то действие повториться столько раз, сколько в цифре, например 10{ перейдет на 10 параграфов вперед.

  • <PgUp> — страница вверх
  • <PgDown> — страница вниз
  • :<num>⤶ — перейти на строку номер <num>
  • <num>%⤶ — перейти на строку, соответствующую <num> процента документа
  • h,← — лево на один символ
  • l,<Space>,→ — вправо на один символ
  • ^,<Home> — начало строки
  • $,<End> — конец строки
  • j,↓ — вниз на одну строку
  • k,↑ — вверх на одну строку
  • w — на слово вперед, в начало следующего слова (слова разделяются пробельными символами — пробел, таб, EOL и символами пунктуации)
  • W — на слово вперед, в начало следующего слова (только от пробела к пробелу)
  • b — аналогия w но назад, в начало следующего слова
  • B — аналогия W но назад, в начало следующего слова
  • e — аналогия w но вперед, в конец слова
  • E — аналогия W но вперед, в конец слова
  • f{char} — перейти вправо до ближайшего символа {char}
  • ( — на одно предложение вперед (разделители ‘.’, ‘!’ или ‘?’ )
  • ) — на одно предложение назад
  • { — на один параграф вперед (разделитель — пустая строка)
  • } — на один параграф назад
  • G — в конец документа
  • g(комбинации с g) — перейти куда-то, например:
  • gg — в начало документа
  • gt — переход на следующую вкладку (при открытии вкладок :tabedit)

Комбинации перемещения по экрану (без перемещения курсора):

  • Ctrl+Y — строка вверх
  • Ctrl+E — строка вниз
  • Ctrl U — пол страницы вверх
  • Ctrl D — пол страницы вниз
  • z-комбинации — перемещение страницы относительно курсора:
  • z⤶ или zt — текущую позицию курсора сделать верхом страницы
  • zz — положение курсора сделать серединой страницы
  • zb — положение курсора — низ страницы
  • z<num>⤶ — сделать экран высотой <num> строк
  • zs — позиция курсора — начало страницы (горизонтально — левый край)
  • ze — позиция курсора — конец страницы (горизонтально — правый край)

Редактирование текста:

  • d-комбинации — обеспечивают вырезание (удаление) текста в буфер:
  • [num]dd — вырезать строку (или [num] строк) в буфер обмена
  • d[комбинация_перемещения_курсора_по_тексту] — вырезать блок текста, который будет захвачен при перемещении курсора. Например: dG — удалит все до конца документа или dgg — удалить все до начала документа или d$ — до конца строки.
  • [num]p — вставить (past) [num] раз после курсора
  • P — вставка текста из буфера до курсора
  • v — режим выделения, он же визуальный
  • y — копировать  (yank) символ под курсором
  • [num]yy — копировать [num] строк

Работа с несколькими окнами:

  • разделение экрана для работы с несколькими файлами:
    • Ctrl+w,s или :vsplit filename — по горизонтали (новый файл откроется справа)
    • Ctrl+w,v или :split filename   — по вертикали
  • Ctrl+W + — увеличить количество строк в текущем окне
  • Ctrl+W — — уменьшить количество строк в текущем окне
  • Ctrl+стрелка — перемещение между окнами
  • Ctrl+f — переход на страницу вперед
  • Ctrl+b — переход на страницу назад
  • Ctrl+h — переключить сплит влево
  • Ctrl+l — переключить сплит вправо
  • Ctrl+k/j — переключение между вертикальными сплитами
  • :vertical resize num% — изменить вертикальный размер сплита на num%

Нормальный режим — это центральный режим, из этого режима осуществляется переход во все остальные режимы.

Режим ввода текста \ Insert mode

Для входа в этот режим, используется клавиша Ins. В этом режиме Vim работает так же, как и большинство «обычных» текстовых редакторов. Изменяемый текст хранится в буфере. Набранные символы не воспринимаются как команды, а вставляются в существующий текст.

В данном режиме работают следующие комбинации клавиш:

  • стрелки, PgDown/up и home, end для перемещения по тексту
  • Esc — выход из редактирования текста и переход в нормальный режим
  • Backspace или Ctrl H — удалить символ перед курсором
  • Del — удалить символ под курсором
  • Ctrl+W — удалить слово перед курсором
  • Ctrl+U — удалить строку от курсора до начал строки
  • <Tab> или CTRL-I — вставить табуляцию
  • Ins — переключиться между режимами Insert\Replace
  • Ctrl+d сдвинуть текст влево
  • Ctrl+t сдвинуть вправо
  • Ctrl+x и Ctrl+f — контекстная подсказка, когда вводишь путь к файлу
  • Ctrl+x и ctrl+n — контекстная справка при наборе слова — отображает все слова, которые начинаются на набранное слово (удобно при вводе переменных) 

Перемещение текста (блоков текста):

  • [num]<<⤶ — сместить блок текста размером [num] строк на размер отступа влево
  • [num]>>⤶ — сместить блок текста размером [num] строк на размер отступа вправо
Режим командной строки \ Command-line mode

Этот режим вызывается нажатием : (двоеточие)  из нормального режима. За двоеточием следует команда, например такая как поиск или замена. После ввода команда запускается нажатием   ↵ Enter . После того как команда выполнена, редактор возвращается в нормальный режим. К этому режиму также относятся команды / (поиск вперёд по тексту), ? (поиск назад по тексту) и команда-фильтр ! (запуск команды в bash).

Существует множество команд данного режима, ниже перечислю наиболее используемые:

  • :e file — создание нового файла file
  • :e! — Редактировать текущую копию файла на диске. Команда перезагрузит файл, отменив созданные вами изменения. Вы также можете использовать команду, если копия на диске была изменена по какой-либо причине и вам требуется последняя ее версия.
  • :w [filename] — записать изменения в файл, если указано [filename], то буфер будет записан в новый файл с именем filename
  • :w! — записать изменения в файл безусловно (даже если файл readonly).
  • :wa[ll] — записать изменения во все открытые файлы
  • :r file — вставка в текущий файл, содержимого файла file
  • :q — выход из редактора
  • :qa — выход из всех открытых фалов
  • :q! — выход из редактора без подтверждения изменений
  • :x[!] — аналог :wq, но запись в файл делается только если были изменения
  • :set paste \ :set nopaste — перейти в режим вставки\выйти из режима (вставляет текст с корректными отступами)
  • :s/src/dst/ заменить в текущей строке первое вхождение src на dst
  • :s/src/dst/g заменить в текущей строке все вхождения src на dst
  • :%s/src/dst/ заменить во всем файле первое вхождение каждой строки src на dst
  • :%s/src/dst/g заменить во всем файле все вхождения src на dst
  • :set gdefault — по умолчанию, при замене заменять все вхождения, а не только первое
  • :1-5s/string1/string2/g — поиск в строках с 1 по 5, строки string1 и замена на string2
  • :read! shell-commnd — вывод команды шелла будет добавлен в текущий открытый файл
  • :tabe или :tabedit file/path — открыть файл в новой вкладке
  • :number — переход на строку с номером — number
  • :!command — запуск команды интерпретатора command . После завершения команды, появиться приглашение вернуться в редактор

Для того чтобы vim использовал цветную подсветку синтаксиса, необходимо в файле глобальных параметров $HOME/.vimrc раскомментировать или добавить новую строку syntax on.

Дополнительные материалы

С Уважением, Mc.Sim!


Другие материалы в категории основы Linux


Теги: Linux, vim, основы

Забудьте про свой редактор. Используйте Vim / Хабр

Получайте удовольствие от процесса редактирования текста.

Вступление

Здравствуй, дорогой читатель! Данная статья не является ни руководством, ни учебником. В этой статье я лишь хочу рассказать Вам, что существует более эффективный инструмент для работы с текстовыми файлами. Этой статьёй я хочу вдохновить Вас на то, чтобы, поборов глубоко вросшие в Вас привычки, Вы попробовали совершенно другой, не похожий ни на что, метод работы с текстом.

Здесь я обойдусь и без истории возникновения Vim. Скажу лишь, что главный разработчик этого замечательного редактора — Брам Мооленаар, а произошёл он от стандартного редактора Unix — Vi, автором которого был Билл Джой.

Vi был создан в далёком 1976 году. Тогда же и был придуман его необычный интерфейс, основанный на разделении режимов работы на: нормальный, режим вставки и режим командной строки. Пусть многие спорят, что такой подход возник лишь вследствие ограничений техники тех времён, но я утверждаю, что этот метод работы эффективнее всего того, что предлагают нам другие редакторы.

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

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

Печатайте вслепую!

Почему просто необходимо печатать вслепую?

Вспомните, как вы учились кататься на велосипеде! Сначала вы мучились, пытаясь понять, как же это делают остальные, не могли проехать и двух метров. Но вы старались! Вы пробовали ещё и ещё. Может быть час, день или даже несколько дней. Пока не почувствовали.

Помните, насколько приятным было то ощущение, когда вы впервые почувствовали, что нужно делать, и будто стали с велосипедом одним целым? А потом вы к этому быстро привыкли и забыли, что бывает иначе…

Если Вы не помните, как учились ездить на велосипеде, вспомните, как учились плавать или кататься на коньках, вспомните любое своё умение!

Так раз уж если Вам приходится пользоваться компьютером — получайте удовольствие от общения с клавиатурой, вместо того, чтобы постоянно ощущать этот ужасный 100-кнопочный барьер (с двухкнопочным в придачу) между вами и компьютером (и теми, с кем вы посредством компьютера общаетесь).

Печатайте мысли, а не буквы и слова!

Vim — редактируйте вслепую!

То же славное ощущение, про которое я говорил выше, появляется и в Vim’е.

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

Овладев Vim’ом, вы начинаете вслепую редактировать текст:

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

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

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

Вы готовы меняться?

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

Советы для новичков:

Материалы для дальнейшего изучения

  • прочтите весь :help целиком,
  • регулярно просматривайте Best of Vim Tips: http://zzapper.co.uk/vimtips.html,
  • пользуйтесь Google.

Другие материалы:

Желаю удачи в обретении нового полезного и приятного навыка!

P.S. У меня есть идея перевести некоторые материалы на русский язык (в том

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

Использование текстового редактора Vim

Vim — очень мощный редактор с огромным набором функций. Эта статья охватывает основные команды, которых достаточно для того, чтобы начать работу в vim-е.

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

$ cd /tmp
cp /etc/passwd /tmp/test
vi ./test

Два режима

Есть два режима работы редактора: режим редактирования и нормальный режим. Переход в режим редактирования осуществляется различными командами, речь о которых пойдёт дальше. Выход из режима редактирования — кнопка <Esc>

Команды перемещения курсора

Команды перемещения работают в нормальном режиме. Нажмите <Esc>, чтобы убедиться что находитесь в нём.

Курсор можно перемещать стрелками на клавиатуре или, что гораздо быстрее, клавишами h, j, k, l:
h — влево
j — вниз
k — вверх
l — вправо

другие команды перемещения:
0 — Перейти к началу строки
$ — Перейти к концу строки
w — перейти к началу следующего слова
e — перейти к концу слова
gg — перейти в начало документа
G — перейти в конец документа
номер G — перейти на строку с номером <номер>

Можно использовать связку <номер><команда перемещения>
3w — перейти к началу четвёртого слова, считая с текущей позиции
4e — перейти к концу четвёртого слова, считая с текущей позиции.

Команды удаления

x — удалить букву под курсором
число x — удалить <число> букв, начиная с той что под курсором
dd — удалить строку
число dd или d число d — удалить <число> строк, начиная с той где находится курсор

Можно комбинировать команды удаления и перемещения:
dw — удалить 1 слово начиная с текущей позиции
d5w — удалить 5 слов
d$ — удалить строку с текущего положения курсора до конца строки
d0 — удалить строку с текущего положения курсора до начала строки.

Сохранение изменений

Для того чтобы сохранить отредактированный файл нужно:

  • перейти в нормальный режим, нажав <Esc>
  • ввести команду :write <имя_файла> <ENTER>,
  • или её сокращённый вариант :w <имя_файла> <ENTER>

Если имя_файла отсутствует, то сохраняется текущий файл

Чтобы выйти из редактора введите :quit <ENTER> или просто :q <ENTER>

Выйти не сохранив изменения — :q! <ENTER>
:wq — сохранить изменения в текущем файле и выйти.

Вставка текста

Для перехода в режим вставки нажмите <i>.
A — переход к концу строки и начало режима вставки
a — переход к следующему символу и начало режима вставки
o — начать вставку под текущей строкой
O — начать вставку над текущей строкой
<Esc> — переход к нормальному режиму

Отмена последних изменений

u — отмена последнего изменения
U — отмена изменений во всей строке
<CTRL-R> — отмена отмены.

Копирование и вставка

yy — скопировать всю строку в буфер обмена
p — вставить содержимое буфера обмена после курсора
y5y или 5yy — скопировать 5 строк
yw — скопировать слово

В буфер обмена попадают и только что удалённый текст. Например если удалить строку dd, то сразу же после этого её можно вставить с помощью p

Замена

r — заменить символ под курсором
R — заменять символы, начиная с текущего положения
c <число> <команда перемещения> — ещё одна команда замены.
cw — поменять слово.
c$ — поменять строку, начиная с положения курсора и до конца.
cc — поменять всю строку.

Поиск

/ — поиск в прямом направлении
? — поиск в обратном направлении
n — перейти к следующему найденному элементу
N — перейти к предыдущему найденному элементу.

Поиск соответствующей скобки ], ), }

Наведите курсор в нормальном режиме на открывающуюся/закрывающуюся скобку и нажмите %. Курсор перейдёт к соответствующей закрывающейся/открывающейся скобке, если таковая есть.

Определение положения в файле

Чтобы определить текущее положение нажмите <CTRL-G> в нормальном режиме. В нижней части терминала появится строка, содержащая информацию о количестве строк, текущем положении, имя файла.

Автоматическая замена

:s/old/new/g — заменить все сочетания ‘old’ в текущей строке на ‘new’
:10,20s/old/new/g — тоже самое, но для строк с 10й по 20ю

Вызов справки

:help <команда> <ENTER> — вызов справки по команде редактора.

Исполнение shell-команд

:!<команда>

Например:
:!ls — исполнить команду ls в текущей директории

Чтение файла

:r <filename> — вставить содержимое filename после курсора

Команда set

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

Например:
:set ic — ignore case — игнорировать регистр букв (например при поиске)
:set hls — highlighting search — подсвечивать найденное при поиске совпадение
:set nohls — не подсвечивать найденное при поиске совпадение.

Файл настроек

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

В нём можно задать некоторые дополнительные настройки, например:

colo evening
filetype plugin on
set grepprg="grep -nH $*"
filetype indent on

Примеры этого файла поставляются вместе с дистрибутивом редактора.

Дополнительная информация

Подробную информацию можно получить из встроенной справки с помощью команды :help или на страницах мануала man vi.

популярных команд Vim — Подробная шпаргалка по Vim

Автор: Коди Арсено

Обновлено 13 июля 2020 г.

Vim был выпущен в 1991 году и представляет собой бесплатное программное обеспечение с открытым исходным кодом. Доступный как в виде интерфейса командной строки, так и в виде отдельной программы с графическим интерфейсом пользователя, Vim — это текстовый редактор, представляющий собой модальную версию редактора vi, созданного для Unix в 1970-х годах; Vim означает улучшенный vi. Хотя он был разработан с учетом Unix, его версии доступны для большинства операционных систем, а Vim также доступен для смартфонов Android и iOS.

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

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

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

  vim filename.css
  

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

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

Режимы Vim

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

Командный режим

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

Режим вставки

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

Установка Vim

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

Установите Vim с помощью Git:

По словам самих Vim, установка Vim через Git — самый простой и эффективный метод. Просто используйте следующие команды:

  git clone https://github.com/vim/vim.git
cd vim / src
сделать
  

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

Установите Vim в Ubuntu / Debian:

Если вы используете Ubuntu или Debian, используйте apt-get для установки Vim, например:

  sudo apt-get install vim
  

Установите Vim на CentOS / Fedora:

Если вы используете CentOS или Fedora, используйте yum для установки Vim:

  sudo yum install vim
  

Если вам нужен более продвинутый набор функций в CentOS / Fedora, вам необходимо установить vim-Enhanced , для этого вместо этого выполните следующую команду:

  sudo yum install -y vim-Enhanced
  

Команды Vim

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

1. Основные команды Vim

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

: help [keyword] — Выполняет поиск в справочной документации по любому введенному вами ключевому слову.

: e [file] — Открывает файл, где [file] — это имя файла, который вы хотите открыть

: w — Сохраняет файл, над которым вы работаете

: w [имя файла] — Позволяет сохранить ваш файл с указанным вами именем

: wq — Сохраните файл и закройте Vim

: д! — Выйти без предварительного сохранения файла, над которым вы работали

2.Команды Vim для перемещения

При использовании команд перемещения вы можете поставить перед ними число, чтобы Vim выполнял команду несколько раз. Например, 5h переместит ваш курсор на пять делений влево, а 90j поместит ваш курсор в начало 90-й строки вниз от того места, где он сейчас находится.

h — Перемещает курсор влево

l — Перемещает курсор вправо

j — Перемещает курсор на одну строку вниз

k — Перемещает курсор на одну строку вверх

H — Помещает курсор в верхнюю часть экрана

M — Помещает курсор в середину экрана

L — Помещает курсор внизу экрана

w — Ставит курсор в начале следующего слова

b — Помещает курсор в начало предыдущего слова

e — Помещает курсор в конец слова

0 — Помещает курсор в начало строки

$ — помещает курсор в конец строки

) — переводит вас в начало следующего предложения

( — переводит вас в начало предыдущего предложения

90 002 } — Переход к началу следующего абзаца или блока текста

{ — Переход к началу предыдущего абзаца или блока текста

Ctrl + f — Переход к одному страница вперед

Ctrl + b — переводит вас на одну страницу назад

gg — помещает курсор в начало файла

G — помещает курсор в конец файла

# — Где # — номер строки, эта команда переводит вас на указанную строку

3.Команды Vim для редактирования

Те, кто использует Vim, склонны использовать термин «yank» вместо терминов «копирование и вставка». Таким образом, команда для копирования слова — это yw , что означает «yank word», а команда для вставки всего, что было скопировано, — это p , что означает «положить». Если вы будете искать дополнительные команды в будущем, это может сбить с толку, если вы не знаете, что означает «вставлять и вставлять» при использовании Vim.

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

Как и в случае с командами перемещения, указание числа перед командой может увеличить количество выполненных задач. Например, если поставить число перед yy , количество копируемых строк увеличится, поэтому 5yy скопирует пять строк.

yy — Копирует строку

yw — Копирует слово

y $ — Копирует курсор в конец строки

v — Выделите по одному символу, используя кнопки со стрелками или кнопки h, k, j, l

V — Выделение одной строки, а клавиши перемещения могут позволить вам выделить дополнительные строки

p — Вставить все, что было скопировано в безымянный регистр

d — Удаляет выделенный текст

dd — Удаляет строку текста

dw — Удаляет слово

D — Удаляет все, начиная с того места, где находится курсор, до конца строки

d0 — Удаляет все, от того места, где находится курсор, до начала строки

dgg — Удаляет все, начиная с того места, где находится курсор, до начала файла

dG — Удаляет e все, от того места, где находится курсор, до конца файла

x — Удаляет один символ

u — Отменить последнюю операцию; u # позволяет отменить несколько действий

Ctrl + r — повторить последнюю отмену

. — Повторяет последнее действие

4. Команды Vim для поиска текста

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

/ [ключевое слово] — поиск текста в документе, где ключевое слово — любое ключевое слово, фраза или строка символов, которые вы ищете

? [Ключевое слово] — поиск предыдущего текста по вашему ключевому слову, фразе или символу строка

n — снова ищет ваш текст в том направлении, в котором был последний поиск

N — снова ищет ваш текст в обратном направлении

:% s / [шаблон] / [замена] / g — Это заменяет все вхождения шаблона без подтверждения каждого из них

:% s / [шаблон] / [замена] / gc — заменяет все вхождения шаблона и подтверждает каждое из них

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

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

: bn — переключиться на следующий буфер

: bp — переключиться на предыдущий буфер

: bd — закрыть буфер

: sp [имя файла] — открыть новый файл и разделить экран по горизонтали для отображения нескольких буферов

: vsp [имя файла] — открывает новый файл и разделяет экран по вертикали, чтобы показать более одного буфера

: ls — выводит список всех открытых буферов

Ctrl + ws — Разделить окна по горизонтали

Ctrl + wv — Разделить окна по вертикали

Ctrl + ww — Переключиться между окнами

Ctrl + wq — Закрыть окно

Ctrl + wh — перемещает курсор в окно влево

Ctrl + wl — перемещает курсор в окно вправо

Ctrl + wj — перемещает курсор в окно под тем окном, в котором вы находитесь.

Ctrl + wk — перемещает курсор в окно над окном, в котором вы находитесь.

6.Маркировка текста (визуальный режим)

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

v — запускает визуальный режим, затем вы можете выбрать диапазон текста и запустить команда

V — запускает линейный визуальный режим (выделяет целые строки)

Ctrl + v — запускает визуальный блочный режим (выбирает столбцы)

ab — блок с ()

aB — блок с {}

ib — внутренний блок с ()

iB — внутренний блок с {}

aw — отметить слово

Esc — выйти из визуального режима

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

d — удалить отмеченный текст

y — yank (скопировать ) отмечен текс t

> — сдвинуть текст вправо

< - сдвинуть текст влево

~ - поменять местами регистр (верхний или нижний)

7.Страницы вкладок

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

: tabedit file - открывает новую вкладку и позволяет вам отредактировать «файл»

gt - перейти к следующей вкладке

gT - переместить на предыдущую вкладку

#gt - перейти к определенному номеру вкладки (напр.г. 2gt переносит вас на вторую вкладку)

: вкладки - список всех открытых вкладок

: tabclose - закрыть одну вкладку

Пример простого рабочего процесса Vim

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

  1. Откройте новый или существующий файл с именем vim, имя файла .
  2. Введите i , чтобы переключиться в режим вставки и начать редактирование файла.
  3. Введите или измените текст в вашем файле.
  4. Когда вы закончите, нажмите клавишу выхода Esc , чтобы выйти из режима вставки и вернуться в командный режим.
  5. Введите : wq , чтобы сохранить и закрыть файл.

Конечно, с Vim вы можете сделать гораздо больше, однако, как новичок, описанные выше шаги - это то, как выглядит простой рабочий процесс Vim.

Резюме

Vim довольно прост в использовании, он просто требует запоминания команд редактора Vim и запоминания того, в каком режиме вы находитесь.Если вы привыкли использовать сочетания клавиш, такие как Ctrl + C и Ctrl + S , у вас не должно возникнуть особых трудностей, чтобы привыкнуть к тому, как работает Vim. Хотя в редакторе есть небольшая задержка в работе, вам не нужно слишком беспокоиться о случайном удалении больших фрагментов текста без возможности их восстановления, поскольку вы можете использовать команду отмены несколько раз.

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

.

Основные команды Vim - для начала (пример)

Начал учиться использовать Vim. Несколько простых команд для начала.

Vim имеет два режима.

1. Режим вставки (где вы можете просто печатать как в обычном текстовом редакторе. Нажмите i для режима вставки)

2. Командный режим (где вы даете команды редактору для выполнения работы. Нажмите ESC для командного режима)

Большинство из них ниже находятся в командном режиме

  • x - удалить ненужный символ
  • u - отменить последнюю команду и U, чтобы отменить всю строку
  • CTRL-R для повторения
  • А - добавить текст в конец
  • : wq - для сохранения и выхода из
  • : д! - выбросить все изменения
  • dw - переместите курсор в начало слова, чтобы удалить это слово
  • 2w - для перемещения курсора на два слова вперед.
  • 3e - переместить курсор в конец третьего слова вперед.
  • 0 (ноль) для перехода в начало строки.
  • d2w - удаляет 2 слова .. число может быть изменено для удаления количества последовательных слов, например d3w
  • dd для удаления строки и 2dd для удаления до строки. Number может быть изменен для удаления количества следующих друг за другом слов

Формат команды изменения: оператор [номер] движение
-оператор - это что делать, например d для удаления
- [номер] - необязательный счетчик для повторения движения
- движение - перемещается по тексту для работы, например, w (слово),
$ (до конца строки) и т. д.

  • p - помещает ранее удаленный текст после курсора (введите dd, чтобы удалить строку и сохранить ее в регистре Vim. И p, чтобы поместить строку)

  • r - для замены буквы, например, нажмите re, чтобы заменить букву на e

  • ce - изменить до конца слова (поместите курсор на u в lubw, ubw удалится)

  • ce - удаляет слово и переводит вас в режим вставки

  • G - переместить вас в конец файла.

  • gg - переместить вас в начало файла.
    Введите номер линии, на которой вы были, а затем G

  • %, чтобы найти соответствие),] или}

  • : s / old / new / g для замены слова new на old, где g глобально

  • / поиск в обратном направлении n для поиска следующего вхождения и N для поиска в обратном направлении

  • ? поиск вперед

  • :! для запуска команд оболочки, например:! dir,:! ls

  • : w - ТЕСТ (где ТЕСТ - имя выбранного файла.). Сохраняем файл

  • v - запускает визуальный режим для выбора строк, и вы можете выполнить операцию, например d удалить

  • : r - Имя файла вставит содержимое в текущий файл

  • R - заменить более одного символа

  • y - оператор для копирования текста в визуальном режиме v и p для его вставки

  • yw - (копия) рывков одним словом

  • o - открывает строку под курсором и запускает режим вставки.

  • O - открывает строку над курсором.

  • a - вставляет текст после курсора.

  • A - вставляет текст после конца строки.

  • e - команда перемещается в конец слова.

  • y - оператор копирует (копирует) текст, p вставляет (вставляет) его.

  • R - входит в режим замены до нажатия .

  • ctrl-w для перехода из одного окна в другое

введите команду: e и нажмите ctrl + D, чтобы вывести список всех команд, имя которых начинается с: e, и нажмите Tab для завершения команды

.Текстовый редактор

- Навигация в командном режиме Vim

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

.

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

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