Better Stronger Faster
转自 http://coolshell.cn/articles/5426.html
http://vimcdoc.sourceforge.net/doc/help.html
1 使用
编辑模式
- i/I → 在当前字符前/行行首插入字符
- a/A → 在当前字符后/行行末插入字符
- o/O → 在当前行下/上插入新的一行
- r → 替换光标所在的字符,只替换一次
- R → 一直替换光标所在的字符,一直到按下ESC
命令模式
- :w 将编辑过的文本保存
- :w! 若文本属性为只读时,强制保存
- :q 退出vim
- :q! 不管编辑或未编辑都不保存退出
- :wq 保存,退出
- :e! 将文档还原成最原始状态
- ZZ 若文档没有改动,则不储存离开,若文档改动过,则储存后离开,等同于:wq
:w [filename]
编辑后的文档另存为filename:r [filename]
在当前光标所在行的下面读入filename文档的内容:set nu
在每行的行首显示行号:set nonu
取消行号n1,n2 w [filename]
将n1到n2的内容另存为filename这个文档:! command
暂时离开vim运行某个linux命令,例如 :! ls /home
暂时列出/home目录下的文件,然后会提示按回车回到vim
2. 移动光标
- 0(Shift+6) → 数字零,到行头
- ^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
- $(Shift+4) → 到本行行尾
- g_ → 到本行最后一个不是blank字符的位置。
- Ctrl+ f/b/d/u → 屏幕向前/后移动一页/半页。
- +/- → 光标移动到非blank的下/上一列。
- H → 光标移动到当前屏幕的最顶行
- M → 光标移动到当前屏幕的中央那一行
- L → 光标移动到当前屏幕的最底行
- G → 光标移动到文本的最末行
- nG(n是数字) → 移动到该文本的第n行
- gg → 移动带该文本的首行
- n回车(n是数字) → 光标向下移动n行
3. 拷贝/粘贴
- p/P → 粘贴p(p是表示在当前位置之后,P表示在当前位置之前)
- x,X → x为向后删除一个字符,X为向前删除一个字符
- nx(n为数字) → 向后删除n个字符
- dd → 删除光标所在的那一行
- ndd(n为数字) → 删除光标所在的向下n行
- d1G → 删除光标所在行到第一行的所有数据
- dG → 删除光标所在行到末行的所有数据
- yy → 复制光标所在的那行
- nyy → 复制从光标所在行起向下n行
- y1G → 复制光标所在行到第一行的所有数据
- yG → 复制光标所在行到末行的所有数据
- J → 讲光标所在行与下一行的数据结合成同一行
- u → 撤销
4. 查找与替换
/word
→ 向光标之后寻找一个字符串名为word的字符串,当找到第一个word后,按”n”继续搜后一个?word
→ 想光标之前寻找一个字符串名为word的字符串,当找到第一个word后,按”n”继续搜前一个:n1,n2s/word1/word2/g
→ 在n1和n2行间查找word1这个字符串并替换为word2,你也可以把”/”换成”#”:1,$s/word1/word2/g
→ 从第一行到最末行,查找word1并替换成word2:1,$s/word1/word2/gc
→ 加上c的作用是,在替换前需要用户确认
5. 打开/保存/退出/改变文件(Buffer)
- :e <path/to/file> → 打开一个文件
- :w → 存盘
- :saveas <path/to/file> → 另存为 <path/to/file>
- :x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)
- :q! → 退出不保存 :qa! 强行退出所有的正在编辑的文件,就算别的文件有更改。
:bn
:bp
→ 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。(使用:n到下一个文件)