VIM рэдактар — различия между версиями
Svetit (обсуждение | вклад) (→Перамяшчэнне курсора) |
Svetit (обсуждение | вклад) (→Аб'яднанне радкоў) |
||
(не показано 26 промежуточных версии этого же участника) | |||
Строка 1: | Строка 1: | ||
'''Мэта:''' | '''Мэта:''' | ||
− | + | Пазнаёміцца з рэдактарам vi, навучыцца базавым камандам працы з рэдактарам. | |
==Тэорыя== | ==Тэорыя== | ||
− | Большасць | + | Большасць дыстрыбутываў Linux утрымлівае не сапраўдны рэдактар vi, а яго палепшаную версію vim (Vi IMproved), створаную Брамам Мулінарам (Bram Moolenaar). Першасны ж vi рэдактар быў створаны студэнтам Каліфарнійскага універсітэту у Берклі - Біллі Джоем. |
− | Vim значна больш дасканалы за традыцыйны vi | + | Vim значна больш дасканалы за традыцыйны vi і у сістэмах Linux звычайна выкарыстоўваецца пад сімвалічнай спасылкай (ці псеўданімам) vi. |
− | ===Запуск | + | ===Запуск і завяршэнне vi=== |
− | Каб | + | Каб запусціць vi увядзіце каманду: |
> vi | > vi | ||
− | Каб | + | Каб выйсці з рэдактара: |
:q | :q | ||
− | + | Звярніце ўвагу, што двухкропье таксама частка каманды. | |
− | + | Калі вы ўнесці нейкія змены, але хочыце выйсці з рэдактара, не захоўваючы іх: | |
:q! | :q! | ||
− | + | Калі вы ўнеслі нейкія змены і хочаце іх захаваць: | |
:w | :w | ||
− | + | Калі вы ўнеслі нейкія змены і хочаце іх захаваць і выйсці: | |
:wq | :wq | ||
− | Каманды, | + | Каманды, якія прыведзены вышэй, уводзяцца у камандным рэжыме (нармальным рэжыме vi) і пачынаюцца з двухкропья - называюцца '''ех-каманды'''. |
===Рэжым рэдагавання=== | ===Рэжым рэдагавання=== | ||
Строка 30: | Строка 30: | ||
Адкрыць файл у рэдактары vi: | Адкрыць файл у рэдактары vi: | ||
> vi file.txt | > vi file.txt | ||
− | + | Калі файл file.txt не існуе, то ён будзе створаны. | |
− | Vi | + | Vi зъяўляецца рэжымным рэдактарам. Адразу пасля запуска vi знаходзіцца у камандным рэжыме. У гэтым рэжыме амаль кожная клавіша з'яўляецца камандай, таму калі вы пачнеце ўводзіць тэкст, то можаце заблытацца і заблытаць vi. |
− | Пераход у рэжым | + | Пераход у рэжым устаўкі (тэкста): |
− | + | націсніце клавішу I(i), ці кнопку Insert | |
− | + | Знізу дакумента можа з'явіцца надпіс -- INSERT -- | |
− | Цяпер можна | + | Цяпер можна увесці тэкст. |
− | + | Выйсці з рэжыму устаўкі (рэжыму рэдагавання): | |
− | + | націсніце кнопку ESC | |
===Перамяшчэнне курсора=== | ===Перамяшчэнне курсора=== | ||
− | У камандным рэжыме vi | + | У камандным рэжыме vi прапаноўвае вялікую колькасць камандаў па кіраванню курсорам. Частка гэтых камандаў выкарыстоўваецца прыладай less. |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! | + | !Клавіша |
!Змяшчае курсор | !Змяшчае курсор | ||
|- | |- | ||
− | |L | + | |L ці стрэлка управа |
− | |Управа на | + | |Управа на адзін сімвал |
|- | |- | ||
− | |H | + | |H ці стрэлка улева |
− | |Улева на | + | |Улева на адзін сімвал |
|- | |- | ||
− | |J | + | |J ці стрэлка уніз |
− | | | + | |Уніз на адзін сімвал |
|- | |- | ||
− | |K | + | |K ці стрэлка уверх |
− | |Уверх на | + | |Уверх на адзін сімвал |
|- | |- | ||
|0 (нуль) | |0 (нуль) | ||
Строка 66: | Строка 66: | ||
|- | |- | ||
|SHIFT+6 (^) | |SHIFT+6 (^) | ||
− | |Да першага непрабельнага | + | |Да першага непрабельнага сімвала у бягучым радку |
|- | |- | ||
|SHIFT+4 ($) | |SHIFT+4 ($) | ||
Строка 72: | Строка 72: | ||
|- | |- | ||
|w | |w | ||
− | |Да пачатку наступнага слова, | + | |Да пачатку наступнага слова, ці да знаку прыпынку |
|- | |- | ||
|SHIFT+w (W) | |SHIFT+w (W) | ||
− | |Да пачатку наступнага слова, | + | |Да пачатку наступнага слова, мінуючы знакі прыпынку |
|- | |- | ||
|b | |b | ||
− | |Да пачатку папярэдняга слова, | + | |Да пачатку папярэдняга слова, ці да знаку прыпынку |
|- | |- | ||
|SHIFT+b (B) | |SHIFT+b (B) | ||
− | |Да пачатку папярэдняга слова, | + | |Да пачатку папярэдняга слова, мінуючы знакі прыпынку |
|- | |- | ||
− | |CTRL+F | + | |CTRL+F ці Page Down |
− | | | + | |Уніз на адну старонку |
|- | |- | ||
− | |CTRL+B | + | |CTRL+B ці Page Up |
|Уверх на адну старонку | |Уверх на адну старонку | ||
|- | |- | ||
− | | | + | |лічба-SHIFT+g |
|Да радка з пазначаным нумарам. (Напрыклад, каманда 1G выканае пераход да першага радка у файле) | |Да радка з пазначаным нумарам. (Напрыклад, каманда 1G выканае пераход да першага радка у файле) | ||
|- | |- | ||
Строка 97: | Строка 97: | ||
===Асновы рэдагавання=== | ===Асновы рэдагавання=== | ||
− | Рэдагавання у | + | Рэдагавання у асноўным заключаецца у некалькіх простых аперацыях: устаўка тэкста, выдаленне тэкста, перамяшчэнне частак тэкста, капіраванне. |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! | + | !Клавіша |
!Выконвае аперацыю | !Выконвае аперацыю | ||
|- | |- | ||
|SHIFT+u (U) | |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. |
Текущая версия на 15: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.