vim的一些简单操作知识

  1. vim相当于vi(Visual Interface,文本编辑器)的升级版。vim是模式编辑器。
  2. vim基本格式是vim [OPTION] ...FILE...
  3. vim有三种主要模式:(Normal)命令模式、(Insert)插入模式、(extended command)扩展命令模式。
  • 命令模式主要功能是查看,也有剪切粘贴功能
  • 插入模式是修改
  • 扩展命令模式是保存退出
  1. 模式之间的转换
  • 命令模式 --> 插入模式
    • i: insert, 在光标所在处输入
    • I:在当前光标所在行的行首输入
    • a: append, 在光标所在处后面输入
    • A:在当前光标所在行的行尾输入
    • o: 在当前光标所在行的下方打开一个新行
    • O:在当前光标所在行的上方打开一个新行
  • 插入模式 ---ESC--> 命令模式
  • 命令模式 ----:---> 扩展命令模式
  • 扩展命令模式 ---ESC---> 命令模式
  1. 关闭文件
  • 扩展模式
    • q 退出(前提是没有修改文件)
    • wq 保存退出
    • q! 强制退出,放弃做出的修改
    • wq!保存退出
    • x 保存退出
  • 命令模式
    • ZZ 保存退出
    • ZQ 不保存退出

各个模式的操作


  1. 命令模式
  • 光标跳转
    • 字符之间跳转:
      • h:← l:→ k;↑ j;↓
      • #cmd:跳转由#指定的个数的字符。按随意数字后再按hjkl
    • 单词间跳转
      • w:下一个单词的词首
      • e:当前或下一个单词的词尾
      • b:当前或前一个单词的词首
      • #cmd:由#指定一次跳转的单词数
    • 当前页跳转
      • H:页首
      • M:页中间行
      • L:页底
    • 行首行尾跳转
      • ^:跳转至行首的第一个非空白字符
      • 0:跳至行首
      • $:跳至行尾
    • 行间移动
      • G:最后一行
      • gg或1G:第一行
    • 句间移动
      • ):下一句
      • (:上一句
    • 段落间移动
      • }:下一段
      • {:上一段
  • 翻屏
    • Ctrl+f:向文本尾部翻一屏
    • Ctrl+b:向首部翻一屏
    • Ctrl+d:向尾部翻半屏
    • Ctrl+u:向首部翻半屏
  • 字符编辑
    • x:删除光标处的字符
    • #x:删除光标处起始的#个字符
    • xp:交换光标所在处的字符及其后面字符的位置
    • ~:转换大小写
    • J:删除当前行后的换行符
  • 替换命令
    • r:替换光标所在处的字符,一次只能替换一个字符。
    • R:切换成REPLACE模式,批量替换。emmmmmmmmmm
  • 删除命令
    • d:结合光标跳转实现范围删除
      • d$:删除到行尾
      • d^:删到非空行首
      • d0:删到行首
      • d#cmd:指定次数和命令批量删除
      • ...
    • dd:删除光标所在的行
    • #dd:多行删除
    • D:从当前光标位置一直删除到行尾,留空行,等同于d$
  • 复制和粘贴
    • y:复制,行为和d相似
      • ye:从当前位置拷贝到最后一个字符
      • yy:复制行
      • #yy:多行复制
      • Y:复制整行
      • p:粘贴。
    • p(小写):粘贴至当前光标所在处的后面,下一行
    • P(大写):粘贴至当前光标所在处的前面,上一行
    • dd+p相当于剪切粘贴
  • 改变命令
    • c:边删边进入切换模式,,可配合光标移动使用
      • c$:从光标处删除到行尾并切换到插入模式
      • c^
      • c0
      • c#cmd
      • ...
      • cc:删除当前行并输入新内容,相当于S
      • C:删除当前光标到行尾,并切换成插入模式
  • 撤销更改
    • u:撤销最近的更改
    • #u:撤销之前的#次更改
    • U:撤销光标落在这行后所有此行的更改,针对此行,撤回到没修改的状态。
    • .:重复前一个操作
    • n.:重复n次前一个操作
    • Ctrl+r,取消做出的上一次撤销操作
  • 其他操作,命令组合
    • 比如100ihuang[ESC]粘贴100次“huang”
    • gu变小写
      • 可以设定范围,比如gggu10G是将第一行到第十行变小写,以此类推。
    • gU变大写,10GgUG是想第十行到最后一行变大写,以此类推。
    • g操作也可以换成其它的操作,比如d,比如y...
  1. 扩展命令模式
  • 地址定界
    • 格式:开始行,结束行
    • #:具体到第#行
    • #1,#2:从#1到#2行
    • #,+#:从#开始到+#行
    • .:当前行
    • $:最后一行
      • .,-$当前行到倒数第二行
    • %:全文。同1,$
    • /PAT1/,/PAT2/:从被PAT1匹配到的行开始,到PAT2匹配到的行结束。比如/f/,/t/意思是从以f开头的行开始到以t开头的行结束。
    • #,/pat/:从第#行到匹配到的行
    • /pat/,$:匹配到的行到最后一行
    • 地址定界后可以加操作,比如删除全文:%d。比如3,/^f/ w file,将范围内的行另存到指定文件中。
    •  
  • 查找
    • /PATTERN:从当前光标所在处向文件尾部查找。操作是在扩展命令模式下输入/和要查找的字符按下回车。
    • ?PATTREN:从当前光标所在处向文件首部查找。
    • n:与命令同方向;N:与命令反方向,这两个操作是用在查找到匹配结果后上下搜索的。
  • 查找并替换
    • s:在扩展模式下完成查找替换操作
      • 格式:s/要查找的内容/替换为的内容/修饰符
        • 要查找的内容:可使用模式
        • 替换为的内容:不能使用模式,但可以使用\1, \2, ...等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容
      • 修饰符
        • i:忽略大小写
        • g:全局替换(默认情况下每一行指挥替换第一次出现的匹配字符)
        • gc:全局替换,每次替换换前询问
      • 查找替换中的分隔符/可替换为其它字符,保证格式正确就行。举例
        • s@/etc@/var@g
        • s#/boot#/#i 加颜色      

 插入模式,emmmmm,就是增删修改数据。

内容不多,希望有所帮助。

猜你喜欢

转载自blog.csdn.net/qq_39155877/article/details/81410303