Vi

Дусал нэвтэрхий толь-с
20:13, 9 Хоёрдугаар сар 2022-ий байдлаарх Almas (Яриа | оруулсан хувь нэмэр) хэрэглэгчийн хийсэн залруулга
(ялгаа) ←Хуучны засвар | Одоогийн засвар (ялгаа) | Дараагийн засвар→ (ялгаа)

vi бол Юникс системийн "төрөлх" бичвэр засварлагч юм.

vim бол vi-н түгээмэл тархсан өргөтгөсөн хувилбар юм. Зарим Линукс тархац дээр vi тушаалаар vim-г vi-д таарамжтай горимоор ажиллуулдаг.

vi-г "вий аая" гэж дууддаг.


Ерөнхий ойлголт

vi бол Юникс системийн сонгодог бичвэр засварлагч програм юм. nvi, vim, vile, elvis гэхчлэн хэд хэдэн хөгжүүлсэн хувилбар байдаг. ГНУ/Линукс системд vi тушаал сая дурьдсан хэдийн нэг байж таардаг (хуулбар буюу холбоос). Emacs засварлагчид байдаг хэд хэдэн vi-н горимийг ашиглан vi-н маш олон тушаалыг хэрэглэж болдог.

vi засварлагч хоёр горимд ажилладаг: тушаалын горим ба оруулгын горим.

Урьд ex хэмээх мөр засварлагч байсан нь хөгжөөд vi болжээ. (Харин ex-г АНУ-н Бэркэли дэх Калифорнийн Их Сургуульд Билл Жой хэмээх эр Юниксийн эртний мөр засварлагч болох ed-с салбарлан хөгжүүлсэн байна.)

Линукс системд ихэвчлэн vi-н хамгийн түгээмэл хувилбар болох Брэм Мүүлэнаарын Vi IMproved (Сайжруулсан Vi) буюу vim-г ашигладаг.


Тушаалын мөрийн бичиглэл

vi-г эхлүүлэх гурван үндсэн арга байдаг:

  • vi [сонголт] файл
  • vi [сонголт] +тоо файл Файлыг нээн дугаар мөрөн дээр аваачих
  • vi [сонголт] +/хэв файл Файлыг нээн /хэв-энд таарсан эхний мөрөнд аваачих

Хэрвээ файл заагаагүй бол хоосон эхлэнэ.


Тушаалын мөрийн сонголтууд

Зарим сонголт vi-н зөвхөн аль нэг хувилбарт л байдаг. vim-д хамаарах сонголтыг тусгайлан тэмдэглэлээ.

+[тоо]

тоо дугаартай мөрөөс эхлэн засварлана. Хэрвээ тоо заагдаагүй бол сүүлийн мөрөөс эхлэнэ.

+/хэв

хэв таарсан эхний мөрөөс эхлэн засварлана.

-b
Файлыг хоёртын горимд засварлана. {vim}

-c тушаал

Өгөгдсөн ex тушаалыг эхлэнгүүт ажиллуулна. vi-д -c сонголтыг ганц удаа л ашиглах боломжтой байдаг бол vim-д 10 удаа ашиглах боломжтой. Энэ сонголтын хуучин хэлбэр болох +тушаал одоо ч гэсэн дэмжигдэж яваа.

--cmd тушаал

-c сонголттой адил боловч тушаалыг аливаа нөөц файл уншигдахаас өмнө гүйцэтгэнэ. {vim}

-C
vim: Засварлагчийг vi-тэй таарамжтай горимд эхлүүлнэ.
-d
diff горимд ажиллуулна. Түүнчлэн vimdiff тушаалыг ашиглаж болно. {vim}
-D
Скриптэнд зориулсан алдаа шалгах (debug) горим. {vim}

-e

ex хэлбэрээр ажиллуулна (бүтэн дэлгэцээр бус мөрөөр засварлах горим).

-h
Тусламжийн мэдээлэл хэвлээд гарна. {vim}

-i файл

vim-н төлвийг хадгалах, ачаалахад өгөгдмөл файлын (~/.viminfo) оронд заагдсан файл хэрэглэгдэнэ. {vim}

