一、移动和跳转
1、获取当前位置
获取方式:^G
2、缓冲区移动
^F 向下移动一屏 ^B 向上移动一屏 n^F 向下移动n屏 n^B 向上移动n屏 ^D 向下移动半屏 ^U 向上移动半屏 n^D 向下移动n行 n^U 向上移动n行 ^E 向屏幕顶端多滚动一行 ^L 向屏幕底端多滚动一行 zENTER 将光标所在的行移动到屏幕顶端 z. 将光标所在的行移动到屏幕中间 z- 将光标所在的行移动到屏幕底端
3、光标移动
h 将光标向左移动一个位置 j 将光标向下移动一个位置 k 将光标向上移动一个位置 l 将光标向右移动一个位置 - 将光标移动到上一行的开头 + 将光标移动到下一行的开头 ^ 将光标移动到当前行的第一个非空格/制表符的字符上 数字0 将光标移动到当前行的开始 $ 将光标移动到当前行的末尾 w W 将光标移动到下一个单词的词首(大写字母,略过空格) e E 将光标移动到下一个单词的词尾(大写字母,略过空格) b B 将光标移动到上一个单词的词首(大写字母,略过空格) ) 向前移动到下一个句子 ( 向后移动到上一个句子 { 向前移动到下一个段落 } 向后移动到上一个段落 H 将光标移动到屏幕顶部 M 将光标移动到屏幕中间 L 将光标移动到屏幕的最后一行 fcharacter 单字符搜索移动(f为搜索命令,character为要搜索的字符) Fcharacter 单字符左方向搜索移动 % 已匹配一个括号为目的的移动
说明:
- 命令计数:在移动命令前加数字,如3j,可实现向下移动三行。
- 语法:ncommand (n为数字,command为移动命令)
- 规律:一个命令的大写字母形式会做同样的事情,但是方向相反。
4、行号跳转
显示行号: :set number 关闭行号: :set nonumber
命令 | 说明 |
nG 或者 :n | 跳转到第n行 |
1G 或者 gg 或者 :1 | 跳转到编辑缓冲区第一行 |
G 或者 : $ | 跳转到编辑缓冲区最后一行 |
5、跳转到前一位置
a) ``(两个反引号) b) ‘’(两个单引号)
6、 使用名称标示任意行,进行跳转
用不可见的名称标识任意行,当需要时使用此名称跳转到这一行。
可以键入m标示这一行,后跟一个字母,这个字母就是这一行的名称。
例如:用”b“标示这一行,可以键入mb。为了跳转到这一行,可以键入一个反引号或单引号,后面跟这一行的名称。如:`b 或 ’b
二、搜索
1、常用命令:
命令 | 说明 |
? | 向后搜索 |
/ | 向前重复搜索 |
?/regex | 向后搜索指定的正则表达式 |
/regex | 向前搜索指定的正则表达式 |
n | 重复上一条/或?命令,搜索方向相同 |
N | 重复上一条/或?命令,搜索方向相反 |
2、查找字符串便捷方式
命令 : 将光标定位于字符串,按下键,vi将会取当前光标所在的字符串并将它作用目标字符串进行搜索。
#命令: 与*相反。
%:搜索与当前花括号、圆括号、方括号成对的符号。
3、 查找整个字符串
方法:
使用< >进行匹配。
例子:/\