欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Vi 和 Vim 编辑器详细使用方法

程序员文章站 2022-05-14 19:41:39
学习 linux 的一项必会技能,熟练使用 vi/vim 编辑器那便最重要的了。不过一堆操作看的也是太头疼了,以下整理了些常用到的命令。末尾福利! ......

Vi 和 Vim 编辑器详细使用方法

学习linux的一项必会技能,熟练使用vi/vim编辑器那便最重要的了。不过一堆操作看的也是太头疼了,以下整理了些常用到的命令。末尾福利!


工作模式

vi编辑界面有三种不同的工作模式,分别为命令模式、输入模式、和末行模式,不同的模式对文件进行的操作也不同。

模式 判断方法 可进行的操作
命令模式 启动后默认进入命令模式 光标移动、复制、粘贴、删除、字符串查找等
输入模式 最后一行有"--insert--"状态提示 录入文件内容
末行模式 最后一行有":"提示符 保存、退出、查找、替换等
  • vi/vim 工作模式

这张图说明了三种模式之间的切换方式。

Vi 和 Vim 编辑器详细使用方法


命令模式中的基本操作

  • 模式切换
操作类型 操作键 功能
进入输入模式 a 光标位置之后插入内容
^ a 光标所在行末尾插入内容
^ i 光标位置之前插入内容
^ i 光标所在行开头插入内容
^ o 光标所在行下面插入新行
^ o 光标所在行上面插入新行
退出输入模式 esc 退出输入模式,返回命令模式
  • 光标移动
操作类型 操作键 功能
方向移动 ↑、↓、←、→ 上、下、左、右
翻页 page down或ctrl+f 向下翻动一整页内容
^ page up或ctrl+ b 向上翻动一整页内容
行内快速跳转 home键或 "^" 、数字 "0" 跳转至行首
^ end键或 "$" 键 跳转到行尾
行间快速跳转 1g或者gg 跳转到文件的首行
^ g 跳转到文件的末尾行
^ #g 跳转到文件中的第#行
行号显示 :set nu 在编辑器中显示行号
^ :set nonu 取消编辑器中的行号显示
  • 复制、粘贴、删除
操作类型 操作键 功能
删除 x或del 删除光标处的单个字符
^ dd 删除当前光标所在行
^ #dd 删除从光标所在行开始的#行内容
^ d^ 删除当前光标之前到行首的所有字符
^ d$ 删除当前光标处到行尾的所有字符
复制 yy 复制当前行整行的内容到剪贴板
^ #yy 复制从光标所在行开始的#行内容
粘贴 p 将缓冲区中的内容粘贴到光标位置处之后
^ p 粘贴到光标位置处之前
  • 文件内容查找
操作键 功能
/word 从上而下在文件中查找字符串"word"
?word 从下而上在文件中查找字符串"word"
n 定位下一个匹配的被查找字符串
n 定位上一个匹配的被查找字符串
  • 撤销编辑及保存退出
操作键 功能
u 按次取消最近的一次操作;重复u键,恢复多步操作
u 用于取消对当前行所做的所有编辑
zz 保存当前的文件内容并退出vi编辑器

末行模式中的基本操作

  • 保存文件及退出 vi 编辑器
功能 命令 备注
保存文件 :w 保存修改的内容
^ :w /root/newfile 另存为其它文件
退出 :q 未修改退出
^ :q! 放弃对文件内容的修改,并退出
保存文件退出 :wq 保存修改的内容并退出
  • 打开新文件或读入其他文件内容
命令 功能
:e ~/install.log 打开新的文件进行编辑
:r /etc/filesystems 在当前文件中读入其他文件内容
  • 文件内容替换
命令 功能
:s /old/new 将当前行中查找到的第一个字符串 "old" 替换为 "new"
:s /old/new/g 将当前行中查找到的所有字符串 "old" 替换为 "new"
:#,# s/old/new/g 在行号 "#,#" 范围内替换所有的字符串 "old" 为 "new"
:% s/old/new/g 在整个文件范围内替换所有的字符串 "old" 为 "new"
:s /old/new/c 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认

vi/vim 键盘图

Vi 和 Vim 编辑器详细使用方法

附上一张中文版的 vi/vim 键盘图。


参考说明

linux vi/vim | 菜鸟教程

菜鸟教程是一个很不错的学习网站,在学习linux的过程中,给过我不少帮助。