vi, vim - основной редактор в Linux
vimdiff - сравнение двух файлов в vim (см. инфо в разделе файлы)
3 режима работы:
1. Командный режим. vi открывает файл на редактирование по умолчанию в этом режиме.
2. Режим вставки. Простое редактирование текста, переход в режим нажатием "i" в командном режиме.
3. Визуальный режим. Выделение блоков текста и редактирование.
КОМАНДНЫЙ РЕЖИМ
1. Сохранение и выход
:wq! или shift+zz - сохранить и выйти
:w filename - сохранить в другой файл
:q!, :qa! - выйти без сохранения
2. Перемещение
h, j, k, l - влево, вниз, вверх, вправо
$ - в конец строки, 0 или ^ - в начало
2G - перейти ко 2-ой строке, G - к последней
e - на слово вперед, b - назад
3. Поиск
/word - поиск слова word
n - следующуе совпадение, N - предыдущее
:set insearch - поиск без учета регистра
3. Отмена
u - отмена действия, uu - отмена всех действий
CTRL+r - отмена отмены действия
3. Выделение, копирование, вставка, удаление
v - посимвольное выделение, CTRL+v - блочное
y - копировать в буфер, yy - копировать всю строку
p - вставка, o - новая строка под курсором, O - над курсором
dl - удалить символ, dw - слово, d$ - до конца строки, dd - всю строку
4. Макросы
q1 - начать запись макроса №1
выполнить необходимую последовательность действи
q - закончить запись макроса
@1 - выполнить макрос 1 (воспроизвести последовательность действий), 10@1 - выполнить макрос 1 10 раз
5. Закомментировать и раскомментировать строки в vim
Закомментировать
- Нажать Ctrl+V и выделить нужный кусок текста.
- Нажимаем Shift+i, потом пишем символы коммента (#, //, ; и так далее).
- Потом нажимаем Esc.
Раскомментировать
- Нажимаем Ctrl-V и выделяем закомментированные строки
- После чего, нажимаем клавишу «x»
Опции и примеры
Опции
:set number - пронумеровать строки, nonumber - убрать нумерацию
:f - отобразить название редактируемого файла
Примеры
1. Выполнение команд оболочки непосредственно в vi
:! ls -l /tmp/ - вывести выполнение команды ls
:r! ls -l /tmp/ - вставить в текущий файл вывод команды ls
2. Заменить в строках 10 - 25 все буквы "а" на "А"
:10,25s/a/A/g
где 10,25 - диапазон, а - слово, которое ищем, А - на что меняем, g - искать во всей строке, иначе поменятеся только первое вхождение.
Так же применимы еще ключи i - игнор регистра, c - подтверждение каждой замены
:%s/cofe/tea/g - заменить во всем документе cofe на tea