Vi编辑器中的高效率快捷键

2023-04-25 00:00:00 模式 光标 编辑器 插入 命令行

嗨!大家好,我是木荣。

作为一名嵌入式Linux开发人员,vi编辑器肯定是大家平常使用多的,也是大家在嵌入式Linux系统上使用广泛的编辑器。它是UNIX操作系统和类UNIX操作系统中通用的纯文本编辑器。

这次我们来说一下那些在vi编辑器中常用的快捷键,熟练使用vi编辑器中的快捷键,可以使你的操作飞起来...当然,这样是为一名Linux软件开发人员应该具备的基本技能。


vi简介

vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何的文本编辑器。是UNIX操作系统和类UNIX操作系统中通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版,与vi编辑器完全兼容,而且实现了很多增强功能。Vi也是Linux中基本的文本编辑器,学会它后,你可以在Linux的世界里畅行无阻。

vi可以分为三种模式,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

  • 命令行模式(command mode)  控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
  • 插入模式(Insert mode)  只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
  • 底行模式(last line mode)  将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号等等

有时我们将底行模式(last line mode)也算入命令行模式command mode)。

vi基本操作

  • 进入vi 在系统终端中输入vi和文件名称后,就进入vi:
    vi myfile

进入vi之后,默认是处于命令行模式(command mode),要切换到 插入模式(Insert mode) 才能够编辑和输入。初次使用vi的人都会想先用上下左右键移动光标,进入vi后,先转换到插入模式(Insert mode) 再进行编辑。

  • 切换至插入模式(Insert mode)编辑文件 在 命令行模式(command mode) 下按一下字母i就可以进入插入模式(Insert mode),这时候你就可以开始输入文字了。同样按a进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;按o进入插入模式后,是插入新的一行,从行首开始输入文字。

  • Insert 的切换 如果处于插入模式(Insert mode),按一下ESC键就可以转到命令行模式(command mode)

  • 退出vi及保存文件 在命令行模式(command mode)下,按一下:冒号键,例如::w filename (输入w filename以指定的文件名filename保存):wq (输入「wq」,存盘并退出vi):q! (输入q!, 不存盘强制退出vi)

移动光标

可以直接用键盘上的光标来上下左右移动,同样vi是用小写英文字母h、j、k、l,分别控制光标左、下、上、右移一格。

  • ctrl+b:屏幕往"后"移动一页
  • ctrl+f:屏幕往"前"移动一页
  • ctrl+u:屏幕往"后"移动半页
  • ctrl+d:屏幕往"前"移动半页
  • ^:移动到光标所在行的"行首"
  • w:光标跳到下个字的开头
  • e:光标跳到下个字的字尾
  • b:光标回到上个字的开头
  • #l:光标移到该行的第#个位置,如:1l,23l

定位

  • :set nu:每行显示行号
  • :set nonu:取消显示行号
  • 0:单行首
  • $:单行末
  • H:屏幕顶
  • M:屏幕中
  • L:屏幕末行
  • gg:文件首行
  • G:移动到文章的后
  • n<space>:向后n个字符
  • n<Enter>:向下n行
  • nG=文件第n行

删除

  • x:每按一次,删除光标所在位置的"后面"一个字符。
  • #x:例如6x表示删除光标所在位置的"后面"6个字符。
  • X:大写的X,每按一次,删除光标所在位置的"前面"一个字符。
  • #X:例如20X表示删除光标所在位置的"前面"20个字符。
  • dd:删除光标所在行。
  • #dd:从光标所在行开始删除#行

复制

  • yw:将光标所在之处到字尾的字符复制到缓冲区中。
  • #yw:复制#个字到缓冲区
  • yy:复制光标所在行到缓冲区。
  • #yy:例如6yy表示拷贝从光标所在的该行"往下数"6行文字。
  • p:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。

查找

  • /str:向下查str
  • n:向下查下一个str
  • ?str:向上查str
  • N:向上查下一个str

针对光标停留处的特定的单词,可以使用快捷键进行向上和向下的搜索,Shift + 8,即*键,直接对光标停留处的单词进行向下搜索;Shift + 3,即#键,直接对光标停留处的单词进行向上搜索。

撤销及恢复

  • u:相当于windows中的"ctrl+z",undo
  • ctrl+r:相当于windows中的"ctrl+y",于"ctrl+z"相反
  • .:点儿表示重复作刚才的动作

保存

  • :w:写入硬盘
  • :w!:强制写入
  • :q:离开vi
  • :q!:强制离开vi,不存
  • :wq:存盘并离开vi
  • :wq!:存盘并强制离开

相关文章