进入编辑模式 or 退出:
i // 进入编辑模式
:q
:wq // 保存并退出
:q! // 不保存,直接退出
:saveas <文件路径> // 另存
普通模式:
撤销上一操作:u
恢复撤销的操作:Ctrl+r
跳到文档开始位置:gg
跳到文档结束位置:G
跳到本屏的首行:H
跳到本屏的中间行:M
跳到本屏的最后一行:L
编辑模式:
进入编辑模式后,插入点在当前光标位置:i
进入编辑模式后,插入点跳到行首:I
进入编辑模式后,插入点跳到当前光标的下一字符:a
进入编辑模式后,插入点跳到行末:A
进入编辑模式后,在当前行下插入一个新行:o
进入编辑模式后,在当前行上插入一个新行:O
进入编辑模式后,替换从当前光标位置到后一个单词结尾的字符:cw
复制粘贴删除:
复制当前行:yy
粘贴:p
复制n行:nyy
复制m-n行,并粘贴到x行后::m,n co x
有时候不想费劲看多少行或复制大量行时,可以使用标签来替代
光标移到起始行,输入ma
光标移到结束行,输入mb
光标移到粘贴行,输入mc
然后 :'a,'b co 'c 把 co 改成 m 就成剪切了
删除
删除多行 :5, 9 de
删除一个字符:x 或者 Delete
删除一个单词:dw
删除当前正行:dd
删除当前行及以下n行:[n]dd
删除到行尾:dG
光标移动
光标左(前)移一个字符:h
光标右(后)移一个字符:i
光标下移一行:j
光标上移一行:k
单词:
光标移至下一个单词:w
光标后移至下一空格的后一个单词:W
光标移至单词开始位置:b
光标移至上一空格后的单词:B
光标移至下一单词前:e
光标移至下一空格前:E
句子:以.号结尾;
光标移至句首:(
光标移至句尾:)
光标移至段首:{
光标移至段尾:}
行:
光标移至行首:0
光标移至行尾:$
光标移至文档开始行:1G
光标移至第n行:nG
光标移至第n行::n
光标移至文档结束行:G
行号:set nu(显示行号),set nonu(不显示行号)
查找替换
查找:/字符串,然后n向下查找,N向上查找
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/
1.:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
2. :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
(n 为数字,若 n 为 .,表示从当前行开始到最后一行)