Oracle DBA Forum  

Вернуться   Oracle DBA Forum > Установка и настройка > Linux основы > Linux основы

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 30.10.2010, 21:28
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Команды редактора VI

VI - текстовый редактор кошмар для случайного пользователя. Если его удается в конце-концов закрыть, то вздыхаешь с облегчением и твердой уверенностью, что больше не будешь запускать эту программу ни в коем случае.

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

Системы Unix не имеют в своем базовом комплекте ни одного нормального (еще раз подчеркну это слово - НОРМАЛЬНОГО) текстового редактора.

Поэтому системный администратор должен уметь пользоваться тем, что ему дают. А дают ему несравненный "Визуальный" экранный редактор файлов - Редактор VI.


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

vi /file_folder/filename - открыть файл в редакторе vi
vi /file_folder/filename ++25 - открыть файл в редакторе vi и перейти к строке 25.

i - включить режим внесения зменений. В данном режиме vi работает как и большинство текстовых редакторов.
[Esc] - выйти из данного режима

u - undo (отмена)
CTRL + R - redo

:w [Enter] - сохранить внесенные изменения.

:q! [Enter] - выйти без сохранения изменений
:wq [Enter] - сохранить внесенные изменения и выйти.

dd - удалет строку на которой находится курсор
x - удалет символ на котором находится курсов
d, SHIFT+4 - удалет символы справа от текущего курсора до конца строки.


[y] - копирует строку в буфер
[P] - вставляет скопированную строку после той, на которой в текущий момент находится курсор


Поиск:

/text [Enter] - выполняет поиск "text" в тексте


Автозамена:

:%s/6201/6202/gc - ищет в документе вхождение 6201 и меняет (с подтверждением) на 6202 (замена порта).


Показать/Скрыть номера строк в редакторе vi:

:set nu - нумеровать строки
:set nonu - не нумеровать строки

Чтобы редактор сохранил настройки, необходимо в файле ~/.vimrc

прописать строку, например set nu

------------------------------

vi ~/.vimrc

Код взят на каком-то из девелоперских серверов.
Достаточно удобно по F2 сохранять результат, а по F10 выходить.
Впрочем это удобно когда количество серверов можно посчитать по пальцам. А когда их куча, лучше всетаки научиться пользоваться теми возможностями, которые продоставляет предоставляет каждый.

Код:
  1 set nocompatible
  2
  3 colorscheme desert
  4
  5 set novisualbell
  6
  7 set nu
  8
  9 set termencoding=utf-8
 10
 11 set hidden
 12
 13 set ch=1
 14 set showcmd
 15
 16 syntax on
 17
 18 set autoindent
 19 set smartindent
 20
 21 nmap <F2> :w<cr>
 22 vmap <F2> <esc>:w<cr>i
 23 imap <F2> <esc>:w<cr>i<right>
 24
 25 imap <Ins> <Esc>i
 26
 27 map <F10> :q!<cr>
 28 vmap <F10> <esc>:q!<cr>
 29 imap <F10> <esc>:q!<cr>
---------------

При копировании из буфера какого-то текста, например конфига или xml, иногда он превращается в галимый фарш, который нужно еще несколько минут форматировать руками.

Оказалась, что есть опция

Код:
:set paste
Она позволяет корректно вставлять такого рода блоки в окно редактора.

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

В Ubuntu, Debian like дистрибутивах
$ sudo apt-get install -y vim

В Centos, RedHat, Oracle Linux
$ sudo yum install -y vim

---------------------------

Небольшое отступление:

В моем опыте (раннем) работы с данным редактором, были случаи, когда приходилось выключать работающую систему по питанию, лишь бы выйти из этого @#$%# редактора. Поэтому, обращаю внимание, что если раскладка клавиатуры, в режиме ввода кириллических символов, какие-либо команды игнорируются.

---------------------------

Совсем немного команд.
Но чувствуете, как мы стали более лучше работать с VI?

Последний раз редактировалось Marley; 20.02.2016 в 03:03.
Ответить с цитированием
  #2  
Старый 10.02.2011, 10:46
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Основные команды редактора vi

Основные команды навигации в редакторе vi

h - переход на один символ влево
l - переход на один символ вправо
j - переход на одну строку вниз
k - переход на одну строку вверх

w - переход к началу следующего слова
b - переход к началу предыдущего слова

$ - переход в конец текущей строки
^ - переход в начало текущей строки

:G - переход в конец файла
:l - переход в начало файла


Помимо команд для перемещения курсора, в редакторе vi также доступно и много команд для манипулирования текстом. Обычный среднестатистический администратор баз данных вполне может обходиться и теми несколькими текстовыми командами, которые перечислены ниже.


Основные команды манипуляции текста в редакторе vi

i - начинает вставку с текущего символа
a - начинает вставку со следующего символа

o - начинает вставку с новой строки ниже
O - начинает вставку с новой строки выше

x - удаляет символ, на котором находится курсор
dd - удаляет строку, на котором находится курсор

r - заменяет символ, на котором находится курсор


/text - выполняет поиск определенной строки текста
:s/old/new/g - заменяет строку текста новой строкой

yy - перемещает строку

P - вставляет скопированную строку после той, на которой в текущий момент находится курсор
p - вставляет скопированную строку над той, на которой в текущий момент находится курсор

:wq - созраняет изменения и завершает работу рудактора
:q! - завершает работу редактора без сохранения изменений

Последний раз редактировалось Marley; 10.02.2011 в 11:53.
Ответить с цитированием
  #3  
Старый 10.02.2011, 10:52
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Очень кратко о редакторе "VI"

Очень кратко о редакторе "VI"

Редактор VI имеет три режима:


1. Командный - в этом режиме можно перемещаться по файлу и
выполнять редактирующие команды над текстом. Команды вызываются
ОБЫЧНЫМИ ЛАТИНСКИМИ БУКВАМИ.

2. Ввода текста - в этом режиме обычные латинские буквы будут
вставляться в текст.

3. Режим строчного редактора ED используется для управления
файлами (типа сохранить файл, зачитать файл и т.д.)

Прочитайте предыдущий абзац еще раз. Вы еще не испугались?
Хорошо. Поехали.

Итак:

vi имя_файла

VI в КОМАНДНОМ РЕЖИМЕ.

ЧТОБЫ ВЫЙТИ ИЗ ФАЙЛА БЕЗ СОХРАНЕНИЯ, нажмите:
ESC : q ! Enter

чтобы выйти из файла, сохранив изменения, нажмите:
ESC : w ! Enter
ESC : q Enter
выйти из файла с сохранением, одной командой:
ESC : wq Enter


для перехода В РЕЖИМ ВВОДА нужно нажать команды типа:


"i" вставлять здесь
"A" вставлять с конца строки
"cw" заменять текущее слово

