模式
i进入插入模式,在光标前插入,a则为光标后插入,用于在行尾时,o则另起一行O在上方另起一行
esc进入一般模式,再按一次会报警
导航
hjkl 左下上右
撤消重做
u撤消,c-r重做,U本行撤消
编辑
j删除本行换行符
x删除
dd删除一行
命令计数
命令前加一数字,即可重复执行该命令n次
退出
ZZ,保存并退出
q!放弃保存并退出
e!放弃所有修改并重新载入原始内容
!表示强制执行本命令
帮助
help xxx
ctrl-]可进入超链接
ctrl-o回到上一位置
光标移动
w移动一个word
b向前移动一个word
e移动到下一个word的最后一个字符
ge移动到前一个word的最后一个字符
$行尾同end
^当前行的第一个非空白字符上
0行首同home
fxxx移到XXX字符
F向左f
txxx停留在XXX字符之前的一个字符上
T向左T
FfTt都可用;来重复,“,”做反向重复
%移到与当前括号匹配的括号上
G文章末尾
nG移到n行上
``返回按G前的出发位置
gg跳到第一行
:jumps 列出跳转位置列表
n%跳到文章的百分之n处
H,M,L移到当前屏幕开始处,中间处,结尾处
屏幕操作
ctrl-u向下滚动半屏 pageup
ctrl-d pagedown
ctrl-e 向上滚动一行
ctrl-y 向下滚动一行
ctrl-f 向前滚动整屏
ctrl-b 向后滚动整屏
zz 当前行置于屏幕正中行
zt 当前行置于屏幕顶端
zb 当前行置于屏幕底端
状态显示
ctrl-g显示当前文件名,行号,行数,百份比,列信息
:set number 显行号,nonumber取消显示
:set ruler 右下角显示光标位置
搜索
/string 搜索字符串
n查找下一个,3n查找第三次出现 N重复前一次查找
?string反向搜索
:set ignorecase忽略大小写
/按上下箭头可查看搜索历史
*搜索当前光标所在的单词,#为反向
/\<the\>精确匹配the, \>代表结束处
:set hlsearch高亮显示,:nohlsearch 关闭当前高亮显示
:set incsearch 增量搜索
:set nowrapscan 循环搜索
书签
ma将当前光标所在位置标记为"a", 可定义到z
`a跳转到a标记,‘a 跳转到a标记所在的行首
:marks 显示标记列表
编辑
dnw删除n个单词
d$删除到行尾
即操作符+位移命令
c即删除并置于insert模式
x=dl
X=dh
D=d$
C=c$
s=cl
S=cc
nr将n个字符替换为即将输入的字符
. 重复执行上个改动
visual模式
按v进入
V进入行选择模式,以行为单位
ctrl-v进入块选择模式
o切换到另一端的对角
O切换到同一行的左右两个角
移动文本
p 将删除后的文本插入到当前光标的下面
P 放到前面
复制文件
y 复制
yy 复制一整行 =Y
*y *p将复制或粘贴从系统剪贴板
文本对象
aw一个word
is Inner Sentence
as a Sentence 包括后面的空格
替换模式
R 进入替换模式 可用insert键切换
改变大小写
~ 在Visual模式可改变所有文本的大小写
文件切换
:edit xxx 编辑文件名
ctrl-^ 切换文件
:next :prev 切换文件
更改文件名
:saveas 另存为
:file 只改名
窗口管理
:split 打开新窗口
ctrl-w 切换 hjkltb左下上右顶底
:close关闭窗口
:only 只保留当前窗口
:new 开空窗口
ctrl-w + 增加高度
ctrl-w -减小
vimdiff 比较文件
:tab split 新建带窗口的标签