vim 有好多不同的模式
启动的时候进入normal mode
大部分时间会在normal mode 和 insert mode(按i切换)
还有replace mode(替换模式r),visual mode(按v切换)
shift-v:可视行模式 ctrl-v可视块模式 按下冒号进入命令行模式
<C-v>
(Ctrl-V, 有时也写作 ^V
)三种写法
vim认为用鼠标是效率低的方式,所以所有操作都用键盘完成
命令行模式的指令
:q
退出(关闭窗口)(:q!强制退出,不保存,:qa关闭所以选项卡):w
保存(写):wq
保存然后退出:e {文件名}
打开要编辑的文件:ls
显示打开的缓存:help {标题}
打开帮助文档
:help :w
打开:w
命令的帮助文档:help w
打开w
移动的帮助文档
normal mode下按o回车切换一行并且进入编辑模式,x删除一个字符
buffer缓冲区
window窗口
tab选项卡
vim中一个tab对应几个window
在normal mode下的移动
- 基本移动:
hjkl
(左, 下, 上, 右)- 词:
w
(下一个词),b
(词初),e
(词尾)- 行:
0
(行初),^
(第一个非空格字符),$
(行尾)- 屏幕:
H
(屏幕首行),M
(屏幕中间),L
(屏幕底部)- 翻页:
Ctrl-u
(上翻),Ctrl-d
(下翻)- 文件:
gg
(文件头),G
(文件尾)- 行数:
:{行数}<CR>
或者{行数}G
({行数}为行数)- 杂项:
%
(找到配对,比如括号或者 /* */ 之类的注释对)- 查找:
f{字符}
,t{字符}
,F{字符}
,T{字符}
- 查找/到 向前/向后 在本行的{字符}
,
/;
用于导航匹配- 搜索:
/{正则表达式}
,n
/N
用于导航匹配
编辑模式
i
进入插入模式
- 但是对于操纵/编辑文本,不单想用退格键完成
O
/o
在之上/之下插入行d{移动命令}
删除 {移动命令}
- 例如,
dw
删除词,d$
删除到行尾,d0
删除到行头。c{移动命令}
改变 {移动命令}
- 例如,
cw
改变词- 比如
d{移动命令}
再i
x
删除字符(等同于dl
)s
替换字符(等同于xi
)- 可视化模式 + 操作
- 选中文字,
d
删除 或者c
改变u
撤销,<C-r>
重做y
复制 / “yank” (其他一些命令比如d
也会复制)p
粘贴- 更多值得学习的: 比如
~
改变字符的大小写