Како користити уређиваче, Regex и Hooks са Z-shell-ом
Увод
Z-shell (такође познат као zsh
) је моћна командна интерпретатора за Јуникс-сличне оперативне системе. Поред уобичајених карактеристика шкољке, попут наредбеног реда, историје и аутоматског довршавања, Z-shell такође пружа низ напредних функција, укључујући уређиваче, регуларне изразе и хукове.
У овом чланку ћемо истражити како да користите ове функције ефикасно да бисте побољшали свој продуктивност и аутоматизовали задатке у Z-shell-у.
Уређивачи
Z-shell има два уграђена уређивача: zle
и vi
. zle
је лак за коришћење уређивач кључних веза, док је vi
моћнији уређивач текста.
Коришћење уређивача zle
Након што вам је КЕИМАП омогућен, можете користити следеће тастере за кретање и уређивање текста на командној линији:
* Стрелице: за кретање по линији наредбе
* Ctrl+A: за кретање на почетак линије наредбе
* Ctrl+E: за кретање до краја линије наредбе
* Backspace и Delete: за брисање текста
* Ctrl+Y: за поништење брисања
* Ctrl+W: за брисање речи лево од курсора
* Ctrl+U: за брисање речи десно од курсора
Коришћење уређивача vi
Да бисте ушли у режим уређивања vi
, притисните Esc
и затим v
. Када сте у режиму уређивања vi
, можете користити следеће команде за уређивање текста:
* h, j, k, l: за кретање по линији наредбе
* w, b: за кретање по речима
* x, d: за брисање текста
* y: за копирање текста
* p: за налепљивање текста
* u: за поништавање промена
* Ctrl+C: за излазак из режима уређивања vi
Регуларни изрази
Регуларни изрази су моћан алат за тражење и манипулисање низовима. Z-shell подржава регуларне изразе Перл компатибилне синтаксе.
Основи регуларних израза
* .:
одговара било ком појединачном знаку
* \d: одговара било којој цифри
* \w: одговара било којем алфанумеричком знаку или подвлачењу
* \s: одговара било ком белим простором
.: одговара било којој комбинацији знакова
* [abc]: одговара било ком знаку у наведеном скупу
* [^abc]: одговара било ком знаку који није у наведеном скупу
* ^: одговара почетку низа
* $: одговара крају низа
Коришћење регуларних израза у Z-shell-у
Можете користити регуларне изразе у Z-shell-у на следеће начине:
* Поређење низова: Наредба [[ $variable =~ regex ]] проверава да ли вредност променљиве одговара наведеном регуларном изразу.
sed
* Претраживање и замењивање низова: Наредба се може користити за претраживање и замењивање низова помоћу регуларних израза.
grep
* Филтрирање низова: Naredba se može koristiti
za filtriranje redova koji odgovaraju navedenom regularnom izrazu.
Хукови
Хукови су комади кода који се извршавају када се десе одређени догађаји у Z-shell-у. Z-shell има низ уграђених хукова које можете користити да прилагодите понашање шкољке.
Уграђени хукови
Неки од најкориснијих уграђених хукова укључују:
* precmd: се извршава пре извршавања сваке наредбе
* preexec: се извршава непосредно пре извршавања сваке наредбе
* chpwd: се извршава када се промени текући радни директоријум
* logout: се извршава када се одјавите из Z-shell-а
Креативни хукови
Можете да дефинишете своје властите хукове помоћу наредбе zle -N. На пример, можете дефинисати прилагођени кључ за брзо прелажење на почетак линије наредбе:
<code>
zle -N goto-bol
zle -a goto-bol "^A"
</code>
Закључак
Уређивачи, регуларни изрази и хукови су моћне функције које можете користити за побољшање своје продуктивности и аутоматизовање задатака у Z-shell-у. Изучавањем и коришћењем ових функција, можете прилагодити Z-shell да одговара вашим специфичним потребама и побољшате своје целокупно искуство коришћења командне линије.
ФАК
1. Шта је КЕИМАП?
КЕИМАП је скуп пречица на тастерима које можете да користите за обављање задатака у Z-shell-у.
2. Које су предности коришћења уређивача vi?
Уређивач vi је моћнији од уређивача
zle и пружа шири скуп команди за уређивање текста.
3. Како могу да користим регуларни израз за претраживање наредбе у историји?
Можете користити следећу наредбу: history | grep regex`
4. Како могу да дефинишем прилагођени хук за извршавање када се промени текући радни директоријум?
zle -N cwd-hook
zle -a cwd-hook chpwd
5. Који су неки додатни уграђени хукови који су корисни у Z-shell-у?
* preexec_notify: се извршава пре извршавања сваке наредбе и пружа додатне информације о извршеној наредби
* chprompt: се извршава када се измени командна линија
* zle-line-init: се извршава када се иницијализује линија наредбе
6. Како могу да сазнам више о хуковима у Z-shell-у?
Можете да прочитате следеће ресурсе:
* Званична документација Z-shell-а о хуковима
* Тим подскаст о хуковима у Z-shell-у
7. Који су неки додатни додаци које могу да користим са Z-shell-ом да побољшам своје искуство?
Неки од најпопуларнијих додатних додатака укључују:
* Oh-My-Zsh
* Zsh-syntax-highlighting
* Zsh-autosuggestions
8. Где могу да добијем подршку за Z-shell?
Можете добити подршку за Z-shell на следећим каналима: