前言
上一篇写了vim的两个模式:正常模式和插入模式
详细的讲vim应该有4个模式:
正常模式 (Normal-mode)
插入模式 (Insert-mode)
命令模式 (Command-mode)
可视模式 (Visual-mode)
什么是命令模式(Command-mode):
在正常模式中 ,按下 : 键或者 / 或者 ?,会进入命令模式。在命令模式中可以执行一些输入并执行一些 VIM 或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等
比如:
搜索替换
按键 | 操作 |
---|---|
/word | 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用) |
?word | 向光标之上寻找一个字符串名称为 word 的字符串。 |
n | 这个 n 是英文按键。代表重复前一个搜寻的动作。 |
N | 个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 |
:n1,n2s/word1/word2/g | n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 |
:%s/word1/word2/g | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 |
字符 | 含义 |
---|---|
^ | 放在字符串前,匹配行首的字符 |
$ | 放在字符串后,匹配行尾的字符 |
< | 匹配一个字符的头 |
> | 匹配一个字符的尾 |
. | 匹配任何单个正文字符 |
[str] | 匹配str中的任何单个字符 |
[^str] | 匹配任何不在str中的单个字符 |
[a-b] | 匹配a~b之间的字符 |
* | 匹配前一个字符的0次或多次出现 |
\ | 转义后面的字符 |
在替换操作中,命令 :%s/word1/word2/g 可以看成是:
{作用范围} s / {目标} / {替换} / {替换的标志}
{作用范围}: %全文
{替换的标志}:g(global)、i(大小写不敏感)、I(大小写敏感)、c(需要确认)
其他操作
按键 | 操作 |
---|---|
:r [filename] | 在编辑的数据中,读入另一个档案的数据 |
:n1,n2 w [filename] | 将 n1 到 n2 的内容储存成 filename 这个档案 |
:! command | 暂时离开 vi 到指令行模式下执行 command 的显示结果 |
:r !command | 将命令的结果输入到文本中 |
:ab str1 str2 | 再切换到插入模式,输入str1会被替换成str2 |
什么是可视模式(Visual-mode):
在正常模式按下v(visual), V(visual-line), Ctrl+v(visual-block)(其他很多编辑器都没有这个功能),可以进入可视模式。可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。