Vim学习

键盘图

vim分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode),底线命令(Last line mode)

命令模式

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。

常用命令:

  • i 切换到输入模式,以输入字符
  • x 删除当前光标所在处的字符
  • : 切换到底线命令模式,以在最底一行输入命令

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令

输入模式

常用:

  • Esc 退出输入模式,切换到命令模式
  • Insert 切换光标为输入/替换模式,光标变成竖线/下划线

底线命令模式

基本命令:

  • q 退出程序
  • w 保存文件

vim工作模式

vim按键

移动光标

要进行多次移动,例如向下移动30行,可使用30↓的组合按键

  • [Ctrl]+[f] 下一页
  • [Ctrl]+[b] 上一页
  • [Ctrl]+[d] 向下半页
  • [Ctrl]+[u] 向上半页
  • 0 移动到该行最前面字符处
  • $ 移动到该行最后字符处
  • G 移动到档案最后一行
  • nG 一赌东道档案第n行
  • gg 移动到档案第一行

搜索替换

  • /word 向光标之下寻找名称为word的字符串
  • ?word 向光标之上寻找名称为word的字符串
  • n 重复前一个搜寻的动作
  • N 反向进行前一个搜寻动作
  • :n1,n2s/word1/word2/gn1n2行之间寻找word1字符串,并用word2取代
  • :1,$s/word1/word2/g:%s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2
  • :1,$s/word1/word2/gc:%s/word1/word2/gc 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2,并显示提示字符确认

删除、复制、粘贴

  • x,X x相当于delX相当于Backspace
  • dd 删除光标所在行
  • ndd 删除光标所在向下n行
  • d1G 删除光标所在到第一行所有数据
  • dG 删除光标所在到最后一行所有数据
  • yy 复制光标所在行
  • nyy 复制光标所在的向下n行
  • p,P p为将已复制的数据在光标下一行粘贴,P为粘贴在上一行
  • u 撤销
  • [Ctrl]+r 重做
  • . 重复前一动作

一般模式切换到编辑模式

  • i,I i为『从目前光标所在处输入』, I为『在目前所在行的第一个非空格符处开始输入』
  • a,A a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』
  • o,O o 为『在目前光标所在的下一行处输入新的一行』, O 为在目前光标所在处的上一行输入新的一行
  • r,R r 会取代光标所在字符一次,R会一直取代光标所在的文字,直到按下[Esc]

一般模式切换到命令模式

  • :w! 若文档为只读属性,强制写入该文档,不过仍与权限有关
  • :q! 离开而不存储文档
  • wq! 强制存储后离开
  • ZZ 若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开
  • :w [filename] 将编辑的数据另存为filename
  • :r [filename]filename 这个档案内容加到光标所在行后面
  • n1,n2 w [filename] 将n1到n2的内容另存为filename
  • :! command 暂时离开vi到指令模式下执行command的显示结果,如[:! ls/home] 即可在vi中查看/home下以ls输出的文档信息
  • :set nu 显示行号,在每一行的前缀显示该行行号
  • :set nonu 取消行号
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus