VIM操作指南
一. 移动
- h,j,k,l 对应左,下,上,右
- w 移动光标向前一个单词
- b 移动光标向后一个单词
- nw 移动光标向前n个单词
- nb 移动光标向后n个单词
- $ 移动光标到行首
- ^ 移动光标到当前行的第一个字母处
- ) 移动光标到下一个句子
- ( 移动光标到上一个句子
- gg 移动光标到页的第一行
- G 移动光标到页的最后一行
- nj 向下移动n行
- nG 跳至第n行
- H 移动光标到屏的上方
- M 移动光标到屏的中间
- L 移动光标到屏的下方
- fx 移动光标到本行的下一个x处
二.剪切与拷贝
- <shift-v> 选择文本(可视化)
- v 选择文本
- d 剪切选择的内容到剪贴板
- y 拷贝选择的内容到剪贴板
- dd 删除当前行
- dw 剪切一个词(或daw)
- yy 拷贝当前行
- cc 剪切当前行并进入插入模式
- dfs 剪切从当前光标处到下一个s间的字符
- c$ 删除从光标位置至行尾的字符并进入插入模式
- d$ 删除从光标位置至行尾的字符
- p 粘贴
三.插入与替换操作
- i 在当前字符插入
- I 在当前行首插入
- a 在当前字符的右边插入
- A 在当前行尾插入
- o 在当前行的下方插入
- O 在当前行的上方插入
- r 替换单个字符
- cl 修改一个字符
- cc 修改一整行
四.保存操作
- :q 退出
- :q! 强制退出
- :w 保存
- :wq 存盘并退出
- :new 文件名 新建文件
五.窗口操作
- <C-h,j,k,l> 切换到上下左右的窗口中去
- <C-H,J,K,L> 向上下左右进行窗口
- wm:WMToggle 打开浏览窗口
- F8 打开或关闭Taglist窗口
- :close 关闭当前窗口
- <C-w> 切换活动窗口
- :only 关闭其余窗口,只保留当前窗口
- :split 横向分割窗口
- :vsplit 纵向分割窗口
- :4split 分割窗口,并使新窗口只有4行
- <C-U> 文本向上滚动半屏
- <C-D> 文本向下滚动半屏
- <C-F> 向前滚动整屏
- <C-B> 向后滚动整屏
- zz 当前行置为屏的正中央
- zt 当前行置于屏的顶端
- zb 当前行置于屏的底端
- :previous 移动到前一个文件
- :next 移动到后一个文件
- :2next 向前跳过2个文件
- :last 移动到最后一个文件
- :first 移动到第一个文件
- cal 打开Calendar窗口
六.重做与搜索替换
- x 删除当前字符
- u 撤销
- <C-R> 重做(撤销的反操作)
- /text 向后搜索text,搜索后,用n向下搜索定位,N向上搜索定位
- ?text 向前搜索text,搜索后,用n向上搜索定位,N向下搜索定位
- /text\> 查找单个词text
- /\>text\>查找单个词text
- /^the 只匹配行首为the的单词
- /the$\>只匹配行首为the的单词
- J 将多行拼接为一行
- gU 当前单词变为大写
- gu 当前单词变为小写
- gUU 当前行都变为大写
- guu 当前行都变为小写
- :s/from/to 当前行from替换为to,只替换第一个(:s/from/to/g 表示替换当前行所有)
- :1,5s/from/to 从1至5行from替换to
- :%s/from/to/g 文件所有from替换为to
七.VIM常用设置命令
- :Set ignorecase 忽略大小
- :Set noignorecase 精确匹配
- :Set nohlsearch 关闭高亮显示
- :Set hlsearch 打开高亮显示
- :Set number 显示行号
- :Set nonumber 不显示行号
- VIM配置文件为_vimrc
八.跳转(书签)
:jumps 列出跳转的历史记录
`` 回到跳转前的地方
ma 设置当前行为书签
`a 跳到书签a处
:marks 查看书签列表
‘ 进行此次跳转之前的起跳点
“ 上次编辑该文件时的光标最后停留的位置
[ 最后一次修改的起始位置
] 最后一次修改的结束位置
九.其他
:map 列出键值映射
:vmap 列出可视化键值映射
:nmap 列出正常键值映射
:imap 列出插入的键值映射
:cmap 列出命令行键值映射
:omap 列出系统键值映射
:imap <F2><CR> Date: <Esc>:read!date<CR>kJ 定义F2为插入日期