-l
Лисп програм ажиллуулахад зориулсан Лисп горимп орно (бүх хувилбарт дэмжлэггүй).
-L
Засварлагчийн сэшн (session) устгагдах эсвэл систем осолдох үед хадгалагдсан файлуудыг жагсаана (бүх хувилбарт дэмжлэггүй). vim-д бол -r сонголттой ижил.
-m
Засварлагчийн бичих боломжийг хаан эхлүүлнэ. Ингэснээр хэрэглэгч файлд бичиж хадгалах боломжгүй болно. {vim}
-M
Файлын бичвэрийг өөрчлөхийг хорино.
-n
swapfile хэрэглэхгүй; өөрчлөлтийг зөвхөн санах ойд бичнэ. {vim}
--noplugin
Тоноглол ачаалахгүй. {vim}
-N
vim-г vi-д таарамжгүй горимд ажиллуулна. {vim}

-o[тоо]

vim-г тоо ширхэг цонхтой эхлүүлнэ. Өгөгдмөл тохиргоогоор бол файл бүр нэг цонхонд нээгддэг. {vim}

-O[тоо]

vim-г тоо ширхэг цонхтой, цонхнуудыг босоогоор байрлуулан эхлүүлнэ. {vim}

-r [файл]

Нөхөн сэргээх горим. Засварлагчийн сэшн (session) устгагдах эсвэл систем осолдсоны дараа файл-ыг нөхөн сэргээж, эргэн засварлана. файл өгөгдөөгүй бол нөхөн сэргээгдэх боломжтой файлуудыг жагсаана.

-R
Файлыг уншлагын горимд нээнэ.
-s
Чимээгүй горим; сануулах цонх (prompt) харуулахгүй. Скрипт ажиллуулж буй үед тохиромжтой. Үүнийг хуучин - сонголтоор идэвхижүүлж болдог. vim-н хувьд зөвхөн -e сонголттой хамт хэрэглэсэн үед хүчинтэй.

-s скрипт файл

Өгөгдсөн скрипт файл дахь тушаалуудыг гараас бичсэний адилаар уншин гүйцэтгэнэ. {vim}

-S тушаалын файл

Өгөгдсөн тушаалын файл дахь тушаалуудыг тушаалын мөрөөс заасан засварлагдах файлуудыг ачаалж дууссаны гүйцэтгэнэ. Энэ сонголтын богино хэлбэр бол vim -c 'source тушаалын файл' юм. {vim}

-t тааг

тааг агуулж буй файлыг засварлахаар нээж, тодорхойлолт дээр нь заагчийг байрлуулна. (дэлгэрэнгүйг ctags сэдвээс үзээрэй)

-T төрөл

Терминалын төрлийг заана. Энэ утга $TERM хэмээх орчны хувьсагчийн утгыг дардаг. {vim}

-u файл

Өгөгдмөл .vimrc файлын оронд заагдсан файлаас тохиргооны мэдээллийг уншина. Хэрвээ файл өгөгдөл NONE бол vim ямар ч нөөцийн файл уншихгүй, тоноглол ачаалахгүй, таарамжтай горимд ажиллах болно. Хэрвээ өгөгдөл NORC бол нөөцийн файл уншигдахгүй, харин тоноглол ачаалах болно.

-v
Дүүрэн дэлгэцийн горимд ажиллана. (vi-н хувьд өгөгдмөл тохиргоо)
--version
Хувилбарын мэдээлэл хэвлээд хаагдана. {vim}

-V[тоо]

Нуршуу горим; ямар сонголт заагдаж байгаа, ямар файлыг уншиж, ямар файлд бичиж байгааг мэдээлдэг. Нуршуу байдлын түвшинг тодорхойлж, авах мэдээнийхээ тоог ихэсгэж, багасгаж болдог. Өгөгдмөл утга нь 10 бөгөөд дээд зэргийн нуршуу байдал юм. {vim}

-w мөрийн тоо

Цонхны хэмжээг мөрийн тоо өндөртэй болгоно; дайл-ап холболт (буюу холын зайн интернэт холболт) ашиглан засварлаж буй үед ашигтай байдаг. vi-н хуучин хувилбаруудад энэ сонголт болон өгөгдлийнх нь хооронд зай авахыг зөвшөөрдөггүй. vim-д энэ сонголт байдаггүй.

-W скрипт файл

Одооны сэшнд бичигдэх бүх тушаалыг заагдсан скрипт файлд бичнэ. Тэр файлыг -s сонголтоор ашиглаж болно. {vim}

-x
crypt ашиглан файлыг кодлох, файлын кодыг тайлах түлхүүр асууна. (бүх хувилбарт дэмжлэггүй)
-y
Горимгүй vi; vim-г тушаалын горимгүй, зөвхөн оруулах горимд ажиллуулна. {vim}
-Z
vim-г хязгаарлагдсан горимд эхлүүлнэ. Бүрхүүлийн тушаал бичих, засварлагчийг түр зогсоохыг хориглодог. {vim}


