基本上 vi/vim 共分为五种模式:
普通模式(normal mode):常用基本命令,在此模式输入不会识别为输入字符,而是命令控制,如删除字符x,复制y等;
插入模式(Insert mode):正常的文本输入模式。
命令模式(command mode):可以通过单个或者多个字符进行命令控制,命令非常多。
视图模式(visual mode): 命令模式下,v/ctrl+v进入选择模式。(v 字符,V 行)可通过移动光标(用 方向键 或 hjkl )选中多字符或者多行。
替换模式(replace mode)替换模式,R进入该模式,输入字符替换当前光标后字符。
# 显示行号:
:set number
:set nu
# 隐藏行号:
:set nonumber
:set nonu
# 永久设定行号
打开 vim ~/.vimrc 输入 set nu
4l 向后移动四个字符
4j 向下移动4行
行内移动
w 表示按照单词向后移动
b 表示按照单词向前移动
e表示按照单词向后移动,但是定位到单词最后一个字符前
^, 0都是定位到行首
$定位到行末,可以使用数字表示定位到后面多行的末尾
行间移动
定位到某行:123
gg G 文首 文末
H M L定位到屏幕顶、中、底
zz将光标所在行移动到屏幕中央;zt移动到屏幕顶部;zb移动到屏幕底部
{ }段首段尾
ctrl f/b 上下翻页
ctrl e/y 上下滚动
# * 前后查找当前光标所在处的单词
/hello 向后查找关键词hello,回车就到了后面第一个hello处。
?hello 向前查找关键词hello
N/n向前向后查找
复制:
yy 复制游标所在行整行
2yy/y2y 复制 2 行
y^ 复制至行首,或y0
y$ 复制至行尾
yw 复制一个word
y2w 复制两个word
yG 复制至文件尾
y1G 复制至文件首
剪切:
dd 剪切游标所在行整行
d^ 剪切至行首,或d0
d$ 剪切至行尾
dw 剪切一个word
dG 剪切至文件尾
粘贴
p 粘贴至游标后(下)
P 粘贴至游标前(上)
要使用 系统粘贴板 的内容,也可以直接在命令模式按 Shift + Inset 进行粘贴。
在命令行模式下用 :undo 或 :u 命令可以撤销最近一次操作。