vim编辑器
常用命令示意图
vim与vi
vim是vi的增强版,是 Linux 众多发行版的默认文本编辑器,所以,通常系统都已经默认安装好了 vi 或 vim 文本编辑器。
注意:CentOS中使用到的是vi,没有vim
如果输入vim,出现下面的提示,就证明没有安装vim
shell
-bash: vim: command not found
使用yum安装下,就可以了
shell
yum install vim -y
vim的三种模式
vim有三种模式,分别是命令模式、插入模式和底线命令模式。这三种模式的作用分别是:
- 一般命令模式:此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符。
- 输入模式:在命令模式下通过按下
i
、a
、o
等按键进入输入模式。 - 底线命令模式:用户在命令模式按下
:
后便进入底线命令模式。
vim的使用
一般命令模式
移动光标
移动光标的方法 h或← 左移一个字符 j或↓ 下移一个字符 k或↑ 上移一个字符 l(小写L)或→ 右移一个字符 可以使用组合按键如: 30↑或30j, 分别表示向上移动30行和向下移动30行 [ctrl]+[f] 或 [Page Down] 向下翻一页✱ [ctrl]+[b] 或 [Page Up] 向上翻一页✱ + 移动到非空格符的下一行 - 移动到非空格符的上一行 n[space] 向右移动n个字符 n[Enter] 向下移动n行✱ 数字[0] 或 [Home] 移动到本行最开头✱ $ 或 [End] 移动到本行最末尾✱ H 移动到当前屏幕的第一行第一个字符 L 移动到当前屏幕的末尾行第一个字符 G 移动到当前文件的最后一行✱ nG 移动到当前文件的第n行✱ gg 移动到当前文件第一行✱ n[Enter] n为数字,光标向下移动n行✱ 查找与替换
查找与替换 /word 向下查找字符串 ?word 向上查找字符串 按键 n 继续下一个查找 按键 N 返回上一个查找 使用/word配合n及N是非常有帮助的,可以实现一些高级操作 :n1,n2s/word1/word2/gc 在第n1行与第n2行之间寻找word1这个字符串,
并将该字符串替换为word2,
末尾加c可在替换前向用户确认是否需要替换删除、复制与粘贴
删除、复制与粘贴 x 向后删除一个字符,相当于[Del]✱ nx n为数字,删除光标所在的向后n个字符✱ X 向前删除一个字符,相当于[Backspace]✱ dd 删除(剪切)光标所在的一整行✱ ndd n为数字,删除(剪切)光标所在的向下n行✱ dgg 删除(剪切)从当前行到第一行的所有数据✱ dG 删除(剪切)从当前行到最后一行的所有数据✱ d0 删除(剪切)从当前光标到本行第一个字符✱ d$ 删除(剪切)从当前光标到本行最后一个字符✱ yy 复制光标所在的一整行✱ nyy 复制光标所在的向下n整行✱ ygg 复制从当前行到第一行的所有数据✱ yG 复制从当前行到末尾行的所有数据✱ y0 复制从当前光标到当前行首的所有数据✱ y$ 复制从当前光标到当前行尾的所有数据✱ p 将已复制的内容粘贴在光标下一行✱ P 将已复制的内容粘贴在光标上一行✱ J 将当前行与下一行合并成一行 c 重复删除多个数据,例如向下删除10行: [10cj] u 撤销✱ [ctrl]+[r] 重做✱ 小数点 . 重复前一操作
编辑模式
- 进入编辑模式
进入编辑模式 i 从当前光标进入插入模式✱ a 从当前光标所在的下一个字符进入插入模式 A 从当前行的最末字符进入插入模式 o 从当前光标的下一行进入插入模式✱ O 从当前光标的上一行进入插入模式✱ r 进入替换模式,替换光标所在的字符一次 R 进入替换模式,一直替换光标所在文字,直至按下[Esc] [Esc] 退出编辑模式✱
底线命令模式
保存、退出、查找、替换
保存、退出、查找、替换 :w 保存✱ :wq 保存并退出✱ :q 退出✱ :q! 强制退出,不保存✱ :w [filename] 另存为[filename] :r [filename] 将另一个文件[filename]中的内容加入到当前行的后面 :n1,n2 w [filename] 将第n1行到第n2行的内容另存为文件[filename]中 :! command 暂时退出vim,返回命令行模式下执行command命令
例如: [:! ls /home] 暂时退出vim执行ls /home命令vim显示界面的修改 :set nu 显示行号 :set nonu 取消行号
可视区块模式
Vim 的 Visual Block(可视块模式)是一种选择文本的方式,允许你以矩形块的形式选择文本,而不是按行或单词选择。这种模式在处理列数据或需要对多行进行相同编辑时非常有用。
举例来说,有下面格式的文件
txt
192.168.1.100 host1.class.net
192.168.1.101 host2.class.net
192.168.1.102 host3.class.net
192.168.1.103 host4.class.net
想修改成如下内容
txt
192.168.2.100 host1.class.net host1
192.168.2.101 host2.class.net host2
192.168.2.102 host3.class.net host3
192.168.2.103 host4.class.net host4
使用普通修改方式较为繁琐,此时可以使用vim的可视区块模式:
- 光标移动到第一行的host字符前,按下ctrl+v进入可视区块模式
- 移动光标到最底部,此时可以看到所有行的host字符都被反白
- 按下y复制选择的数据
- 在第一行按下i进入插入模式,光标移动到最右边指定位置退出插入模式
- 按p粘贴数据
- 按Esc退出可视区块模式
可视区块模式下的操作:
可视区块模式的按键意义 | |
---|---|
ctrl+v | 进入可视区块模式,可以使用矩形的方式选择数据 |
h, j, k, l 或 ←, ↓, ↑, → | 移动光标 |
v | 字符选择,会将光标经过的字符反白选择 |
V | 行选择,会将光标经过行反白选择 |
y | 复制选择的数据 |
d | 删除选择的数据 |
p | 粘贴选择的数据 |
Esc | 退出可视区块模式 |
多文件编辑
我们可以使用vim同时打开好几个文件进行多文件编辑。
打开多个文件
shellvim filename1 filename2 filename3
多文件编辑操作(在命令模式下)
shell:n 切换到下一个文件 :N 切换到上一个文件 :files 查看当前打开的文件 :close 关闭当前文件 :q 关闭所有文件,退出vim
多窗口功能
在打开一个文件后,在普通模式下使用以下命令可以多窗口打开多个文件
打开新文件
shell:sp [filename]
切换下一窗口
shellctrl + w + j ctrl + w + ↓
切换上一窗口
shellctrl + w + k ctrl + w + ↑
关闭当前窗口
shellctrl + w + c
< 完结 >