FreeBSD - vim - основы
Vi/vim - текстовый редактор
Установка:
# cd /usr/ports/editors/vim && make install clean
Режимы работы vim
1. Режим ввода команд (Command mode) - по-умолчанию. В этом режиме нажатия клавиш интерпретируются как команды редактору, а не как текст, вводимый в документ. 2. Режим ввода текста (Insert mode). Режим работы с текстом. 3. Ex режим. В этот режим можно попасть нажатием символа ":". Загрузка файла, сохранение и выход происходят в этом режиме.
Переключение режимов:
Переключиться из Command mode в Insert mode: нажать "i"/"a" или Insert так и в Ex режим нажав ":" .
Клавиша a означает append (присоединить). В этом режиме вводимый текст вставляется после символа, на котором находится курсор.
Клавиша i означает insert (вставить). В этом режиме вводимый текст вставляется перед символом, на котором находится курсор.
ESC – выход из текущего режима ESC ESC – выход в Command mode
Режим поиска — ввод поискового запроса. Переход в него из Command mode:
/
Визуальный режим — режим выделения текста. Переход в него из Command mode:
v
Открыть файл на редактирование
# vim file
Открываем файл на редактирование из vim (Ex режим):
:e otherfile
Сохранение документа и выход (Ex режим):
:wq [file2] w – означает, что файл необходимо сохранить q означает выход из текстового редактора. [file2] - новое имя файла
Принудительный выход без сохранения текста(Ex режим):
:q!
Добавление содержимого другого файла в текущий
:r file3
Удаление текста
x — удалить символ под курсором X — удалить символ влево (удалить символ перед курсором) dd — удалить текущую строку d<число>d — стирание числа строк начиная с текущей d — используется совместно с командами перемещения. Удаляет символы с текущего положения курсора до положения после ввода команды перемещения. v, выделяем текст, d - удалить выделенный текст
Перемещение текста (cut-paste):
v, выделяем текст, d - удалить выделенный текст, p - вставка текста в визуальном режиме p — вставка содержимого неименнованного буфера под курсором P — вставка содержимого неименнованного буфера перед курсором
Копирование текста (copy-paste)
v, выделяем текст, y - скопировать выделенный текст, p - вставка текста в визуальном режиме yy — копирование текущей строки в неименованный буфер y<число>y — копирование числа строк начиная с текущей в неименованный буфер
Включение и выключение нумерации строк:
:set number - включение нумерации строк: :set nonumber - выключение нумерации строк:
или
:set nu :set nonu
Включение и выключение автоотступов:
:set autoindent - включение автоотступов :set noautoindent - выключение автоотступов
или
:set ai :set noai
в следующие строки автоматически будет вставлен такой же отступ что и в первой строке.
Устанавливка уровня отступов
:set shiftwidth=5
или
set ai sw=5
установить отступ в 5 пробелов
Игнорирование регистра символов при поиске:
:set ignorecase - игнорировать :set noignorecase - не игнорировать
или
:set ic :set noic
Поиск выражения по шаблону:
/echo
найдет первую строку, соответствующую шаблону
Найти следующую строку, соответствующую шаблону
N – поиск назад n – поиск вперед
Замена выражений:
:%s/ad4/mirror\/gm0/g
заменит все ad4 на mirror/gm0
Повторное использование шаблонов для замены:
:%s/^\(Merlin\)/Mrs \1 Monro/g
Пояснение
%s – говорит vi, что надо проводить замену / – разделитель шаблонов ^\(Merlin\) – поиск строк, начинающихся с Merlin и запись в буфер с номером 1. / – разделитель шаблонов Mrs \1 Monro – замена найденной строки на строку, начинающуюся с Mrs, затем идет содержимое буфера с номером 1, а затем Monro. / – разделитель шаблонов g – глобальная замена (замена каждой строки, соответствующей шаблону)
Запись части файла в другой файл:
:20,40w >> /tmp/file 3 - начало строки 5 - конец строки $ - записать файл до конца
Изменить кодировку файла на лету
Указать кодировку cp1251 или utf-8 (Windows): :set encoding=utf-8 или :e ++enc=cp1251