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:
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:
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!
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.
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!
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) |
H | Kursor bergerak ke aksara pertama dalam baris atas skrin ini |
M | Kursor bergerak ke tengah daripada skrin ini Aksara pertama baris itu |
L | Gerakkan kursor ke aksara pertama baris di bahagian bawah skrin |
G | Alih ke baris terakhir fail ini (biasa digunakan) |
nG | n 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) |
?perkataan | Cari rentetan bernama perkataan di atas kursor. |
n | N 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! |
N | N 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/g | n1 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/g | Cari rentetan perkataan1 dari baris pertama hingga baris terakhir dan gantikan dengan ini rentetan untuk perkataan2! (Biasa digunakan) |
:1,$s/word1/word2/gc | Cari 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) |
nx | n ialah nombor, padamkan n aksara ke belakang secara berterusan. Sebagai contoh, saya ingin memadam 10 aksara berturut-turut, "10x". |
dd | Padamkan 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) |
d1G | Padam semua data daripada kursor ke baris pertama |
dG | Padamkan semua data daripada kursor ke baris terakhir |
d$ | Padam daripada kursor ke aksara terakhir baris |
d0 | Itu adalah digital 0, padam di mana kursor berada, pergi ke aksara pertama baris |
yy | Salin Baris di mana kursor terletak (biasa digunakan) |
nyy | n ialah nombor. Salin n lajur ke bawah di mana kursor berada, contohnya, salinan 20yy 20 Lajur (biasa digunakan) |
y1G | Salin semua data dari lajur tempat kursor berada ke lajur pertama |
yG | Salin semua data dari lajur tempat kursor berada ke lajur terakhir |
y0 | Salin semua data daripada aksara tempat kursor berada ke permulaan baris |
y$ | Salin aksara di mana kursor berada ke semua data di hujung baris |
p, P | p 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 |
c | Padam berbilang data berulang kali, contohnya, padamkan 10 baris ke bawah, [ 10cj ] |
u | Pulihkan tindakan sebelumnya. (Biasa digunakan) |
[Ctrl]+r | Buat 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 bermaksud "Sisipkan daripada kedudukan kursor semasa", saya bermaksud "Sisipkan daripada aksara bukan ruang pertama pada baris semasa". (Biasa digunakan)<🎜><🎜>
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)<🎜><🎜>
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 hanya akan menggantikan aksara di mana kursor terletak sekali; R akan sentiasa menggantikan aksara di mana kursor berada sehingga sehingga ESC; (Biasa digunakan)<🎜><🎜>
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↓".