查找和替换是编辑器最基本的功能之一。在大多数编辑器当中查找替换时,往往是先移动鼠标在菜单中点击查找的功能,输入查找内容,再点击确认查找。
而在vi中这一切都靠在键盘上敲命令来完成。
替换和撤销命令:
r+替换字符——光标中的字符将被新字符所替换
R——连续替换:删除光标中字符,并进入编辑模式(直至esc键退出)
cc
——替换整行:即删除游标所在行,并进入插入模式
cw
——替换一个单词:即删除一个单词,并进入插入模式
C
(大写)——替换光标以后至行末:即从光标开始删除至行末,并进入插入模式
(参考dd——删除整行,dw——删除当前单词,D——从光标开始删除至行尾)
u——撤销; U——撤销当前行的所有修改;
Ctrl+r
,即撤销 “撤销”操作(反撤销)
缩进:
>> 整行将向右缩进 << 整行向左回退
缩进命令往往在视图模式下使用,以便操作代码块,尤其在python中没有大括号,靠严格缩进来区分代码块。
v进入视图模式,通过h、j、k、l方向键和跳转键来选中一片区域以待操作;但进行了一次操作以后,就自动退出了视图模式。但靠“.”可以重复上一步对选中区域的操作。
快速查找:
"/" + 要查找的内容 + 回车 ——向下查找最近的 "?" + 要查找的内容 + 回车 ——向上查找最近的
回车进入查找后,输入n或N可继续查找文档中别的匹配项;区别在于:n向上,N向下
高级查找:
\* —— 查找对象为光标所在处单词;向下查找最近的一项;和快速查找一样,小n向下翻,大N向上翻
\# —— 和*\*”的唯一区别是向上查
g\* —— 和“\*”的唯一区别是模糊查找,即匹配对象部分符合当前单词即可
g\# —— 和“g\*”的唯一区别是向下查
小n、大N同快速查找中一样,适用于高级查找。
接下来从命令模式敲“:”进入末行模式
末行模式下的文本位置调整命令:
ce(center) —— 光标所在行居中 ri(right) —— 靠右 le(left) —— 靠左
末行模式下的字符串替换命令:
%s/要替换的字符串/替换后的字符串/g
待替换的起始行行号,待替换的末行行号s/要替换的字符/替换后的字符/g