PDA

Просмотр полной версии : Использование редактора vi.


anton
20.06.2007, 19:55
Добрый вечер!

Часто сталкиваюсь с необходимостью редактирования файлов при отсутствии «дружелюбного» редактора типа mcedit и т.п

Надоело мучаться и вот решил потратить некоторое время, чтобы овладеть тем, что всегда под рукой — редактором vi )

Подумал, какие действия необходимо осуществлять при работе с текстом, насобирал информацию в интернете, составил шпаргалочку, заучил наизусть. Радуюсь ))

Хочу поделиться составленным файликом с командами. Возможно, кому-то окажется полезным.

Arsak
20.06.2007, 22:02
недоступна шпаргалочка

anton
20.06.2007, 22:14
недоступна шпаргалочка

Странно, вроде открывается (зашёл под своим логином, скачивается, открывается)

Ну ладно, тогда так:
(только всё форматирование пропало)


«Шпаргалка» по использованию редактора vi.


##################################################


Открытие файлов.
#########

vi /etc/resolv.conf Открыть файл
vi+3 /etc/resolv.conf Открыть файл с 3-ей строки
:e /etc/lilo.conf Открыть файл, находясь в редакторе vi

:sp /etc/lilo.conf разделить окно и открыть файл
:split /etc/lilo.conf разделить окно и открыть файл
<CTRL+w> 2 раза переход от одного окна к другому

:r /etc/fstab загрузить файл /etc/fstab в буфер
:r!lsmod загрузить вывод программы lsmod в буфер

:e! перезагрузить текущий файл


Работа с текстом в командном режиме.
#########

<ESC> перейти в командный режим

h перейти влево на один символ
j перейти вниз на один символ
k перейти вверх на один символ
l перейти вправо на один символ
0 перейти в начало строки
$ перейти в конец строки

w/W перейти в начало следующего слова/большого слова, вперёд
e/E перейти в конец слова/большого слова, вперёд
b/B перейти в начало слова/большого слова, назад
(/) перейти в начало текущего/следующего предложения, вперёд
{/} перейти в начало текущего/следующего, назад

G перейти в конец файла
3G перейти на строку с номером 3
:1 перейти в начало файла
:47 перейти к 47-й строке

<CTRL+B> перейти на страницу вверх
<CTRL+F> перейти на страницу вниз

/<текст> искать текст
n/N повторить поиск в прямом/обратном направлении
/asdf искать asdf в тексте после курсора
?asdf искать ?sdf в тексте до курсора
/ повтор последнего поиска в тексте после курсора
? повтор последнего поиска в тексте до курсора

x/X удалить символ под/перед курсором
10x удалить 10 символов с текущей позиции курсора
J объединить текущую строку со следующей
r<символ> заменить символ под курсором на <символ>
dd удалить текущую строку
5dd удалить 5 строк, начиная с текущей
d<место> удалить текст от курсора до <места> его перемещения

u отменить операцию
. повторить операцию


Работа с текстом в режиме вставки.
#########

i/a перейти в режим вставки перед/за курсором
I/A перейти в режим вставки в начале/конце текущей строки
o/O перейти в режим вставки в новой строке после/перед текущей
сс заменить текущую строку
c<место> замена текста от курсора до <места> его назначения
R перейти в режим замены


Работа с текстом в экранном режиме (вырезание, копирование, вставка).
#########

v перейти в экранный режим
v<место> перейти в экранный режим и выделить курсор до <места>
d/y вырезать/скопировать выделение
p/P вставить выделение после/перед курсором


Примеры комбинирования команд.
#########

3l перейти на 3 символа вправо
4) перейти на 4 предложения
2b перейти на 2 слова назад
12} перейти на 12 абзацев вперёд

d3w удалить следующие 3 слова после курсора
d} удалить остаток абзаца после курсора
d) удалить остаток предложения после курсора

с) заменить остаток предложений после курсора
c$ заменить остаток строки после курсора

v5l перейти в экранный режим и выделить 5 символов вправо с текущего положения курсора
v$ перейти в экранный режим и выделить всю строку с текущего положения курсора
vG перейти в экранный режим и выделить весь файл с текущего положения курсора


Поиск и замена текста.
#########

:s/<что>/<чем>/ заменить 1-ое совпадение в текущей строке
:s/<что>/<чем>/g заменить все совпадения в текущей строке
:%s/<что>/<чем>/g заменить все совпадения в файле
:%s/<что>/<чем>/gc заменить все совпадения в файле с подтверждением


Табуляция.
#########

:set autoindent включить абзацный отступ
<CTRL+D> увеличить уровень отступа
<CTRL+T> уменьшить уровень отступа
:set tabstop=4 установить абзацный отступ в 4 символа


Кодировка.
#########

:e ++enc=cp1251 сменить кодировку символов в открытом файле


Завершение работы.
#########

:q выход
:q! выход из файла без сохранения
:wq сохранить файл и выйти
:x сохранить файл и выйти
:w сохранить файл без выхода
:w <имя файла> сохранить буфер в файле <имя файла>