ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Как пользоваться vim в Linux
Как редактировать файлы через консоль?
4 минуты чтения
Сегодня в статье будут кратко описаны главные функции текстового редактора Vim – данный редактор очень часто является самым простым способом отредактировать конфиг\текстовый файл, но он обладает не самым дружелюбным интерфейсом. Давайте разберём основные моменты.
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
Текстовый редактор Vim
Этот текстовый редактор умеет работать в нескольких режимах: режиме вставки, командном режиме и «ex mode» режиме (режим последней строки). Сразу после открытия файла с помощью команды vim %file_name% редактор запуститься в так называемом «командном режиме» — ввод текста будет недоступен, Vim будет воспринимать только команды. Для переключения в режим вставки необходимо нажать «i» – у вас появится возможность редактировать текст. После того как все манипуляции будут завершены, вам необходимо будет перейти в режим последней строки и дать команду сохранить\выйти\сохранить и выйти и так далее – для этого необходимо: если находитесь в командном режиме нажать «:» (двоеточие) и ввести команду, а если находитесь в режиме вставки – сначала нужно нажать Escape и затем нажать двоеточие.
Командный режим и его возможности
В командном режиме доступно очень большое количество команд, с полным списком которых можно ознакомиться по ссылке: https://www.fprintf.net/vimCheatSheet.html, я же приведу здесь только самые часто используемые и полезные.
Самое главное, что нужно запомнить – это клавиши, используемые для перемещения по тексту – это h, j, k, l.
- h — сдвиг на один символ влево
- j сдвиг на один символ вниз
- k сдвиг на один символ вверх
- l сдвиг на один символ вправо
Кроме того, есть возможность перемещаться на одно слово вперед или назад – важно помнить, что словом является нечто вида «aesr1001k», то есть без дефиса и прочих разделительных знаков – «aesr-1001k» – это будет восприниматься редактором как два слова. Итак, для перехода на одно слово вперед нужно нажать «w», а для перехода назад – «b». Не очень интуитивно, не правда ли?:)
Если вам нужно что-то копировать – в Виме это делается достаточно просто – для этого нужно сначала переключиться в режим редактирования текста (клавиши «V» (выделение целых строк),»v»(посимвольное выделение) или «Ctrl-v»(блочное выделение) – после переключения можно будет выделять текст используя кнопки описанные выше или же используя клавиши со стрелками. После выделения нужно нажать клавишу «y» для копирования фрагмента в буфер обмена. Для вставки используются маленькая и большая «p» – маленькая для вставки после курсора и большая, соответственно, до.
Что касается удаления – здесь тоже есть свои «трюки»:
- d или x — удаление символов – курсор нужно ставить над нужным символом и нажимать указанную клавишу
- dw — удаление слова под курсором
- db — удаление предыдущего слова
- dd — удаление целой строки
- d$ — удаление части строки от позиции курсора до конца строки
- d^ — удаление части строки от позиции курсора до начала строки
Что если вам необходимо найти какую-нибудь информацию в тексте? Для этого вам потребуется переключиться в режим поиска, причём есть два режима поиска: при нажатии на «/» — включиться поиск в прямом направлении, и при нажатии на на «?» — включиться поиск в обратном направлении. После этого нужно ввести шаблон поиска – к примеру: :/ipaddress
Также возможен поиск и замена – данный режим включается командой :s, после чего вам необходимо будет указать слово для поиска и слово, на которое произойдет замена: :%s/192.168.1.1/192.168.2.2/ — в данном примере указана глобальная область поиска, и первый найденный сетевой адрес 192.168.1.1 будет заменен на 192.168.2.2. Если же необходимо заменить все найденные адреса на новые и запрашивать подтверждение при каждой замене – нужно добавить буквы «gc» — :%s/192.168.1.1/192.168.2.2/gc
У многих мог возникнуть вопрос – как же сделать столь привычное Undo, то есть отменить последние действие – для этого нужно воспользоваться командой «u» — но, к сожалению, отменить можно только последние действие. Если же нужно повторить отмененное действие (т.е сделать UnUndo) нужно нажать «Ctrl+r».
Важно – если отменен режим совместимости с Vi, то отменять можно большее количество действий.
Сохранение и выход
Теперь перейдем к важному моменту – сохранению и выходу. Тут есть несколько опций:
- :w сохранение изменений без выхода
- :wq или 😡 — старое доброе «сохранить и выйти»
- :q! — выход без сохранения изменений
- :w %file_name% — «сохранить как» в новый файл
На этом всё, помните, что Vim не является самым удобным редактором, и, если есть возможность – лучше установите что-то более привычное для вас. Но навыки использования Vim важны, так как часто это единственно доступный инструмент для редактирования конфигов на удаленных серверах.
Онлайн курс по Linux
Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps
Источник
Урок 13. Редактирование файлов редактором Vim
Данный редактор является очень мощным инструментом для редактирования текста. Работает в консольном и графическом режимах. Он содержит множество команд и позволяет быстро и элегантно выполнять различные задачи. Минусом данного редактора является неинтуитивный терминал, который в отличие от nano не содержит никаких подсказок. Поэтому, открыв файл, сразу же хочется его закрыть.
Как и в предыдущем уроке мы рассмотрим лишь базовые и самые необходимые команды для того, чтобы выполнять те же действия, что и в предыдущем уроке.
Vim имеет 4 режима работы:
- Обычный режим
- Командный режим или режим “последней строки”
- Режим вставки или редактирования
- Режим выделения текста (визуальный)
При открытии файла по умолчанию открывается обычный режим. В нем любая набранная буква воспринимается как команда. Некоторые команды мы рассмотрим немного позже. Вот как выглядит обычный режим:
Чтобы из обычного режима попасть в командный режим необходимо набрать знак “ : ” (двоеточие). В этом режиме можно вводить более “продвинутые” команды, которые позволяют открывать другие файлы и выполнять команды из shell, bash. Чтобы вернуться в обычный режим нажмем 2 раза на Esc. Вот как выглядит командный режим:
Для перехода в режим редактирования набери команду “ i ” в обычном режиме. В данном режиме можно печатать и удалять текст. Для возврата в обычный режим нажми на Esc. Вот как выглядит режим редактирования:
Для входа в визуальный режим набери команду » v « (сокр. от visual — визуальный, видимый) или » V « , находясь в обычном режиме. Для возврата в обычный режим нажмем 2 раза на Esc. Вот как выглядит режим выделения:
А в чем разница между v и V ?
С помощью v можно выделять каждый символ по отдельности, а с V — сразу целую строку.
Перемещаться из одного режима в другой можно только через основной режим. Например, из режима редактирования нельзя сразу перейти в командный режим. Необходимо сначала вернуться в основной режим, а потом уже в командный.
Теперь попробуем выполнить те же операции, что и в предыдущем уроке.
У нас имеется файл Configuration.txt . Необходимо сделать следующее:
- Создать новый текстовый файл Example.txt
- В файле Configuration.txt найти 28-ю строчку
- Начиная с 28-й строки выделить и скопировать в буфер 10 строк текста
- Вставить текст из буфера в файл Example.txt
- Закрыть файл Configuration.txt
- В файле Example.txt найти и удалить строки, которые содержат слово “configuration”
- Затем в конец файла добавить произвольный текст
- Сохранить изменения в файле и закрыть
1) Создадим файл Example.txt
Пока файл не сохранен он не будет создан. Поэтому для записи необходимо перейти в командный режим и наберем команду » w « (сокр. от write — запись) и нажимаем Enter.
После выполнения команды редактор автоматически вернется в обычный режим. В дальнейшем все команды командного режима будут сопровождаться двоеточием, например так :w .
Для закрытия файла используем команду :q (сокр. от quit — выходить).
А можно одной командой сохранить и закрыть файл?
Да, в vim можно комбинировать несколько команд. Например, :wq означает сохранить и закрыть. В дальнейшем мы изучим больше команд и поймем как их можно между собой комбинировать.
2) Теперь откроем файл Configuration.txt и найдем 28-ю строчку:
Находясь в обычном режиме наберем номер строки и комбинацию 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 — переход в начало строки
$ — переход в конец строки
d$ — удаление строки, начиная от текущей позиции и до конца строки
dd — удаление всей строки
d2w — удаление 2-х первых слов, то есть удаление вперед от текущей позиции
d2b — удаление 2-х последних слов, то есть удаление назад от текущей позиции
Для тех, кому не совсем удобно редактировать в консольном режиме, можно работать в графическом редакторе.
Достаточно выполнить команду gvim файл :
Для работы в графическом редакторе понадобится меньше команд. Для изучения графического редактора воспользуемся встроенным руководством:
Редактор поддерживает множество настроек, которые хранятся в /etc/vim/vimrc . Изменяя данные настройки можно максимально адаптировать редактор для своего удобства.
Источник