Rumah > Artikel > Tutorial sistem > Arahan asas linux - vim penyuntingan teks
Artikel ini memperkenalkan penggunaan umum vim (versi 7.4 ****vim ialah editor teks yang berkuasa dan versi vi yang dipertingkatkan).
Arahan yang paling biasa digunakan untuk mengedit fail menggunakan vim ialah:
fail vim ialah fail baharu atau fail asal. Selepas melaksanakan arahan sedemikian, editor akan dibuka dan kandungan fail fail akan dipaparkan. Seperti yang ditunjukkan dalam gambar:
Jika ia adalah fail baharu, perkataan "fail" [fail baharu] akan dipaparkan di sebelah kiri bahagian bawah, dan 0,0-1 akan dipaparkan di sebelah kanan untuk menunjukkan bilangan baris dan aksara di mana kursor semasa ialah. Jika fail lama dibuka, perkataan "fail" 3L, 66C dipaparkan di sebelah kiri bahagian bawah, menunjukkan nama fail, nombor baris kursor semasa dan jumlah bilangan bait fail. Tempat tanpa aksara dalam fail akan bermula dengan aksara ~.
Tidak boleh mengedit lagi Terdapat beberapa mod untuk vim untuk mengedit fail Mod semasa ialah mod biasa, yang membolehkan anda menggerakkan kursor, melaksanakan salin dan tampal dan terdapat juga dua mod biasa. mod sisip dan mod baris bawah.
Mod biasa biasanya dimasukkan pada mulanya Tekan kekunci berikut untuk memasuki mod sisip:
1. a 在光标所在位置下一个字符开始输入 2. A 在光标所在行尾开始输入 2. i 在光标所在位置开始输入 4. I 在光标所在行首开始输入 5. o 在光标所在行下新增一行,并在新增行行首开始输入 6. O 在光标所在行上新增一行,并在新增行行首开始输入
Selepas memasuki mod sisip, perkataan – Sisipkan – akan muncul di bahagian bawah, kemudian anda boleh masuk pada kedudukan kursor. Tekan kekunci ESC untuk kembali ke mod biasa daripada mod sisip.
Tekan kekunci berikut dalam mod biasa untuk memasuki mod baris bawah:
1. : 执行命令 2. / 正向搜索 3. ? 反向搜索
Untuk kembali dari mod baris bawah ke mod biasa, anda perlu menekan kekunci ESC dua kali
Pelaksanaan mod baris bawah: q (berhenti) bermaksud keluar dari editor Jika anda telah membuat perubahan pada kandungan fail, anda perlu melaksanakan: wq (tulis berhenti) untuk menyimpan dan keluar, jika anda tidak menyimpan dan keluar; perlu melaksanakan: q! Paksa berhenti;
Berikut ialah beberapa arahan yang boleh dilaksanakan dalam mod biasa dan fungsinya:
Pengubahsuaian teks:
1. dd 剪切光标所在位置的整行(保存在临时缓冲区) 2. ndd n为数字,表示从当前行开始,从上到下剪切n行 3. p 将缓冲区中的内容放到当前行之下 4. np n是数字,相当于执行n次p命令 5. P 将缓冲区中的内容放到当前行之上 6. y 从光标处开始复制 6. yy 复制当前行(保存在临时缓冲区) 7. nyy n为数字,表示从当前行开始,从上到下复制n行 8. r 替换光标所在位置的一个字符 9. R 从光标位置开始替换,并进入文本输入模式(ESC退出) 10. u 撤销上一次操作 11. ZZ 保存退出 12. 移动光标: 13. h或左箭头键 光标向左移动一格 14. l或右箭头键 光标向右移动一格 15. j或下箭头键 光标向下移动一格 16. k或上箭头键 光标向上移动一格 17. 0 光标移动到当前行开头 18. ^ 光标移动到当前行非空白字符(如空格、tab键等)的开头 19. $ 光标移动到当前行结尾 20. g_ 光标移动到当前行非空白字符的结尾 21. w 光标移动到下一个单词的开头 22. e 光标移动到下一个单词的结尾 23. * 匹配光标所在单词,移动到下一个相同的单词 24. # 匹配光标所在单词,移动到上一个相同的单词 25. f{ 光标移动到当前行的下一个字符{处,{可以换成其他字符 26. F} 光标移动到当前行的上一个字符}处 27. t, 光标移动到当前行的下一个逗号之前一个字符处 28. T, 光标移动到当前行的上一个逗号之后一个字符处 29. % 移动到成对括号的另一半括号处,包括() {} [].需要先将光标移动到括号上。 30. gg 光标移动到文件第一行行首 31. G 光标移动到文件最后一行行首 32. 回车键 光标移动到下一行行首
Hanya sebahagian daripadanya yang disenaraikan di sini mungkin terlalu banyak untuk diingat. Malah, selagi anda mengingati beberapa daripadanya, anda boleh menggunakannya; kebanyakan fungsi lain adalah untuk menjadikan operasi anda lebih mudah dan pantas.
Kebanyakan pelbagai arahan dalam vim boleh digunakan dalam kombinasi:
Sebagai contoh, jika anda ingin memadamkan kedudukan semasa kursor ke hujung baris, anda boleh melaksanakan d$;
Sebagai contoh, jika anda ingin memasukkan 50 'perkataan' pada kedudukan semasa, hanya laksanakan 50iword ESC dan tekan kekunci ESC, dan kemudian 50 perkataan akan dimasukkan;
Sebagai contoh, jika anda ingin menampal kandungan yang disalin tetapi ingin menampalnya sebanyak 5 kali, jalankan 5p;
Sebagai contoh, jika anda ingin melaksanakan perintah terakhir sebanyak 5 kali lagi, jalankan 5.;
Penggunaan arahan ini dengan cekap akan meningkatkan kelajuan menulis fail.
Dalam mod sisip (tekan a, i, o, dsb. dalam mod biasa), masukkan permulaan perkataan, dan kemudian tekan CTRL-P atau CTRL-N untuk melengkapkannya secara automatik.
Corak baris bawah mempunyai tiga aksara permulaan (:, /, ?), yang mana / dan ? digunakan untuk memadankan carian pola:
Seperti mencari rentetan centos dalam fail:
/centos
Selepas memasukkan rentetan ini dan menekan Enter, vim akan menyerlahkan semua rentetan yang sepadan Tekan kekunci n dan kursor akan melompat ke rentetan yang sepadan seterusnya Tekan kekunci N dan kursor akan melompat ke padanan sebelumnya. (Fikirkan tentang pertanyaan lelaki)
Menggunakan ? dan / mempunyai kesan yang sama, tetapi dalam arah yang bertentangan.
: Anda boleh melaksanakan banyak arahan, seperti perintah simpan dan keluar: wq diperkenalkan sebelum ini.
Yang berikut memperkenalkan beberapa arahan mod garis bawah:
1 :set nu 显示行号 2 :set nonu 隐藏行号 3 :r file 读取文件file内容并写入当前编辑的文件中,内容从光标当前位置下一行开始插入。 4 :w file 将当前编辑的内容写入一个新文件file中。 5 :s /pattern/string/ 将匹配pattern的字符串替换成string 6 :x 作用和:wq相同,保存并退出。 7 :! command 暂时离开vim并执行shell命令command。 8 :help 查看帮助 9 :.= 显示当前行号 10 := 显示总行数 11 :n 移动光标到第n行行首
Arahan ini juga boleh digabungkan untuk melaksanakan arahan shell dan menulis hasilnya ke baris seterusnya baris semasa:
r!ls -l
Anda juga boleh menggabungkan arahan dalam mod lain, seperti menggantikan semua rentetan yang sepadan dengan corak dalam baris semasa:
s/corak/rentetan/g # g bermaksud global
Untuk menggantikan semua rentetan yang sepadan dengan corak dalam fail ini:
%s/corak/rentetan/g # % bermaksud semua baris
Untuk menggantikan rentetan padanan baris yang ditentukan:
n,ms/corak/rentetan/g
Di sini n dan m ialah kedua-dua nombor, mewakili nombor baris. Anda boleh menggunakan titik untuk mewakili garis semasa
Jika anda memadamkan kandungan daripada baris semasa ke baris kelima:
.,5h
Apabila baris semasa berada di bawah baris kelima, akan ada gesaan padam terbalik.
Apabila menggunakan /pattern dan :s/pattern/string, corak ialah ungkapan biasa yang digunakan untuk memadankan corak rentetan.
Ungkapan biasa mempunyai beberapa persamaan dengan kad bebas yang diperkenalkan sebelum ini (Pengenalan kepada Perintah Asas 2), tetapi perhatian harus diberikan untuk membezakan perbezaan antara keduanya.
Kad liar digunakan terutamanya untuk memadankan nama fail. Ungkapan biasa bukan sahaja boleh digunakan untuk memadankan nama fail, malah ia boleh memadankan sebarang rentetan. Ia lebih serba boleh daripada kad bebas Kebanyakan bahasa pengaturcaraan dan beberapa alat (seperti vim, grep, awk, sed) mempunyai sokongan langsung untuk ungkapan biasa.
Yang berikut memperkenalkan konsep dan penggunaan beberapa ungkapan biasa yang akan digunakan:
匹配位置: ^ 表示行开头 $ 表示行结尾 表示单词结尾 匹配字符: . 表示匹配任意单个字符(相当于通配符中的?) [...] 表示匹配括号内任意单个字符 [^...] 表示匹配任意一个非列出字符 #参照通配符描述 /a 匹配英文字符,等同于[a-zA-Z]或[[:alpha:]]。 /A 匹配非英文字符,等同于[^a-zA-Z]。 /d 匹配数字,等同于[0-9]或[[:digit:]]。 /D 匹配非数字,等同于[^0-9]。 /x 匹配十六进制数字,等同于[0-9A-Fa-f]或[[:xdigit:]]。 /X 匹配非十六进制数字,等同于[^0-9A-Fa-f]。 /w 匹配单词,等同于[0-9A-Za-z_]。 /W 匹配非单词,等同于[^0-9A-Za-z_]。 /t 匹配TAB字符。 /s 匹配空白字符,等同于[ /t]或[[:blank:]]。 /S 匹配非空白字符,等同于[^ /t]。 /u 匹配大写字母,等同于[A-Z]或[[:upper:]]。 /U 匹配非大写字母。 /n 匹配换行 /r 匹配回车 (...) 匹配并捕获,用/1 /2 /3 ...来引用被捕获的字符串。 | 表示逻辑或 匹配数量: * 表示匹配前一个字符零到任意多次,相当于{0,}。 + 表示匹配前一个字符一到任意多次,相当于{1,}。 ? 表示匹配前一个字符零到一次,相当于{0,1}。#注意和通配符?的区别 {n,m} 表示匹配前一个字符n到m次。
在使用正则表达式时,有时需要在特殊字符之前加上转义字符”/”来使特殊字符表示它的字面意思而不是它的特殊意义,在特定的工具中使用正则时,也需要这样做来避免特殊字符被工具本身解释。
vim在使用如下正则表达式时需要将特殊字符转义:/、/{n,m}、/(…/)、/?、/+、/|下面结合正则举例说明vim中模式匹配及部分命令用法
匹配字符串world并使光标停留在匹配行后第三行行首:
/world/+3
将第三行到第八行行首添加注释符号//:
3,8s/^//////
注意这里的行首符^和转义符’/’的用法:
%g/^/sxyz/normal dd
此命令作用是全局匹配以空白后接xyz开头的行,并执行普通模式下的命令dd
如匹配6个以上的小写字母:
//a/{6,}
如交换冒号:两侧的字符串:
s//(./):/(./)//2:/1/ #注意这里是如何引用之前匹配的分组的
如将所有tag、tog和tug分别改为hat、hot和hut
%s/t/([aou]/)g/h/1t/g
如匹配hello或world两个单词:
///|/
这里只列出部分vim用到的正则表达式,关于正则的更多内容,以后的文章中还会有描述和举例。
vim编辑器是很强大的,这里只描述了部分初级使用方法。vim还能使用视图模式,编辑多文本,设置键盘映射,多剪贴板,录制宏,使用插件等等。完全可以用vim作为IDE来使用。但相对来说,vim的学习曲线比较陡峭,不同的应用场景,需要记忆的命令和方法数量也是完全不同的。建议在学习中,每次只熟悉几个命令,一段时间后,就能流畅快捷的编辑文本了。
Atas ialah kandungan terperinci Arahan asas linux - vim penyuntingan teks. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!