vi-н тушаалууд

vi тушаалын горимдоо ганц товчоор ажилладаг маш олон тушаалтай байдаг. vim-д нэмэлт олон товчит тушаал бий.


Хөдөлгөөний тушаал

vi-н зарим хувилбарт өргөтгөсөн гарын товчийг ойлгодоггүй (жишээ нь, сумнууд, Page Up, Page Down, Home, Insert, Delete), харин зарим нь ойлгодог. Харин бүх хувилбарт энд бичигдсэн товчнуудыг ойлгодог. vi-н ихэнх хэрэглэгчид эдгээр товчнуудыг хэрэглэхийг илүүд үздэг, учир нь гарын үндсэн эгнээнээс хуруугаа салгах шаардлагагүй байдаг болоод тэр. Тушаалын өмнө тоо бичвэл төчнөөн удаа давтдаг.


Тэмдэгт

Тушаал Үйлдэл
h,j,k,l Зүүн, доошоо, дээшээ, баруун
Space Баруун
Backspace Зүүн
Ctrl+H Зүүн


Бичвэр

Тушаал Үйлдэл
w,b Урагш, хойш "үг"-ээр (үсэг, тоо, доогуур зураасыг үг гэж тооцно) шилжинэ.
W,B Урагш, хойш "ҮГ"-ээр (зөвхөн цагаан зураасаар тусгаарлагдсан зүйлс) шилжинэ.
e Үгийн төгсгөл.
E ҮГийн төгсгөл.
ge Өмнөх үгийн төгсгөл. {vim}
gE Өмнөх ҮГийн төгсгөл. {vim}
),( Дараагийн, одоогийн өгүүлбэрийн эхлэл.
},{ Дараагийн, одоогийн догол мөртийн эхлэл.
]],[[ Дараагийн, одоогийн хэсгийн эхлэл.
][,[] Дараагийн, одоогийн хэсгийн төгсгөл. {vim}


Мөр

Файлын урт мөр дэлгэцэнд олон мөр болж харагдах нь бий (Дэлгэцийн нэг мөрөөс нөгөөг дамнан харагддаг.) Зарим тушаал файлд заасан мөрийн дагуу ажилладаг бол цөөн хэд нь дэлгэцэнд харагдах мөр дээр ажилладаг. vim-н wrap тохиргоогоор мөр хэр урт харагдахыг тохируулдаг.

Тушаал Үйлдэл
0, $ Мөрийн эхэн ба сүүлийн байрлал
^, _ Мөрийн эхний хоосон биш тэмдэгт
+, - Дараагийн ба өмнөх мөрийн хоосон бус тэмдэгт
Enter Дараагийн мөрийн эхний хоосон бус тэмдэгт
Мөрийн тоо дахь багана
g0, g$ Дэлгэцийн мөрийн эхэн ба сүүлийн байрлал {vim}
g^ Дэлгэцийн мөрийн эхний хоосон бус тэмдэгт {vim}
gm Дэлгэцийн мөрийн дунд {vim}
gk, gj Дэлгэцийн мөрийн дагуу дээш, доош нэг нэгээр шилжих {vim}
H Дэлгэцийн эхний мөр (Эхлэлийн байрлал)
M Дэлгэцийн дунд мөр
L Дэлгэцийн сүүлийн мөр
тооH Эхний мөрөөс доошхи тоо мөр
тооL Сүүлийн мөрөөс дээшхи тоо мөр


Дэлгэц

Тушаал Үйлдэл
Ctrl+F, Ctrl+B Урагш, хойш нэг дэлгэц урсгах
Ctrl+D, Ctrl+U Доош, дээш хагас дэлгэц урсгах
Ctrl+E, Ctrl+Y Дэлгэцийн доод, дээд талд нэг мөр нэмж харуулах
zEnter Заагчтай мөрийг дэлгэцийн эхэнд байрлуулах
z. Заагчтай мөрийг дэлгэцийн дунд байрлуулах
z- Заагчтай мөрийг дэлгэцийн сүүлд байрлуулах
Ctrl+L Дэлгэцийг шинэчлэн харуулах (урсгалгүйгээр)
Ctrl+R

vi: Дэлгэцийг шинэчлэн харуулах (урсгалгүйгээр) vim: Сүүлд буцаасан өөрчлөлтийг дахин үйлдэх


Хайлт


{Үүнээс хойшхийг устгаж шинэ найруулга оруулах болно}


Горим

  • Идэвхитэй
  • Засварлах (insert)
  • Тушаах (command)
  • Сонгох (visual)


Заагуурыг удирдах

  k
h   l
j

Дээр байгаа байрлалаар:

  • k - Дээш
  • р - Доош
  • h - Зүүн
  • l - баруун


Идэвхитэй горим

Аль ч гормоос ^+c товчилбороор идэвхитэй горимд шилжиж болно. Энэ үед цонхны доод мөр нүцгэн болно, тийм болсон байвал идэвхитэй горимд орсон байна гэж олйгож болно. Идэвхитэй гормын үед товчилбор ашиглах боломжтой болдог. Гарын авлага, зааварууд дээр нүцгэн товч бичсэн байвал идэвхитэй горим дахь тушаал гэж ойлгож болно. Энэ горимын үед гар дээрх тэмдэгт бүхэн өөрийн гэсэн үүрэгтэй учир хамаагүй товч дарж болохгүй. Жишээ нь dd гэвэл тухайн мөрийг устгаж орхино, тэгсэнээ . даравал өмнөх үйлдлээ давтана, ингэж мунгинаж байгаад файл ч үгүй, засвар ч үгүй болов :P


Засварлах горим

Идэвхитэй гормоос i товч дарж засварлах горимд шилжинэ. Засварлах горимын үед дараах горимоор бичинэ:

  • Оруулах (заагч босоо зураас) - Заагч байгаа газраас оруулж засна
  • Дарах (заагч босоо тэгж өнцөгт) - Заагч байгаа газраас дарж засна

Засварлах горимуудын хооронд insert товчоор шилжинэ. Мэдээж Esc товч дарсанаар идэвхитэй горимд шилжинэ.


Тушаалын горим

Идэвхитэй горимоос : товчилбор дарсанаар тушаалын горимд шилжинэ. Энэ үед цонхны доод мөрөнд : тэмдэгт гарах ба тушаалын горим дахь тушаалуудыг ихэнх гарын авлага, зааварууд дээр :[command] гэж бичсэн байдаг. Хэрвээ ийм юм харах юм бол тушаалын горимоос өгөх тушаал байна гэж ойлгох хэрэгтэй. Ихэнхдээ гарах, орох, нээх, плагин ажиллуулах гээд л үндсэн тушаалуудыг гүйцэтгэдэг.


Сонгох горим

Бидний өдөр тутам ашигладаг select үйлдэл маань энд явж байгаа.

  • Та идэвхитэй горимоос v товч дарсанаар энгийн visual горимд орох болно. Заагуур байрлал хаана байхад энэ горим эхлэсэн тэр цэгээс зааггуурын хөдөлгөөн хүртэл select буюу идэвхжинэ. Мэдээж энэ горимын үед гарын сумнууд болон h, j, k, l товчууд, бусад заагуур удирдах товчнууд ажиллана. v юм уу Esc товчийг хоёр дарсанаар идэвхитэй горимд шилжих буюу энэ горимоос гарна.
  • Бас Visual Block гэж горим бий. Идэвхитэй горимоос ^+v дарсанаар энэ горимд шилжинэ. Энэ нь заагуур хаана байхад энэ горимд шилжсэнээс заагуур байгаа газар хүртэл тэгш өнцөгт идэвхжүүлэлт хийнэ. Ойлгомжтой байх. Босоо select гэсэн үг. ^+v юм уу Esc товчийг хоёр дарсанаар идэвхитэй горимд шилжих буюу энэ горимоос гарна.


Record горим

Record бол өөрийн үйлдлүүдийг бичиж аван (хоолойгоо хальсанд хураалгадаг шиг), бичиж авсан үйлдлүүдээ яг тэр чигээр нь дахин давтахад ашиглагдана. Үүнийг сурах нь маш хэрэгтэй.

  • Үйлдлүүдээ бичиж авах
q[record_button]

гэж дарсанаар record маань record_button товчны нэрээр нэрлэгдэн эхлэнэ. Үүний дараах дахин q дарах хүртэлх бүх үйлдэл бичигдэнэ. q дарсанаар record маань record_nbutton товчинд хадаглагдана. Хамгийн гол нь record эхлэсэн бол Esc товч дарж гаргаж болохгүй, учир нь Esc дарж идэвхитэй горимд шилжих энэ тэр маань хүртэл record-д маань бичигдээд явчихна.

  • Бичсэн үйлдлүүдээ тоглуулах
@[record_button]

гэдэг нь өмнө нь record_button товчинд бичиж авсан үйлдлүүдээ тэр чигээр нь нэг удаа тоглуулна. Мэдээж олон удаа тоглуулах хэрэг гарах ба

[loop_number]@[record_button] 

гэж дарсанаар record_button үйлдлүүдийг loop_number удаа давтах юм.


Тушаалууд

  • :help - Тусламж
  • :w [name] - Хадгалах
  • :q - гарах
  • :q! - Хийсэн өөрчлөлтөө хадгалахгүйгээр шууд гарах
  • :wq [name] - Хадгалаад гарах
  • :qa! - Хүчээр гаргах
  • :set mouse=a - Хулганыг идэвхжүүлнэ (GUI, xterm үед!)
  • :tabnew - Шинэ таб нээнэ
  • :tabnext - Дараагийн табруу орно
  • :tabfirst - Хамгийн эхний табруу очино
  • :open [filename] - Файл нээнэ
  • :split [filename] - Дэлгэцийг хоёр хуваана
  • :set number - Мөрийн дугаарыг харуулна
  • :set nonumber - Мөрийн дугаарыг нууна


Товчилборууд

Төлөөлөх товчийг дарсанаар үйлдэл хийгдэнэ. Үйлдлүүд заагч хаана байна, түүнээс хамааралтай биелэгдэнэ

  • u (Undo) - Хамгийн сүүлчийн үйлдлийн үр дүнг хэрэгсэхгүй болгож буцаана
  • i (Insert) - Заагчийн зүүн талаас бчих горимд шижлинэ.
  • dd (Delete) - Мөрийг устгана. Устгагдсан мөр санах ойд санагдана.
  • o - Шинэ мөрнөөс бичих гормд шилжүүлнэ
  • O - Заагчийн дээд талд шинэ мөрнөөс бичих гормд шилжүүлнэ
  • a - Заагчийн баруун талаас бичих горимд шилжинэ. Мөрийн төгсгөлд мэдээлэл оруулахад хэрэглэнэ.
  • w - Үг үгээр зүүн тийш шижлинэ
  • b - Үг үгээр баруун тийш шилжинэ
  • ( - Өгөүүлбэр өгүүлбэрээр баруун тийш шилжинэ
  • ) - Өгөүүлбэр өгүүлбэрээр зүүн тийш шилжинэ
  • y - Тухайн сонгогдсон өгөгдлийг copy буюу санана. Хэрвээ идэвхжүүлэлт байхгүй бол тухайн заагуур байгаа тэмдэгтийг санана. Бас ямар ч тохиолдлоос устгасан өгөгдөл санагддагийг анхаарна уу?
  • p - Санасан өгөгдлийг гаргаж тавина.
  • yy - Тухайн заагч байгаа мөрийг санана.
  • v - Visual горимд шилжүүлнэ.
  • q[some_button] - some_button дээр record бичинэ. Дахин q дарж record-ийг дуусгана.
  • Esc - Record-оос бусад ямар ч горимоос идэвхитэй горимд шилжүүлнэ.
  • x - Сонгогдсон байгаа тэмдэгтийг устгана. Сонголт хийгдээгүй үед тухайн заагуур байгаа тэмдэгтийг устгана.
  • s - Сонгогдсон байгаа тэмдэгтийг устгаад шууд засварлах горимд шилжинэ. x дараад i дарсантай адил.


Босоо шугаманд бичих

Босоо шугаманд буюу нэг бичвэрийг шууд олон мөрөнд бичиж болох ба эхлээд тухайн босоо шугамаа идэвжүүлнэ. Энэнд мэдээж Visual Block хэрэгтэй. Хэрэгтэй мөрөө идэвхжүүлсэн бол I (том i байгааг анхаараарай, Shift+i гэсэн үг) үсэг дарна. Ингэснээр бичих горимд шилжих ба бичих зүйлээ бичиж дууссан бол Esc дарна. Ингээд таны сонгосон босоо мөрнүүдэд таны бичсэн текст пүн гээд л гараад ирнэ :D


Бичвэр зөөх

:эхлэл,төгсгөл тушаал байршил

Жишээ нь:

:50,67 m 20

50-с 67-р мөрийг 20-р мөрийн ард зөөн тавина.


Хайлт

Хайлт хийхдээ налуу зураас буюу / тэмдгийн араас хайх текстээ бичинэ. Мөн [regex] ашиглаж болно. Хайх үгээ бичсэн бол Enter товч дарсаны дараагаар n үсэг дарж дараагийн, N үсэг дарж өмнөх илэрцийг хайна.

"https://wiki.dusal.net/index.php?title=Vi&oldid=478" хуудаснаас авсан