VIM рэдактар — различия между версиями
Svetit (обсуждение | вклад) (Новая страница: «'''Мэта:''' Пазнаёмицца з рэдактарам») |
Svetit (обсуждение | вклад) (→Аб'яднанне радкоў) |
||
(не показано 47 промежуточных версии этого же участника) | |||
Строка 1: | Строка 1: | ||
'''Мэта:''' | '''Мэта:''' | ||
− | + | Пазнаёміцца з рэдактарам vi, навучыцца базавым камандам працы з рэдактарам. | |
+ | |||
+ | ==Тэорыя== | ||
+ | Большасць дыстрыбутываў Linux утрымлівае не сапраўдны рэдактар vi, а яго палепшаную версію vim (Vi IMproved), створаную Брамам Мулінарам (Bram Moolenaar). Першасны ж vi рэдактар быў створаны студэнтам Каліфарнійскага універсітэту у Берклі - Біллі Джоем. | ||
+ | |||
+ | Vim значна больш дасканалы за традыцыйны vi і у сістэмах Linux звычайна выкарыстоўваецца пад сімвалічнай спасылкай (ці псеўданімам) vi. | ||
+ | |||
+ | ===Запуск і завяршэнне vi=== | ||
+ | Каб запусціць vi увядзіце каманду: | ||
+ | > vi | ||
+ | |||
+ | Каб выйсці з рэдактара: | ||
+ | :q | ||
+ | Звярніце ўвагу, што двухкропье таксама частка каманды. | ||
+ | |||
+ | Калі вы ўнесці нейкія змены, але хочыце выйсці з рэдактара, не захоўваючы іх: | ||
+ | :q! | ||
+ | |||
+ | Калі вы ўнеслі нейкія змены і хочаце іх захаваць: | ||
+ | :w | ||
+ | |||
+ | Калі вы ўнеслі нейкія змены і хочаце іх захаваць і выйсці: | ||
+ | :wq | ||
+ | |||
+ | Каманды, якія прыведзены вышэй, уводзяцца у камандным рэжыме (нармальным рэжыме vi) і пачынаюцца з двухкропья - называюцца '''ех-каманды'''. | ||
+ | |||
+ | ===Рэжым рэдагавання=== | ||
+ | |||
+ | Адкрыць файл у рэдактары vi: | ||
+ | > vi file.txt | ||
+ | Калі файл file.txt не існуе, то ён будзе створаны. | ||
+ | |||
+ | Vi зъяўляецца рэжымным рэдактарам. Адразу пасля запуска vi знаходзіцца у камандным рэжыме. У гэтым рэжыме амаль кожная клавіша з'яўляецца камандай, таму калі вы пачнеце ўводзіць тэкст, то можаце заблытацца і заблытаць vi. | ||
+ | |||
+ | Пераход у рэжым устаўкі (тэкста): | ||
+ | націсніце клавішу I(i), ці кнопку Insert | ||
+ | Знізу дакумента можа з'явіцца надпіс -- INSERT -- | ||
+ | |||
+ | Цяпер можна увесці тэкст. | ||
+ | |||
+ | Выйсці з рэжыму устаўкі (рэжыму рэдагавання): | ||
+ | націсніце кнопку ESC | ||
+ | |||
+ | ===Перамяшчэнне курсора=== | ||
+ | У камандным рэжыме vi прапаноўвае вялікую колькасць камандаў па кіраванню курсорам. Частка гэтых камандаў выкарыстоўваецца прыладай less. | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | !Клавіша | ||
+ | !Змяшчае курсор | ||
+ | |- | ||
+ | |L ці стрэлка управа | ||
+ | |Управа на адзін сімвал | ||
+ | |- | ||
+ | |H ці стрэлка улева | ||
+ | |Улева на адзін сімвал | ||
+ | |- | ||
+ | |J ці стрэлка уніз | ||
+ | |Уніз на адзін сімвал | ||
+ | |- | ||
+ | |K ці стрэлка уверх | ||
+ | |Уверх на адзін сімвал | ||
+ | |- | ||
+ | |0 (нуль) | ||
+ | |У пачатак бягучага радка | ||
+ | |- | ||
+ | |SHIFT+6 (^) | ||
+ | |Да першага непрабельнага сімвала у бягучым радку | ||
+ | |- | ||
+ | |SHIFT+4 ($) | ||
+ | |У канец бягучага радка | ||
+ | |- | ||
+ | |w | ||
+ | |Да пачатку наступнага слова, ці да знаку прыпынку | ||
+ | |- | ||
+ | |SHIFT+w (W) | ||
+ | |Да пачатку наступнага слова, мінуючы знакі прыпынку | ||
+ | |- | ||
+ | |b | ||
+ | |Да пачатку папярэдняга слова, ці да знаку прыпынку | ||
+ | |- | ||
+ | |SHIFT+b (B) | ||
+ | |Да пачатку папярэдняга слова, мінуючы знакі прыпынку | ||
+ | |- | ||
+ | |CTRL+F ці Page Down | ||
+ | |Уніз на адну старонку | ||
+ | |- | ||
+ | |CTRL+B ці Page Up | ||
+ | |Уверх на адну старонку | ||
+ | |- | ||
+ | |лічба-SHIFT+g | ||
+ | |Да радка з пазначаным нумарам. (Напрыклад, каманда 1G выканае пераход да першага радка у файле) | ||
+ | |- | ||
+ | |SHIFT+g | ||
+ | |Да апошняга радка у файле | ||
+ | |} | ||
+ | |||
+ | ===Асновы рэдагавання=== | ||
+ | Рэдагавання у асноўным заключаецца у некалькіх простых аперацыях: устаўка тэкста, выдаленне тэкста, перамяшчэнне частак тэкста, капіраванне. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | !Клавіша | ||
+ | !Выконвае аперацыю | ||
+ | |- | ||
+ | |SHIFT+u (U) | ||
+ | |Адмена апошняй змены | ||
+ | |- | ||
+ | |I (i) | ||
+ | |Пераход з каманднага рэжыму у рэжым устаўкі | ||
+ | |- | ||
+ | |a | ||
+ | |Пры знаходжанні курсора у канцы радка, vi змесціцца за канец радка і перойдзе у рэжым устаўкі | ||
+ | |- | ||
+ | |SHIFT+a (A) | ||
+ | |Змяшчае курсор у канец радка і пераходзіць у рэжым устаўкі | ||
+ | |- | ||
+ | |ESC | ||
+ | |Выйсці з рэжыма у стаўкі. (Пераход у камандны рэжым) | ||
+ | |} | ||
+ | |||
+ | ====Устаўка радка==== | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | !Каманда | ||
+ | !Выконвае аперацыю | ||
+ | |- | ||
+ | |o (літара "о") | ||
+ | |Уставіць пусты радок '''ніжэй''' бягучага радка і перайсці у рэжым устаўкі | ||
+ | |- | ||
+ | |SHIFT+o (O) (літара "O") | ||
+ | |Уставіць пусты радок '''вышэй''' бягучага радка і перайсці у рэжым устаўкі | ||
+ | |} | ||
+ | |||
+ | ====Выдаленне (выразанне) тэкста==== | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | !Каманда | ||
+ | !Выдаліт | ||
+ | |- | ||
+ | |X | ||
+ | |Бягучы сімвал | ||
+ | |- | ||
+ | |3x | ||
+ | |Бягучы сімвал і наступныя за ім 2 сімвалы | ||
+ | |- | ||
+ | |dd | ||
+ | |Бягучы радок | ||
+ | |- | ||
+ | |5dd | ||
+ | |Бягучы радок і наступныя за ім чатыры радкі | ||
+ | |- | ||
+ | |dW | ||
+ | |Ад сімвала бягучай пазіцыі курсора да пачатку наступнага слова | ||
+ | |- | ||
+ | |d$ | ||
+ | |Ад сімвала бягучай пазіцыі курсора да канца бягучага радка | ||
+ | |- | ||
+ | |d0 | ||
+ | |Ад сімвала бягучай пазіцыі курсора да пачатку радка | ||
+ | |- | ||
+ | |d^ | ||
+ | |Ад сімвала бягучай пазіцыі курсора да першага непрабельнага сімвала ў радку | ||
+ | |- | ||
+ | |dG | ||
+ | |Ад бягучага радка да канца файла | ||
+ | |- | ||
+ | |d20G | ||
+ | |Ад бягучага радка да 20 радка файла | ||
+ | |} | ||
+ | |||
+ | ====Капіраванне тэкста==== | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | !Каманда | ||
+ | !Скапіруе | ||
+ | |- | ||
+ | |yy | ||
+ | |Бягучы радок | ||
+ | |- | ||
+ | |5yy | ||
+ | |Бягучы радок і наступныя за ім чатыры радкі | ||
+ | |- | ||
+ | |yW | ||
+ | |Ад сімвала бягучай пазіцыі курсора да пачатку наступнага слова | ||
+ | |- | ||
+ | |y$ | ||
+ | |Ад сімвала бягучай пазіцыі курсора да канца бягучага радка | ||
+ | |- | ||
+ | |y0 | ||
+ | |Ад сімвала бягучай пазіцыі курсора да пачатку радка | ||
+ | |- | ||
+ | |y^ | ||
+ | |Ад сімвала бягучай пазіцыі курсора да першага непрабельнага сімвала ў радку | ||
+ | |- | ||
+ | |yG | ||
+ | |Ад бягучага радка да канца файла | ||
+ | |- | ||
+ | |y20G | ||
+ | |Ад бягучага радка да 20 радка файла | ||
+ | |} | ||
+ | |||
+ | ====Устаўка тэкста==== | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | !Каманда | ||
+ | !Выконвае аперацыю | ||
+ | |- | ||
+ | |p | ||
+ | |Уставіць '''правей''' пазицыі курсора | ||
+ | |- | ||
+ | |SHIFT+p (P) | ||
+ | |Уставіць '''левей''' пазіцыі курсора | ||
+ | |} | ||
+ | |||
+ | ====Аб'яднанне радкоў==== | ||
+ | У рэдактары vi нельга перайсці ў канец радка і выдаліць сімвал, каб аб'яднаць быгучы радок з насутупным. Для гэтага выкарыстоўваецца каманда J. (Перамясціце курсор на бягучы радок, націсніце J і бягучы радок аб'яднаецца з наступным). | ||
+ | |||
+ | ===Глабальны пошук з заменай=== | ||
+ | Ех-каманда. Прыклад: | ||
+ | :%s/Радок/радок/g | ||
+ | Слова "Радок" заменіцца на слова "радок" ва ўсім файле. | ||
+ | |||
+ | * % - ад першага да апошняга радка | ||
+ | * 1,$ - ад радка нумар 1 да апошняга радка. | ||
+ | * 1,5 - ад радка нумар 1 да радка нумар 5. | ||
+ | |||
+ | * g - азначае global. Гэта значыць, што падстаноўва выконваецца ддля усіх уваходжанняў слова "Радок". Калі g апусціць, то замена будзе адбывацца толькі для першага ўваходжання слова "Радок" у кожным радку. | ||
+ | |||
+ | ==Заданне== | ||
+ | Для выканання заданняў вам спатрэбіцца шукаць дадатковую інфармацыю пра каманды shell у інтэрнэце! | ||
+ | |||
+ | ===Удаленае падключэнне да сэврвера на Windows=== | ||
+ | # Зайсці у тэчку "Загрузки", запусціць прыладу putty.exe | ||
+ | # У поле Host Name (or IP Address) запісаць 10.194.0.220 | ||
+ | # У акне кансолі ўвесці лагін: user і пароль: user. | ||
+ | |||
+ | Цяпер вы працуеце на ўдаленам Linux сэрверы. | ||
+ | |||
+ | ===Заданне 1=== | ||
+ | * У тэчцы '''laba_2''' стварыць тэкставы дакумент '''list_1.txt'''. | ||
+ | * У гэтым дакуменце напісаць ліст аднаму з цікавых людзей у свеце адкрытых тэхналогій: [https://be.wikipedia.org/wiki/%D0%A0%D1%8B%D1%87%D0%B0%D1%80%D0%B4_%D0%9C%D1%8D%D1%86%D1%8C%D1%8E_%D0%A1%D1%82%D0%BE%D0%BB%D0%BC%D0%B0%D0%BD Рычарду Столману], [https://be.wikipedia.org/wiki/%D0%9B%D0%BE%D1%80%D1%8D%D0%BD%D1%81_%D0%9B%D0%B5%D1%81%D1%96%D0%B3 Лоурэнсу Лесігу], [https://be.wikipedia.org/wiki/%D0%94%D0%B6%D1%8B%D0%BC%D1%96_%D0%92%D1%8D%D0%B9%D0%BB%D0%B7 Джымі Вэйлзу], [https://ru.wikipedia.org/wiki/%D0%A8%D0%B2%D0%B0%D1%80%D1%86,_%D0%90%D0%B0%D1%80%D0%BE%D0%BD Аарану Шварцу], [https://be.wikipedia.org/wiki/%D0%A6%D1%96%D0%BC_%D0%91%D0%B5%D1%80%D0%BD%D0%B5%D1%80%D1%81-%D0%9B%D1%96 Тіму Бернерсу-Лі], [https://be.wikipedia.org/wiki/%D0%9B%D1%96%D0%BD%D1%83%D1%81_%D0%A2%D0%BE%D1%80%D0%B2%D0%B0%D0%BB%D1%8C%D0%B4%D1%81 Лінусу Торвальдсу], [https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D0%B1%D0%B0%D0%BA%D1%8F%D0%BD,_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80%D0%B0_%D0%90%D1%81%D0%B0%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0 Аляксандры Элбакян], ці [https://ru.wikipedia.org/wiki/%D0%A1%D0%B0%D1%82%D0%BE%D1%81%D0%B8_%D0%9D%D0%B0%D0%BA%D0%B0%D0%BC%D0%BE%D1%82%D0%BE Сатошы Накамота]. Напісаць не менш за 15 радкоў тэкста. | ||
+ | |||
+ | ===Заданне 2=== | ||
+ | * Быць гатовым прадэманстраваць каманды рэдагавання тэкста па запыту выкладчыка. | ||
+ | |||
+ | ==Літаратура== | ||
+ | # Уильям Шоттс, "Командная строка Linux", 2017, c 146. |
Текущая версия на 14:29, 12 февраля 2018
Мэта: Пазнаёміцца з рэдактарам vi, навучыцца базавым камандам працы з рэдактарам.
Содержание
Тэорыя
Большасць дыстрыбутываў Linux утрымлівае не сапраўдны рэдактар vi, а яго палепшаную версію vim (Vi IMproved), створаную Брамам Мулінарам (Bram Moolenaar). Першасны ж vi рэдактар быў створаны студэнтам Каліфарнійскага універсітэту у Берклі - Біллі Джоем.
Vim значна больш дасканалы за традыцыйны vi і у сістэмах Linux звычайна выкарыстоўваецца пад сімвалічнай спасылкай (ці псеўданімам) vi.
Запуск і завяршэнне vi
Каб запусціць vi увядзіце каманду:
> vi
Каб выйсці з рэдактара:
:q
Звярніце ўвагу, што двухкропье таксама частка каманды.
Калі вы ўнесці нейкія змены, але хочыце выйсці з рэдактара, не захоўваючы іх:
:q!
Калі вы ўнеслі нейкія змены і хочаце іх захаваць:
:w
Калі вы ўнеслі нейкія змены і хочаце іх захаваць і выйсці:
:wq
Каманды, якія прыведзены вышэй, уводзяцца у камандным рэжыме (нармальным рэжыме vi) і пачынаюцца з двухкропья - называюцца ех-каманды.
Рэжым рэдагавання
Адкрыць файл у рэдактары vi:
> vi file.txt
Калі файл file.txt не існуе, то ён будзе створаны.
Vi зъяўляецца рэжымным рэдактарам. Адразу пасля запуска vi знаходзіцца у камандным рэжыме. У гэтым рэжыме амаль кожная клавіша з'яўляецца камандай, таму калі вы пачнеце ўводзіць тэкст, то можаце заблытацца і заблытаць vi.
Пераход у рэжым устаўкі (тэкста):
націсніце клавішу I(i), ці кнопку Insert
Знізу дакумента можа з'явіцца надпіс -- INSERT --
Цяпер можна увесці тэкст.
Выйсці з рэжыму устаўкі (рэжыму рэдагавання):
націсніце кнопку ESC
Перамяшчэнне курсора
У камандным рэжыме vi прапаноўвае вялікую колькасць камандаў па кіраванню курсорам. Частка гэтых камандаў выкарыстоўваецца прыладай less.
Клавіша | Змяшчае курсор |
---|---|
L ці стрэлка управа | Управа на адзін сімвал |
H ці стрэлка улева | Улева на адзін сімвал |
J ці стрэлка уніз | Уніз на адзін сімвал |
K ці стрэлка уверх | Уверх на адзін сімвал |
0 (нуль) | У пачатак бягучага радка |
SHIFT+6 (^) | Да першага непрабельнага сімвала у бягучым радку |
SHIFT+4 ($) | У канец бягучага радка |
w | Да пачатку наступнага слова, ці да знаку прыпынку |
SHIFT+w (W) | Да пачатку наступнага слова, мінуючы знакі прыпынку |
b | Да пачатку папярэдняга слова, ці да знаку прыпынку |
SHIFT+b (B) | Да пачатку папярэдняга слова, мінуючы знакі прыпынку |
CTRL+F ці Page Down | Уніз на адну старонку |
CTRL+B ці Page Up | Уверх на адну старонку |
лічба-SHIFT+g | Да радка з пазначаным нумарам. (Напрыклад, каманда 1G выканае пераход да першага радка у файле) |
SHIFT+g | Да апошняга радка у файле |
Асновы рэдагавання
Рэдагавання у асноўным заключаецца у некалькіх простых аперацыях: устаўка тэкста, выдаленне тэкста, перамяшчэнне частак тэкста, капіраванне.
Клавіша | Выконвае аперацыю |
---|---|
SHIFT+u (U) | Адмена апошняй змены |
I (i) | Пераход з каманднага рэжыму у рэжым устаўкі |
a | Пры знаходжанні курсора у канцы радка, vi змесціцца за канец радка і перойдзе у рэжым устаўкі |
SHIFT+a (A) | Змяшчае курсор у канец радка і пераходзіць у рэжым устаўкі |
ESC | Выйсці з рэжыма у стаўкі. (Пераход у камандны рэжым) |
Устаўка радка
Каманда | Выконвае аперацыю |
---|---|
o (літара "о") | Уставіць пусты радок ніжэй бягучага радка і перайсці у рэжым устаўкі |
SHIFT+o (O) (літара "O") | Уставіць пусты радок вышэй бягучага радка і перайсці у рэжым устаўкі |
Выдаленне (выразанне) тэкста
Каманда | Выдаліт |
---|---|
X | Бягучы сімвал |
3x | Бягучы сімвал і наступныя за ім 2 сімвалы |
dd | Бягучы радок |
5dd | Бягучы радок і наступныя за ім чатыры радкі |
dW | Ад сімвала бягучай пазіцыі курсора да пачатку наступнага слова |
d$ | Ад сімвала бягучай пазіцыі курсора да канца бягучага радка |
d0 | Ад сімвала бягучай пазіцыі курсора да пачатку радка |
d^ | Ад сімвала бягучай пазіцыі курсора да першага непрабельнага сімвала ў радку |
dG | Ад бягучага радка да канца файла |
d20G | Ад бягучага радка да 20 радка файла |
Капіраванне тэкста
Каманда | Скапіруе |
---|---|
yy | Бягучы радок |
5yy | Бягучы радок і наступныя за ім чатыры радкі |
yW | Ад сімвала бягучай пазіцыі курсора да пачатку наступнага слова |
y$ | Ад сімвала бягучай пазіцыі курсора да канца бягучага радка |
y0 | Ад сімвала бягучай пазіцыі курсора да пачатку радка |
y^ | Ад сімвала бягучай пазіцыі курсора да першага непрабельнага сімвала ў радку |
yG | Ад бягучага радка да канца файла |
y20G | Ад бягучага радка да 20 радка файла |
Устаўка тэкста
Каманда | Выконвае аперацыю |
---|---|
p | Уставіць правей пазицыі курсора |
SHIFT+p (P) | Уставіць левей пазіцыі курсора |
Аб'яднанне радкоў
У рэдактары vi нельга перайсці ў канец радка і выдаліць сімвал, каб аб'яднаць быгучы радок з насутупным. Для гэтага выкарыстоўваецца каманда J. (Перамясціце курсор на бягучы радок, націсніце J і бягучы радок аб'яднаецца з наступным).
Глабальны пошук з заменай
Ех-каманда. Прыклад:
:%s/Радок/радок/g
Слова "Радок" заменіцца на слова "радок" ва ўсім файле.
- % - ад першага да апошняга радка
- 1,$ - ад радка нумар 1 да апошняга радка.
- 1,5 - ад радка нумар 1 да радка нумар 5.
- g - азначае global. Гэта значыць, што падстаноўва выконваецца ддля усіх уваходжанняў слова "Радок". Калі g апусціць, то замена будзе адбывацца толькі для першага ўваходжання слова "Радок" у кожным радку.
Заданне
Для выканання заданняў вам спатрэбіцца шукаць дадатковую інфармацыю пра каманды shell у інтэрнэце!
Удаленае падключэнне да сэврвера на Windows
- Зайсці у тэчку "Загрузки", запусціць прыладу putty.exe
- У поле Host Name (or IP Address) запісаць 10.194.0.220
- У акне кансолі ўвесці лагін: user і пароль: user.
Цяпер вы працуеце на ўдаленам Linux сэрверы.
Заданне 1
- У тэчцы laba_2 стварыць тэкставы дакумент list_1.txt.
- У гэтым дакуменце напісаць ліст аднаму з цікавых людзей у свеце адкрытых тэхналогій: Рычарду Столману, Лоурэнсу Лесігу, Джымі Вэйлзу, Аарану Шварцу, Тіму Бернерсу-Лі, Лінусу Торвальдсу, Аляксандры Элбакян, ці Сатошы Накамота. Напісаць не менш за 15 радкоў тэкста.
Заданне 2
- Быць гатовым прадэманстраваць каманды рэдагавання тэкста па запыту выкладчыка.
Літаратура
- Уильям Шоттс, "Командная строка Linux", 2017, c 146.