13.04.2014

Работа с продвинутым текстовым редактором nvi [аналог vim подBSD-лицензией]

Работа с продвинутым текстовым редактором nvi [аналог vim под BSD-лицензией]

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


Режимы работы редактора nvi (vim)

nvi (vim) имеет всего 4 режима работы:

1. «Обычный/командный режим» — перемещение по файлу, стирание текста и другие редактирующие функции.
Переход в него из любого другого режима:
ESC, иногда 2 раза; Ctrl-[

2. «Режим ввода» — ввод текста. Заметьте, что стирание и ввод текста происходит в двух разных режимах.
Переход в него из «Обычного/командного режима»:
i, Insert

3. «Режим последней строки» — Команды (операции с файлом, поиск и замена, настройка редактора…).
Переход в него из «Обычного/командного режима»:
:

3.1. «Режим поиска» — ввод поискового запроса.
Переход в него из «Обычного/командного режима»:
/

4. «Визуальный режим» — режим выделения текста.
Переход в него из «Обычного/командного режима»:
v


Перемещение по файлу

Для перехода в «Обычный режим» из любого другого режима нужно нажать:
ESC - иногда 2 раза.

Перемещение по стрелкам:
<стрелка_вверх> или k, <стрелка_вниз> или j, <стрелка_влево> или h, <стрелка_вправо> или l

0 - ("ноль")В начало текущей строки.

^ - В начало текущей строки (к первому непробельному символу).

$ - В конец текущей строки.

w - На слово вправо.

b - На слово влево.

W - До пробела вправо.

B - До пробела влево.

} - Абзац вниз.

{ - Абзац вверх.

Ctrl-f - На страницу (экран) вниз.

Ctrl-b - На страницу (экран) верх.

gg - Перейти в начало файла.

G - Перейти в конец файла.

fx - Передвинуть курсор вперед (forward) к следующему вхождению символа 'x' в текущей строке.

; - Повторить последнюю команду f, которю вы ввели

tx - Тоже что и 'fx', но при этом курсор устаналивается прямо перед символом, а не на сам символ.

Fx - Передвинуть курсор назад (backward) к спредыдущему вхождению символа 'x' в текущей строке.

/<текст><Enter> - Перейти к <текст>.

?<текст><Enter> - Перейти к <текст>, но искать назад.

n - Повторить поиск.

N - Повторить поиск назад.

[[ - В начало функции.

" - К месту выполнения команды '[['.


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

Для перехода в режим редактирования («Режим ввода») нужно нажать на клавишу:
i.
Переход обратно в «Обычный режим» нужно нажать:
ESC - иногда 2 раза.

i - Перейти в режим ввода с текущей позиции.

I - Переместиться в начало строки и перейти в режим ввода.

a - Перейти в режим ввода после курсора.

А - Переместиться в конец строки и перейти в режим ввода.

o - Перейти в режим ввода с новой строки под курсором.

O - Перейти в режим ввода с новой строки над курсором.

R - Перейти в режим ввода с забиванием текста.

r - Заменить один символ

x - Удалить символ под курсором.

X - Удалить символ влево (удалить символ перед курсором).

d - Удаляет символы с текущего положения курсора до положения после ввода команды перемещения.

Пример:
dw - удаляет символы с текущего до конца слова;
diw - удаляет слово под курсором.

с - Команда аналогичная 'd', но после удаление переходит в режим ввода. Очень удобная альтернатива команде 'R'.

dd - Удалить текущую строку (вырезать).

d<число>d - Стирание числа строк начиная с текущей.

yy - Копирование текущей строки в неименованный буфер.

y<число>y - Копирование числа строк начиная с текущей в неименованный буфер.

p - Вставка содержимого неименнованного буфера под курсором.

P - Вставка содержимого неименнованного буфера перед курсором.

J - Слияние текущей строки со следующей

u - Отмена последней команды.

U - Отмена всех последних изменений в строке.

Повтор последней команды:
Ctrl-r; или

:redo


Запись/выход

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

ZQ, :q! - Выйти без сохранения.

ZZ, :wq, :x - Записать файл и выйти (если файл не изменяли, то записываться он не будет).

:w<Enter> - Записать файл.

:sav <имя_файла><Enter>, :w <имя_файла><Enter> - Сохранить как...

:q<Enter> - Выйти из редактора (если не редактировали файл).

:q!<Enter> - Выйти из файла, не сохраняя изменения.

:qa!<Enter> - Выйти из всех файла, не сохраняя изменения.


Дополнительные возможности

^G - Показать информацию о файле.

:<number>, <number>G - Перейти на строку с номером <number>.

Отобразить слева нумерацию строк:

:set number

Спрятать нумерацию строк:

:set nonumber

Переносить длинные строки:

:set wrap

Не переносить длинные строки:

:set nowrap

Включить/выключить подсветку синтаксиса:

:sy[ntax] on/off

Задать цветовую тему:

:colorscheme <name>

//Комментарии: <name> - имя темы, TAB работает как авто-дополнение.

Список возможной помощи (:viusage, :exusage):

:h или :help

Привести концы строк в файле к виду dos или unix соответственно:

:set fileformat=dos
:set fileformat=unix

Задать размер табуляции в 4 пробела:

:set tabstop=4
:set expandtab

Конвертация кодировки файла:

:set fenc=cp1251<Enter>
:set fenc=koi8-r<Enter>
:set fenc=ibm866<Enter>
:set fenc=utf-8<Enter>

Смена кодировки (возможна до внесения изменений в редактируемый файл. т.е. сразу после открытия):

:e ++enc=cp1251<Enter>
:e ++enc=koi8-r<Enter>
:e ++enc=ibm866<Enter>
:e ++enc=utf-8<Enter>

Визуальный режим

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

  1. Пометка начала блока с помощью 'v', 'V' или 'Ctrl-V'. Блок помечается с того символа на котором находится курсор (по умолчанию).
  2. Перемещение курсора в конец необходимого блока. Последний символ также будет включен в выделенный блок.
  3. Вызов необходимой команды.
  • 'v' - команда предназначена для выделения текста посимвольно. Символы до и после курсора в строке не будут входить в выделение. Необходима в первую очередь для копирования участков текста в строке.
  • 'V' — для выделения текста построчно.
  • 'Ctrl-V' — для выделения прямоугольного участка текста. Удобна в случае редактирования структурированного текста.


Конвертация кодировки файла

  • Текущая используемая в Vim кодировка задается переменной encoding (enc).
  • Кодировка отображения задается переменной termencoding (tenc).
  • Кодировка сохранения файла задается переменной fileencoding (fenc).

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

Задаем текущую кодировку cp1251:

:e ++enc=cp1251

Текст конвертируется и nvi (vim) отобразит изменения, если они произошли. Исходный файл не изменился.

Задаем кодировку сохранения файла utf-8:

:set fileencoding=utf-8

Задаем формат переводов строки (dos, unix или mac):

:set fileformat=unix

Сохраняем файл и выходим:

:wq

Тэги: [BSD, FreeBSD, OpenBSD, nvi, vim, редактор, текст, текстовый редактор, программа]

Комментариев нет:

Отправить комментарий