ESC для ВОЗВРАТА В КОМАНДНЫЙ РЕЖИМ
CTRL-[ для возврата в командный режим

для перехода В РЕЖИМ УПРАВЛЕНИЯ ФАЙЛАМИ нужно нажать
":" (перейти в режим редактора ED)


Двигаться по файлу можно командами:


h,j,k,l влево, вниз, вверх, вправо
Ctrl-F На страницу вниз
Ctrl-B На страницу вверх
А если вам очень повезет, то можно будет двигаться стрелочками.
Чтобы перейти в режим везения, нужно описать для операционной
системы ваш терминал. Этим займемся в дальнейшем (см.
"Описание терминалов, terminfo, termcap").

Подгоните курсор к нужному месту и нажмите
i перевод в режим ввода
вводите требуемый текст
ESC прекратить ввод, перейти в командный режим

Подгоните курсор к ненужному месту и нажмите
x удалить символ
dd удалить строчку


Еще парочка полезных команд:



o вставлять с новой строки (под текущей строкой)
a в режим ввода ЗА курсором
5yy запомнить 5 строчек
Подгоните курсор к нужному месту
p вставить запомненные строки под курсором
P вставить запомненные строки НАД курсором

J Склеить две строки
/Шаблон поиска Enter - поиск
n Повторить поиск



http://lib.ru/unixhelp/vi.txt

Последний раз редактировалось Marley; 10.02.2011 в 11:31.
Ответить с цитированием
  #4  
Старый 10.02.2011, 10:58
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Список команд редактора VI

Редактор VI. Список команд

Код:
РЕЖИМЫ: Ввода == ESC ====> Командный == :Q ==> Редактора ed
            ^                  |     ^                |
            +----aAiIcCrRs <---+     +----- vi -------+


ПЕРЕМЕЩЕНИЕ ПО ФАЙЛУ


{стрелки},hjkl
^U/^D табуляция вверх/вниз
^F/^B страницу вниз/вверх
^E/^Y подвинуться на строку вниз/вверх
w/b/e вперед/назад на слово/в конец слова
W/B/E вперед/назад на слово/в конец опробеленного слова
(/) назад/вперед на предложение
{/} назад/вперед на абзац
[[/]] назад/вперед на функцию или секцию
% найти парную скобку ( или {
{n}G на строку {n}
{n}| в колонку {n}
H/M/L в начало/середину/конец экрана
z/z./z- текущую строку в начало/середину/конец экрана
^/$/0 начало/конец строки


РЕДАКТИРОВАНИЕ ТЕКСТА


x уничтожить символ
X забой
J склеить строки


В РЕЖИМЫ ВВОДА


a/i / A/I вставка за/перед _ / концом/началом строки
R режим замены
r буква на букву
s буква на буквы
o/O вставить строку под/над _
C$ Заменить конец строки


ИНФОРМАЦИЯ


^G о текущем файле и строке


ОТКАТКА


u откатка (одна)
^L/^R перерисовать


РЕДАКТИРОВАНИЕ В РЕЖИМЕ ВВОДА


ESC вернуться в командный режим
Забой Забой
^W/^U Убрать слово/Убрать строку
^V Вставить CRTL-символ[ы]


ОПЕРАТОРЫ С ПОЗИЦИОНИРОВАНИЕМ


p/P вспомнить фрагмент за/перед _

{n} ["буква_буфер] "команда" {m}"команда позиционирования"
весь фрагмент запоминается! или повтор команды для строки
d уничтожать фрагмент
y запоминать фраг
c заменить фрагмент (==> в режим ввода )
</> сдвинуть влево/вправо
! команда пропустить фрагмент через фильтр


ПРИМЕРЫ


7yy запомнить 7 строк в неименованном буфере
"aAd{ добавить к буф a с удалением от _ до начала абзаца
!G sort отсортировать строки от курсора и до конца


"МАКРОКОМАНДЫ"


:map клавиша_имя_макро тело_макрокоманды {CR}
:map! клавиша_имя_макро тело_макрокоманды {CR} - в режиме ввода
:ab сокращение сокращаемый_текст {CR} - в режиме ввода


ПОИСК


?строка искать вверх
/строка искать вниз
n повторить поиск
N вернуться на последнюю найденную строку


ПОИСК_С_ЗАМЕНОЙ


:s/рег_выраж/замена/gc - глобальный с подтверждением
:Q/vi вход / выход в режим ed
:g/строка - поставить визуальный фильтр
:+5 движение по файлу


РЕДАКТОР_ED. Вход ":" (надолго "Q") Выход "CR" / (VI)


^^ Перейти в альтернативное окно
:[1,$] w [>>] [file] записать в file [от 1 до $ строки]
:q[!] закончить сеанс [форсированно]
:[15]r [file] или [!komanda] вставить после [15] стр
:e редактировать новый файл
:n редактировать следующий файл
:sh выйти в Shell
:! команда запустить на выполнение Shelloм


УСТАНОВКА РЕЖИМОВ VI


:set nu / nonu нумеровать/ненумеровать строки
:set smd{CR} показывать текущий режим
EXINIT="конфигурационные команды" - переменная окружения
.exrc - файл с командами конфигурации



http://lib.ru/unixhelp/vibegin.txt

Последний раз редактировалось Marley; 10.02.2011 в 11:32.
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 18:33. Часовой пояс GMT +3.


Powered by vBulletin®