vimtutor笔记
2017-10-18 本文已影响0人
Doerthous
几种模式
- 正常模式(Normal Mode)
- 插入模式(Insert Mode)
- 可视模式(Visual Mode)
- 替换模式(Replace Mode)
- 选择模式(Select Mode)
- 命令行模式(Command-line Mode)
- Ex模式(Ex Mode)
命令分类
- 修改命令
operator [number] motion
operator - 操作符,如d
[number] - 动作重复次数,可选
motion - 移动,如w,详见 :help motion - 删除命令
- 替换命令
- 查找命令
- 移动命令
- 改类命令
c [number] motion
常见用法
移动
- h(左移) j(下行) k(上行) l(右移)
- w(移动当下一个单词开头) b(移动到前一个单词开头)
- e(移动到单词的结尾) ge(移动到前一个单词的结尾)
- 欲重复一个动作,请在其前面加上数字,如2w
- 0(移动到行首) $(移动到行尾)
- gg(移动到文件首) G(移动到文件尾)
- 100G(移动到第100行)
插入
- i - 在光标前插入
- a - 在光标后插入
- A - 在行尾插入
- o - 在当前行的下一行新建一行
- O - 在当前行的上一行新建一行
删除
- x - 正常模式下删除光标所在位置的字
- dd - 删除整行
- dw - 从当前光标删除至下一个单词的开头
- de - 从当前光标删除至当前单词的结尾
- d$ - 从当前光标删除至当前行行尾
撤消与重做
- u - 撤消之前的操作
- U - 撤消在一行中所做的动作
- C_r - 重做
替换
- r - 替换当前光标下的单个字符
- R - 进入替换模式
- c - 改变从当前光标所在位置到motion所指示的位置的文本
- :s/old/new - 将当前行内第一个old替换为new
- :s/old/new/g - 将当前行内所有old替换为new
- :#,#s/old/new/g - 替换给定行范围内所有old为new
- :%s/old/new/g - 替换文件中所有old为new
- :%s/old/new/gc - 对文件中所有old,询问是否替换为new
查找
- /string - 在文件中查找string
- ?string - 在文件中反向查找string
- 在上述两个操作后按n重复下一次同向查找,按N向相反方向查找
- 如果当前光标位置是(、)、[、]、{、},按%会将光标移动到配对的括号上
执行Shell命令
- :!command - 执行外部shell命令
文件读写
- :w FILENAME - 将当前文件保存到名为FILENAME的文件中。
- :r FILENAME - 将名为FILENAME的文件的内容插入到光标当前位置后面
- v motion :w FILENAME - 将选中内容保存到文件FILENAME中。
复制粘贴
- y - 复制
- p - 粘贴
选项设置
- :set xxx - 开启xxx选项
- :set noxxx - 关闭xxx选项
- :set hls - 高亮显示所有匹配的短语
- :set ic - 查找时忽略大小写
- :set number - 显示行号
帮助
- :help - 打开帮助
- :help xxx - 查找关于xxx的帮助
- :C_d - 查看可能的补全结果
- tab - 命令补全
窗口操作
- C_w - 窗口间切换
退出
- :q - 退出
- :wq - 保存并退出