* 向前搜索当前单词
# 向后搜索当前单词
n 和 shift n(N) 向后向前跳到所匹配的单词处
C-f page down; C-b page up
C-o 回到上次位置
C-i "C-o"的对立操作
多文档编辑
:sp fileName 水平分割文档
:vs fileName 垂直分割文档
c-w 两次切换文档;c-w一次+ ( h j k l ) 左下上右切换
:e 文档名 这是在进入vim后,不离开 vim 的情形下打开其他文档。
:e# 或 Ctrl+ˆ 编辑上一个文档,用于两个文档相互交换编辑时使用。?# 代表的是编辑前一次编辑的文档
:files 或 :buffers 或 :ls 可以列出目前 缓冲区 中的所有文档。加号 + 表示 缓冲区已经被修改过了。#代表上一次编辑的文档,%是目前正在编辑中的文档
:f 或 Ctrl+g 显示当前正在编辑的文档名称
:qa 或 qa! 在打开多文档的情况下离开 vim。a 即 all 的意思。
:tabnew [++opt选项] [+cmd] 文件 建立对指定文件新的tab
:tabc 关闭当前的tab
:tabo 关闭所有其他的tab
:tabs 查看所有打开的tab
:tabp 前一个
:tabn 后一个
标准模式下:gt , gT 可以直接在tab之间切换。
插入模式下<C-x><C-f>列出当期目录所有文件(对这个机制目前还不大清楚,有可能是某个插件提供的功能)
替换命令
语法为 :[addr]s/源字符串/目的字符串/[option]
全局替换命令为::%s/源字符串/目的字符串/g
[addr] 表示检索范围,省略时表示当前行。
如:“1,20” :表示从第1行到20行;
“%” :表示整个文件,同“1,$”;
“. ,$” :从当前行到文件尾;
s : 表示替换操作
[option] : 表示操作类型
如:g 表示全局替换;
c 表示进行确认
p 表示替代结果逐行显示(Ctrl + L恢复屏幕);
省略option时仅对每行第一个匹配串进行替换;
如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义