Linux vi/vim


Semua sistem Unix Like akan mempunyai editor dokumen vi terbina dalam, tetapi editor dokumen lain mungkin tidak wujud.

Tetapi pada masa ini kami lebih banyak menggunakan editor vim.

vim mempunyai keupayaan untuk mengedit program secara aktif boleh mengenal pasti ketepatan tatabahasa mengikut warna fon, yang memudahkan reka bentuk program.

Artikel berkaitan: Peta bit kekunci pintasan Vim paling lengkap dalam sejarah - kemasukan ke lanjutan


Apakah vim?

Vim ialah penyunting teks yang dibangunkan daripada vi. Ia amat kaya dengan fungsi yang memudahkan pengaturcaraan, seperti penyiapan kod, penyusunan, dan lompat ralat, dan digunakan secara meluas dalam kalangan pengaturcara.

Ringkasnya, vi adalah pemproses perkataan yang lama, tetapi fungsinya sudah sangat lengkap, tetapi masih ada ruang untuk penambahbaikan. vim boleh dikatakan sebagai alat yang sangat berguna untuk pembangun program. Malah laman web rasmi vim (http://www.vim.org) sendiri mengatakan bahawa vim ialah alat pembangunan program dan bukannya perisian pemprosesan perkataan.

gambar rajah papan kekunci vim:

vi-vim-cheat-sheet-sch.gif


Menggunakan vi/vim

Pada asasnya, vi/vim dibahagikan kepada tiga mod , iaitu mod am, mod penyuntingan dan mod arahan baris arahan masing-masing. Fungsi ketiga-tiga mod ini ialah:

  • Mod umum:
    Membuka fail dengan vi akan terus memasuki mod biasa (ini ialah mod lalai). Dalam mod ini, Anda boleh menggunakan kekunci "atas, bawah, kiri dan kanan" untuk menggerakkan kursor dan anda boleh menggunakan "padam aksara" atau "padam seluruh baris" untuk memproses kandungan fail. Anda juga boleh menggunakan "salin dan tampal" untuk memproses data fail anda.

  • Mod edit:
    Dalam mod biasa, anda boleh memadam, menyalin, menampal, dsb., tetapi anda tidak boleh mengedit kandungan fail! Tunggu sehingga anda menekan 『i, I, o, O, a, A, r, R, dsb. akan memasuki mod penyuntingan selepas sebarang huruf. Perhatian! selalunya dalam Di Linux, apabila kekunci ini ditekan, "INSERT" akan muncul di sudut kiri bawah skrin. atau GANTI‖, barulah anda boleh mengedit. Dan jika anda ingin kembali ke mod biasa, Anda mesti menekan butang "Esc" untuk keluar dari mod edit.

  • Mod arahan baris arahan:
    Dalam mod biasa, masukkan " : / ? ‖ Mana-mana satu daripada tiga butang boleh menggerakkan kursor ke baris bawah. Dalam model ini, Ia boleh memberi anda tindakan "mencari data", termasuk membaca, menyimpan, menggantikan sejumlah besar aksara dan keluar. Tindakan vi, memaparkan nombor baris, dsb. dicapai dalam mod ini!

Ringkasnya, kita boleh memikirkan tiga mod ini seperti ikon di bawah:

1040.png

contoh penggunaan vi/vim

Gunakan vi/vim untuk memasuki mod biasa

Jika anda ingin menggunakan vi untuk mencipta fail bernama test.txt, anda boleh melakukan ini:

[root@www ~]# vi test.txt

Terus masukkan nama fail vi untuk memasuki mod biasa vi. Sila ambil perhatian bahawa anda mesti menambah nama fail selepas vi, tidak kira sama ada fail itu wujud atau tidak!

1041.png

Tekan i untuk memasuki mod edit dan mula mengedit teks

Dalam mod biasa, hanya tekan i, o, a dan aksara lain untuk memasuki mod edit!

Dalam mod pengeditan, anda boleh menemui perkataan –INSERT- muncul dalam bar status di penjuru kiri sebelah bawah, yang merupakan gesaan supaya anda boleh memasukkan sebarang aksara.

Pada masa ini, kecuali kekunci [Esc], semua kekunci lain pada papan kekunci boleh dianggap sebagai butang input umum, jadi anda boleh melakukan sebarang pengeditan.

1048.jpg

Tekan butang [ESC] untuk kembali ke mod biasa

Baiklah, dengan andaian saya telah selesai mengeditnya mengikut gaya di atas, bagaimana saya harus keluar? Ya! Betul! Hanya tekan butang [Esc] untuk dia! Serta-merta anda akan mendapati bahawa - INSERT - di sudut kiri bawah skrin tiada!

Dalam mod biasa, tekan :wq untuk menyimpan dan meninggalkan vi

OK, kami akan menyimpan arahan untuk menyimpan dan meninggalkan adalah sangat mudah pergi!

1049.png

OK! Dengan cara ini, kami telah berjaya mencipta fail test.txt. Bukankah ia sangat mudah.


penerangan butang vi/vim

Selain i, [Esc], :wq dalam contoh mudah di atas, vim sebenarnya mempunyai banyak butang yang boleh digunakan.

Bahagian 1: Penerangan tentang butang yang tersedia dalam mod biasa, pergerakan kursor, salin dan tampal, cari dan ganti, dsb.

Kaedah untuk menggerakkan kursor
h atau kekunci anak panah kiri (←)Alihkan kursor satu aksara ke kiri
j atau Kekunci anak panah ke bawah (↓)Alihkan kursor ke bawah satu aksara
k atau kekunci Anak Panah Atas (↑)Alihkan kursor ke atas satu aksara
l atau kekunci anak panah kanan (→)Alihkan kursor satu aksara ke kanan
Jika anda meletakkan tangan kanan anda pada papan kekunci, anda akan melihat bahawa hjkl disusun bersama supaya anda boleh menggunakan empat butang untuk menggerakkan kursor. Jika anda ingin bergerak beberapa kali, contohnya, bergerak ke bawah 30 baris, anda boleh menggunakan kombinasi kekunci "30j" atau "30↓". Iaitu, selepas menambah bilangan kali (nombor) yang anda mahu lakukan, tekan tindakan!
[Ctrl] + [f]Alihkan skrin "ke bawah" satu halaman, bersamaan dengan butang [Page Down] (Biasa digunakan)
[Ctrl] + [b]Alihkan skrin "ke atas" satu halaman, bersamaan dengan butang [Page Up] (Biasa digunakan)
[Ctrl] + [d]Alihkan skrin "ke bawah" sebanyak setengah halaman
[Ctrl ] + [u]Alihkan skrin "ke atas" separuh halaman
+Alihkan kursor ke lajur seterusnya aksara bukan ruang
-Alihkan kursor ke lajur sebelumnya bagi aksara bukan ruang
n<space> ;Itu n bermaksud 『 Nombor", seperti 20. Selepas menekan nombor dan kemudian menekan bar ruang, kursor akan bergerak n ke kanan pada baris ini watak. Contohnya, 20<ruang> akan mengalihkan kursor 20 aksara ke belakang.
0 atau kekunci fungsi [Home]Ini ialah nombor 『0』: beralih ke aksara hadapan baris ini (Biasa digunakan)
$ atau kekunci fungsi [Tamat] untuk beralih ke aksara terakhir baris ini (Biasa digunakan)
HKursor bergerak ke aksara pertama dalam baris atas skrin ini
MKursor bergerak ke tengah daripada skrin ini Aksara pertama baris itu
L Gerakkan kursor ke aksara pertama baris di bahagian bawah skrin
GAlih ke baris terakhir fail ini (biasa digunakan)
nGn ialah nombor. Beralih ke baris n fail ini. Sebagai contoh, 20G akan dialihkan ke lokasi ke-20 fail ini. Baris (boleh digunakan dengan :set nu)
gg untuk beralih ke baris pertama fail ini, yang bersamaan dengan 1G! (Biasa digunakan)
n<Enter>n ialah nombor. Alihkan kursor ke bawah n baris (biasa digunakan)
Cari dan gantikan
/perkataan Cari rentetan bernama perkataan di bawah kursor. Contohnya, untuk mencari vbird dalam fail Untuk rentetan ini, masukkan sahaja /vbird! (Biasa digunakan)
?perkataanCari rentetan bernama perkataan di atas kursor.
nN ini ialah butang Bahasa Inggeris. Mewakili tindakan mengulangi carian sebelumnya. Sebagai contoh, Jika kita hanya melaksanakan /vbird untuk mencari ke bawah untuk rentetan vbird, maka selepas menekan n, kita akan terus mencari ke bawah untuk nama seterusnya vbird. rentetan. Jika ?vbird dilaksanakan, maka menekan n akan terus mencari ke atas untuk rentetan bernama vbird!
NN ini ialah butang Bahasa Inggeris. Hanya bertentangan dengan n, ia adalah "terbalik" untuk melakukan tindakan carian sebelumnya. Contohnya, selepas /vbird, menekan N bermaksud "naik" untuk mencari vbird.
Menggunakan /word dengan n dan N sangat membantu! Ia membolehkan anda mencari beberapa kata kunci yang anda cari berulang kali!
:n1,n2s/word1/word2/gn1 dan n2 ialah nombor. Cari kata rentetan1 antara baris n1 dan n2 dan gantikan rentetan itu dengan perkataan2! Contohnya, mencari vbird antara baris 100 dan 200 dan menggantikannya dengan VBIRD ialah:
『:100,200s/vbird/VBIRD/g』. (Biasa digunakan)
:1,$s/word1/word2/gCari rentetan perkataan1 dari baris pertama hingga baris terakhir dan gantikan dengan ini rentetan untuk perkataan2! (Biasa digunakan)
:1,$s/word1/word2/gcCari rentetan perkataan1 dari baris pertama hingga baris terakhir dan gantikannya dengan ini rentetan untuk perkataan2! Dan paparkan aksara gesaan kepada pengguna untuk mengesahkan sebelum menggantikannya Adakah ia perlu diganti? (Biasa digunakan)
Padam, salin dan tampal
x, X dalam satu baris Antara aksara, x bermaksud memadam satu aksara ke belakang (bersamaan dengan kekunci [del]), X adalah untuk memadam satu aksara ke hadapan (bersamaan dengan [ruang belakang], iaitu kekunci ruang belakang) (Biasa digunakan)
nxn ialah nombor, padamkan n aksara ke belakang secara berterusan. Sebagai contoh, saya ingin memadam 10 aksara berturut-turut, "10x".
ddPadamkan keseluruhan baris tempat kursor berada (biasa digunakan)
ndd n ialah nombor. Padamkan n lajur ke bawah di mana kursor berada Sebagai contoh, 20dd memadam 20 lajur. (Biasa digunakan)
d1GPadam semua data daripada kursor ke baris pertama
dGPadamkan semua data daripada kursor ke baris terakhir
d$Padam daripada kursor ke aksara terakhir baris
d0Itu adalah digital 0, padam di mana kursor berada, pergi ke aksara pertama baris
yySalin Baris di mana kursor terletak (biasa digunakan)
nyyn ialah nombor. Salin n lajur ke bawah di mana kursor berada, contohnya, salinan 20yy 20 Lajur (biasa digunakan)
y1GSalin semua data dari lajur tempat kursor berada ke lajur pertama
yG Salin semua data dari lajur tempat kursor berada ke lajur terakhir
y0Salin semua data daripada aksara tempat kursor berada ke permulaan baris
y$Salin aksara di mana kursor berada ke semua data di hujung baris
p, Pp bermaksud menampal data yang disalin pada baris di bawah kursor, dan P bermaksud menampalnya pada baris di atas kursor! Sebagai contoh, kursor saya kini berada di baris 20 dan 10 baris data telah disalin. Kemudian selepas menekan p, 10 baris data tersebut akan ditampal selepas 20 baris asal, iaitu bermula dari baris 21. Tetapi bagaimana jika anda menekan P? Kemudian baris asal 20 akan ditolak ke baris 30. (Biasa digunakan)
J Gabungkan data dalam lajur tempat kursor berada dan lajur seterusnya ke dalam lajur yang sama
cPadam berbilang data berulang kali, contohnya, padamkan 10 baris ke bawah, [ 10cj ]
uPulihkan tindakan sebelumnya. (Biasa digunakan)
[Ctrl]+rBuat semula tindakan sebelumnya. (Biasa digunakan)
u dan [Ctrl]+r ini ialah arahan yang sangat biasa digunakan! Satu adalah pemulihan, satu lagi sedang melakukan ~ Gunakan dua kekunci fungsi ini untuk penyuntingan anda, hehe! sangat gembira!
.Jangan ragu-ragu! Ini adalah titik perpuluhan! Ia bermaksud mengulangi tindakan sebelumnya.Jika anda ingin memadam berulang kali, tampal berulang kali, dsb., hanya tekan titik perpuluhan "."! (Biasa digunakan)

Bahagian 2: Penerangan tentang butang yang tersedia untuk beralih daripada mod biasa kepada mod penyuntingan

Masukkan masukkan atau gantikan mod pengeditan
进入插入或取代的编辑模式
i, I进入插入模式(Insert mode):
i 为『从目前光标所在处插入』, I 为『在目前所在行的第一个非空格符处开始插入』。 (常用)
a, A进入插入模式(Insert mode):
a 为『从目前光标所在的下一个字符处开始插入』, A 为『从光标所在行的最后一个字符处开始插入』。(常用)
o, O进入插入模式(Insert mode):
这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处插入新的一行』; O 为在目前光标所在处的上一行插入新的一行!(常用)
r, R进入取代模式(Replace mode):
r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
上面这些按键中,在 vi 画面的左下角处会出现『--INSERT--』或『--REPLACE--』的字样。 由名称就知道该动作了吧!!特别注意的是,我们上面也提过了,你想要在档案里面输入字符时, 一定要在左下角处看到 INSERT 或 REPLACE 才能输入喔!
[Esc]退出编辑模式,回到一般模式中(常用)
i, I<🎜>Masuk mod Sisip:
i bermaksud "Sisipkan daripada kedudukan kursor semasa", saya bermaksud "Sisipkan daripada aksara bukan ruang pertama pada baris semasa". (Biasa digunakan)<🎜><🎜>a, A<🎜>Masuk mod Sisip:
a bermaksud "mula memasukkan daripada aksara seterusnya di mana kursor berada pada masa ini", A Ia adalah "Sisipkan bermula dari aksara terakhir baris di mana kursor berada". (Biasa digunakan)<🎜><🎜>o, O<🎜>Masuk mod Sisip:
Ini ialah versi huruf besar dan huruf kecil huruf Inggeris o. o bermaksud "Masukkan baris baharu pada baris seterusnya di mana kursor berada pada masa ini"; O Masukkan baris baru di atas kedudukan kursor semasa! (Biasa digunakan)<🎜><🎜>r, R<🎜>Masuk Mod Ganti:
r hanya akan menggantikan aksara di mana kursor terletak sekali; R akan sentiasa menggantikan aksara di mana kursor berada sehingga sehingga ESC; (Biasa digunakan)<🎜><🎜>Antara kekunci di atas, "" akan muncul di sudut kiri bawah daripada skrin vi --INSERT--』 atau 『--REPLACE--』. Anda sudah boleh memberitahu tindakan ini daripada namanya! ! Nota istimewa ialah, seperti yang kami nyatakan di atas, apabila anda ingin memasukkan aksara dalam fail, Anda mesti melihat INSERT atau REPLACE di sudut kiri bawah untuk masuk! <🎜><🎜>[Esc]<🎜>Keluar daripada mod pengeditan dan kembali ke mod biasa (Lazim)<🎜><🎜 > <🎜><🎜>

Bahagian 3: Penerangan tentang butang yang tersedia untuk beralih daripada mod biasa kepada mod baris arahan

指令列的储存、离开等指令
:w将编辑的数据写入硬盘档案中(常用)
:w!若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q离开 vi (常用)
:q!若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
:wq储存后离开,若为 :wq! 则为强制储存后离开 (常用)
ZZ这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!
:w [filename]将编辑的数据储存成另一个档案(类似另存新档)
:r [filename]在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w [filename]将 n1 到 n2 的内容储存成 filename 这个档案。
:! command暂时离开 vi 到指令列模式下执行 command 的显示结果!例如
『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!
vim 环境的变更
:set nu显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu与 set nu 相反,为取消行号!

Perhatian khusus, dalam vi/vim, nombor sangat bermakna! Nombor itu biasanya mewakili berapa kali ia perlu diulang! Ia juga mungkin bermakna nombor yang anda akan pergi atau sesuatu.

Sebagai contoh, jika anda ingin memadam 50 baris, gunakan "50dd", bukan? Nombor ditambah sebelum tindakan, bagaimana jika saya mahu turun 20 baris? Iaitu "20j" atau "20↓".