Linux基础——vi/vim编辑器
8、 Vi/Vim编辑器
8.1 VI/VIM是什么?
VI 是 Unix 操作系统和类 Unix 操作系统中最通用的文本编辑器。
VIM 编辑器是从 VI 发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM 与 VI 编辑器完全兼容。
vi和vim存在与根目录下的bin文件中。
8.2 使用 vi和vim编辑器打开文件
在主文件夹中copy一个文本文件到桌面上,这里我copy了initial-setup-ks.cfg
进入桌面文件需要输入中文,这就需要添加中文拼音输入法了。
进入设置,找到Region&Language
第二步,选择汉语中国

第三步,选择第一项,它是汉语的拼音输入

在终端操作的时候,按下快捷键Super+空格可以切换输入法
cd 桌面 #进入桌面文件夹
vim initial-setup-ks.cfg #使用vim编辑器打开该文件
:q #退出vim编辑器
vi打开文件也是同样的方式
vi initial-setup-ks.cfg
8.3 vim编辑器的模式
在我们打开文件后可以发现,我们只能通过上下左右键进行移动光标位置,而不能对内容进行修改。那是因为打开文件后默认为一般模式,在该模式下我们是不能编辑文本的。
下图为vi/vim的模式转换方式:

由上图我们可以得出:vi/vim编辑器有三种模式:一般模式(默认)、编辑模式 和 命令模式
- 一般模式主要的操作有:删除、复制和粘贴
- 编辑模式主要的操作就是
编辑文本(添加和修改) - 命令模式可以通过对应的指令进行对应的操作,例如
:q退出编辑器 - 在vi/vim的编辑模型中,一般模式(普通模式)是编辑模式的核心模式:
- 进入文件后为一般模式
- 通过一般模式可以转换为其他两种模式
- 一般模式进入编辑模式:通常输入小写
i进入编辑模式 - 输入
:或/进入命令模式,其中:常用 - 编辑模式和命令模式退出到一般模式按下
ESC键即可
8.4 vim模式间的操作
多个模式联合操作:
1.输入i进入编辑模式
2.修改或添加内容
3.按下ESC到一般模式
4.将修改的内容保存,写入内存。转换到命令模式:w
5.如果想要回退到未修改的时候,按下u键进行回退到最旧的改变。
6.:q退出编辑页面
8.5 单个模式的详细操作
-
普通模式
以 vi/vim 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可 以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档 案内容, 也可以使用『复制、粘贴』来处理你的文件数据。
语法:
复制粘贴操作:复制一行:直接yy复制当前光标所在的那一行粘贴一行:在需要粘贴的地方按下p粘贴粘贴多次:将复制的内容粘贴多行(次),先输入一个数字(你粘贴的次数),然后按下p可以在当前行下粘贴输入数字的次数。例如在当前行下,粘贴5行。5p复制多行:从光标所在的行开始直到该行下面你输入的行数为止。例如,我要复制8行,它会从光标这行开始,直到下面的第8行。8yy
然后我们再将复制的内容粘贴出来
p
如果我们要复制行内的内容:
复制当前位置到行尾:对光标位置到行尾的内容进行复制y+shift+4(不包括当前光标位置的内容)复制当前位置到行头:对光标位置到行尾之间的内容进行复制
y+shift+4(不包括当前光标位置的内容)外部内容ctrl+c复制,在vim编辑模式下ctrl+shift+v粘贴
删除操作:
删除当前行:dd删除多行:dxd或xdd(这里的x是代表一个数字)删除一个词:dw,当前位置到词尾。一般删除一个单词最好从词头开始删(把光标放在词头)删除当前位置到行尾的内容:
d+shift+4删除当前位置到行头的内容:
d+shift+6替换操作:
替换一个字符:当前光标位置内容R+替换的内容替换多个内容:shift+R进入替换模式,修改完后可以按下esc退出文档光标的移动:
移动到文档的头部:shift+H或者gg移动到文档的尾部:shift+G跳转到下一个词的词头:ww跳转到下一个词的词尾:ee跳转到上一个词的词头:bb跳转到指定行:数字+shift+G如果不知道当前的行号,可以使用命令模式的命令:
:set nu开启行号如果你不需要行号,感觉碍事,可以使用命令:
:set nonu关闭行号 -
编辑模式
只需要在普通模式按下
i就进入了编辑模式在编辑模式中对文本的操作和windows中的文本文件的操作是类似的。
进入编辑模式的方式:

退出编辑模式直接按
ESC键 -
命令模式
在一般模式下,按
:或者/就可以输入一些命令对文档进行操作比如:
退出:
:q,写入内存::w等命令模式下的语法:

扩展:
:wq 保存并退出 :q! 不包存强制退出 :s/old/new 替换当前行匹配的第一个old为new :set/old/new/g 替换当前行匹配到的所有old为new :%s/old/new 替换文档中每一行匹配到的第一个old为new
Vi/Vim键盘图:


浙公网安备 33010602011771号