Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进了很多新特性。vim是自由软件,vim普遍被推崇为类vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999年Emacs被选为Linuxworld文本编辑分类的优胜者,vim屈居第二。但在2000年2月vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线,总的来看,vim和Emacs在文本编辑方面都是非常优秀的。
vim是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。vim的设计理念是命令的组合,用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。同时vim与很多快捷设置和正则表达式类似,可以辅助记忆,并且vim对程序员做了优化。
(1)vim编辑器有三种模式:
命令模式,插入模式,末行模式
Ctrl+Shift+T:快速打开一个shell终端
Ctrl+d:快速的删除打开的多个终端
Ctrl+PgDn:快速的切换终端
Ctrl+PgUp:快速的切换终端
(2)使用vim编辑器的格式:# vim /path/file
(3)文件刚刚被打开的时候进入的是命令模式,我们进入到【插入模式】有如下的方式:
i:从当前光标位置插入
a:从当前光标的下一个字符插入
o:在当前好的下一行生成一个空白行,并进入插入模式
I:光标跳到本行开头,并进入插入模式
A:光标跳到本行结束,并进入插入模式
O:在当前行的上一行生成一个空白行,并进入插入模式
(4)在【命令模式】下还有如下的操作技巧:
如果我们插入一行信息后,发现不想执行这个操作了,可以在命令模式下在键盘按下u撤销:u
当我们执行撤销操作后,有时候感觉撤销操作并不好,希望取消撤销操作,此时可以取消撤销操作:Ctrl+r
(5)如果在插入模式下,是没有办法直接进入到末行模式,需要先从插入模式退回到命令模式,再从命令模式进入到【末行模式】。
/---在命令模式下输入“/”,进入到末行模式,表示在末行模式下查询相关信息。此时键盘上按“n”表示查询下一个;键盘上按“N”,表示查询上一个。
:---在命令模式下输入“:”,进入到末行模式,然后可以进行相关信息的编辑。
\c---在末行模式使用“/”进行对应字符的查询时,如果需要忽略大小写,可以加上“\c”,此时便可以查询忽略大小写后的所有字符信息了。
(6)如果在插入模式下,编辑好相关的信息后,需要将文件进行保存,此时是需要进入到【末行模式】进行操作:
:q!:表示强制退出
:wq:表示保存并退出
:x:保存并退出
:w /path/filename:将当前的文本文件写入到指定的位置(图1-13和图1-14)
:r /path/file:将指定路径下的文本信息读取到光标所在的位置(图1-15和图1-16)
:.!ifconfig:可以在命令模式下按shift+两次!号,然后输入需要执行的命令,便可以将执行的文本信息读取到光标所在的位置(图1-17和图1-18)
(7)有时候我们在【末行模式】下还可以设置一些属性信息。
:noh:可以将之前搜索所产生的标黄信息的标记清除掉。
:set nu:在末行模式下设置,可以显示vim编辑器的行号
:set nonu:在末行模式下设置,可以将vim编辑器的行号去除
(8)如果希望vim编辑器的行号属性信息一直存在,可以在当前用户的家目录下创建一个.vimrc的文件。
# vim .vimrc
(9)由于编辑的.vimrc文件只能在所对应的用户家目录下生效,如果系统中有大量用户存在,希望所有的用户在使用vim编辑器时都能生效,可以在root用户下编辑/etc/vimrc解决问题。
# vim /etc/vimrc
(10)有时候我们需要将文本中的信息进行替换操作,在【末行模式】下此时可以使用如下的格式:
:s/rhce/rhca/g---替换当前行的文本(图1-25和图1-26)
:m,ns/rhce/rhca/g---替换指定的m至n行的所有信息(图1-27)
:.,$-2s/rhce/rhca/g---替换当前行到倒数第三行的所有指定信息(图1-28)
:%s/rhce/rhca/g---将全文替换为指定的信息(图1-29)
:%s/\/rhce\//rhca/g---我们需要将“/rhce/”的字符信息替换为“rhca”,可以使用“\”的转义符处理(图1-30)
:%s#/rhce/#rhca#g---此用法同图1-30的用法是一样的。
:1000---在末行模式下输入数字1000可以直接跳转/etc/services的第1000行(图1-31)
(11)在【命令模式】下通常有以下的快捷命令:
yy---复制当前行
nyy---其中n表示任意的数字,表示复制所需的行数
p---将复制好的信息粘贴至光标所在行的下一行开始粘贴
dd---剪切,如果后续不粘贴的话就代表删除
ndd---其中n表示任意的数字,表示从当前行开始将所需要的行数剪切
dG---从当前行删除到最后一行
x---删除单个字符
nx---其中n表示的是任意的字符,表示从当前光标开始往后删除所指定的n个字符
r---替换当前光标所在的单个字符
R---连续替换当前光标至后面的任意字符,直至退出连续替换模式
nG---其中n表示任意的数字,在命令模式下表示切换到所指定的第n行
Shift+g---表示切换到最后一行
gg---连续按两次g,表示切换到第一行
Shift+zz---在命令模式下实现,保存并退出
(12)在【末行模式】下,也可以实现将当前一个文件分屏显示编辑
:sp---实现分屏显示编辑
Ctrl+ww---分屏显示上下屏跳转
(13)在【命令模式】下也可以使用视图功能,比如在/etc/samba/smb.conf配置文件中:
Ctrl+v---进入视图模式(图1-33)
x---可将选中的视图信息删除(图1-34)
调整到320行---Ctrl+v---调整到314行---Shift+i---Shift+#---键盘Esc---向下箭头:统一插入注释行(图1-35)
原文地址:https://blog.51cto.com/13613726/2433116
时间: 2024-10-13 02:28:55