Terminal muharrirlari — nano va vim asoslari

~15 daq · Linux · Matn bilan ishlash

Muammodan boshlaylik

Serverda /etc/nginx/sites-available/dokon faylida bitta qatorni o'zgartirish kerak. VS Code yo'q. Grafik interfeys yo'q. Qandaydir qo'llanmada vim fayl deb yozilgan — ochdingiz... va endi chiqa olmayapsiz. Esc, Ctrl+C, Ctrl+Q — hech narsa ishlamayapti.

"Vim dan qanday chiqish kerak" — Stack Overflow dagi eng mashhur savollardan biri (millionlab ko'rishlar). Bu darsdan keyin sizga bu muammo bo'lmaydi.


nano — oddiy va tushunarli

Boshlovchilar uchun eng oson muharrir. Ubuntu da o'rnatilgan.

nano eslatma.txt
sudo nano /etc/hosts          # tizim fayli — sudo bilan

Ochiladi — va darhol yozishingiz mumkin. Pastda yordam qatori:

^G Help    ^O Write Out  ^W Where Is  ^K Cut     ^T Execute
^X Exit    ^R Read File  ^\ Replace   ^U Paste   ^J Justify

^ — Ctrl degani.

Tugma Nima
Ctrl + O, Enter Saqlash
Ctrl + X Chiqish (o'zgarishlar bo'lsa — saqlashni so'raydi: Y/N)
Ctrl + W Qidirish
Ctrl + \ Qidirib almashtirish
Ctrl + K Qatorni kesish
Ctrl + U Qo'yish
Ctrl + _ Qator raqamiga o'tish
Alt + U Bekor qilish (undo)
nano -l app.js            # qator raqamlari bilan
nano +25 app.js           # 25-qatordan ochish

Kichik o'zgarishlar uchun nano — mutlaqo yetarli.


vim — kuchli, lekin boshqacha

vim — deyarli har bir Linux serverda mavjud (yoki uning ajdodi vi). Ba'zi buyruqlar (git commit, crontab -e, visudo) standart holatda vim ni ochadi. Shuning uchun asoslarni bilish shart.

vim app.js

Asosiy g'oya: rejimlar

Vim ning "g'alati"ligi — rejimlarda. Oddiy muharrirlarda tugma bosilsa — harf yoziladi. Vim da esa:

Rejim Nima uchun Qanday kirish
Normal Harakatlanish, buyruqlar (standart) Esc
Insert Matn yozish i
Command Saqlash, chiqish, qidirish : (Normal dan)
Visual Matnni belgilash v

Vim Normal rejimda ochiladi — shuning uchun yozishga harakat qilsangiz, harflar buyruq sifatida bajariladi va "hech narsa ishlamayapti" tuyuladi.

Omon qolish uchun minimum

1. vim fayl.txt          — ochish (Normal rejim)
2. i                     — Insert rejimga o'tish, endi yozish mumkin
3. ... matn yozing ...
4. Esc                   — Normal rejimga qaytish
5. :wq  Enter            — saqlash va chiqish

Chiqish:

Buyruq Nima
:wq yoki :x Saqlash va chiqish
:w Faqat saqlash
:q Chiqish (o'zgarish bo'lmasa)
:q! Saqlamasdan chiqish — "hammasini buzib qo'ydim" holati

[!TIP] Vim da adashib qolsangiz: Esc ni bir necha marta bosing, keyin :q! va Enter. Har qanday holatdan chiqaradi, hech narsa saqlanmaydi.

Normal rejimdagi foydali buyruqlar

Harakatlanish:

Tugma Nima
h j k l ← ↓ ↑ → (strelkalar ham ishlaydi)
w / b Keyingi / oldingi so'z
0 / $ Qator boshi / oxiri
gg / G Fayl boshi / oxiri
25G yoki :25 25-qatorga

Tahrirlash:

Tugma Nima
i / a Kursordan oldin / keyin yozish
o / O Pastda / tepada yangi qator ochib yozish
x Belgini o'chirish
dd Qatorni o'chirish (kesish)
yy Qatorni nusxalash
p Qo'yish
u Bekor qilish (undo)
Ctrl + r Qaytarish (redo)
5dd 5 qatorni o'chirish

Qidirish va almashtirish:

Buyruq Nima
/so'z Qidirish; n — keyingi, N — oldingi
:%s/eski/yangi/g Butun faylda almashtirish
:%s/eski/yangi/gc Har birini tasdiqlash bilan

Foydali:

:set number       — qator raqamlari
:syntax on        — sintaksis ranglari

Vim ni o'rganish

Bu — faqat asos. Vim ning haqiqiy kuchi buyruqlarni birlashtirishda (d3w — 3 so'zni o'chirish, ci" — qo'shtirnoq ichini almashtirish). Qiziqsangiz:

vimtutor

30 daqiqalik interaktiv dars — terminalning o'zida.


Standart muharrirni tanlash

git commit, crontab -e qaysi muharrirni ochishi — EDITOR o'zgaruvchisiga bog'liq:

export EDITOR=nano

Doimiy qilish uchun ~/.bashrc ga qo'shing (30-dars). Ubuntu da yana:

sudo update-alternatives --config editor

VS Code bilan serverda

Ko'p tahrirlash kerak bo'lsa — VS Code ning Remote - SSH kengaytmasi: serverdagi fayllarni xuddi lokaldagidek, to'liq VS Code da tahrirlaysiz. WSL uchun — WSL kengaytmasi va code . buyrug'i.

Lekin tezkor bir qatorli o'zgarish uchun — nano yoki vim tezroq.


Qaysi birini tanlash

nano vim
O'rganish 1 daqiqa Kunlar, haftalar
Kichik o'zgarishlar ✅ Ideal ✅
Katta tahrirlash Noqulay Juda tez (o'rgangandan keyin)
Hamma serverda Ko'pchilikda Deyarli hammasida (vi)

Tavsiya: kundalik ish uchun nano, va vim dan omon qolish asoslarini (i, Esc, :wq, :q!) albatta eslab qoling.


Nima uchun shunday?

Nima uchun vim shunday "noqulay" rejimlar bilan yaratilgan — va nima uchun hali ham shunchalik mashhur?

Vim ajdodi vi 1976 yilda sekin terminallar va sichqonchasiz klaviaturalar uchun yaratilgan. Rejimlar g'oyasi: dasturchi vaqtining katta qismini yozishga emas, o'qish, harakatlanish va o'zgartirishga sarflaydi. Normal rejimda har bir tugma — kuchli buyruq, qo'llar klaviaturaning asosiy qatoridan uzilmaydi. Bu ko'nikma bir marta o'rganilgach, tahrirlash juda tez bo'ladi — shuning uchun vim (va uning zamonaviy vorisi Neovim) bugun ham mashhur, VS Code va JetBrains da esa "vim rejimi" kengaytmalari bor.


Xulosa

Eslab qoling:

  • nano: darhol yozish; Ctrl+O saqlash, Ctrl+X chiqish, Ctrl+W qidirish
  • vim: rejimlar — Normal (Esc), Insert (i), Command (:)
  • Vim dan chiqish: Esc → :wq (saqlash) yoki :q! (saqlamasdan)
  • Vim: dd o'chirish, yy nusxa, p qo'yish, u undo, / qidirish
  • vimtutor — interaktiv dars
  • EDITOR=nano — standart muharrir
  • Katta ishlar uchun — VS Code Remote-SSH

Keyingi dars

13-dars: Pipe va yo'naltirish — |, >, >>, 2>, stdin/stdout/stderr