一篇文章教会你使用命令行工具vi

前言

在 Linux 和 macOS 终端环境下,vi(Vim 的前身)是最常见的文本编辑器之一。尽管初学者可能会被它的界面吓到,但熟练掌握后,vi 可以让你高效地编辑文本,成为开发者和运维工程师的利器。

本篇文章将从 vi 的基本操作讲起,带你逐步掌握这个强大的命令行工具。

1. 如何打开和退出 vi

打开 vi

在终端中输入以下命令即可打开 vi

复制代码
vi 文件名

如果 文件名 存在,则打开该文件;如果不存在,则创建一个新文件。

退出 vi

vi 最让新手困惑的地方之一是如何退出。可以使用以下命令:

  • :q ------ 退出(如果有未保存的修改,则会报错)。
  • :q! ------ 强制退出,不保存修改。
  • :wqZZ ------ 保存并退出。

2. vi 的模式

vi 有三种主要模式:

模式名称 说明
普通模式 默认模式,用于移动光标、删除文本等
插入模式 允许输入文本,类似于普通编辑器
命令模式 允许执行保存、搜索、替换等命令

模式切换

  • 普通模式 → 插入模式:按 i(在光标前插入)、a(在光标后插入)、o(新建一行并插入)。
  • 插入模式 → 普通模式:按 Esc 键。
  • 普通模式 → 命令模式:按 : 键。

3. vi 的基本操作

光标移动

按键 作用
h 左移
l 右移
j 下移
k 上移
0 移动到行首
$ 移动到行尾
gg 移动到文件开头
G 移动到文件结尾

📌 提示 :你也可以使用 Arrow(方向键)进行移动。

删除和撤销

命令 作用
x 删除光标所在字符
dd 删除当前行
D 删除光标后所有内容
u 撤销上一步操作
Ctrl + r 重新执行撤销的操作

复制、剪切和粘贴

命令 作用
yy 复制当前行("yank")
p 在光标后粘贴内容
dd 剪切当前行
d$ 剪切光标到行尾的内容
y$ 复制光标到行尾的内容

快捷键速查表

快捷键 功能
Ctrl + f 向下翻页
Ctrl + b 向上翻页
Ctrl + d 向下移动半页
Ctrl + u 向上移动半页
J 将当前行与下一行合并
. 重复上一次操作

4. 搜索与替换

搜索

  • /关键词 ------ 向下搜索 关键词
  • ?关键词 ------ 向上搜索 关键词
  • n ------ 跳到下一个匹配项。
  • N ------ 跳到上一个匹配项。

替换

  • :%s/旧字符串/新字符串/g ------ 替换整个文件中的所有匹配项。
  • :s/旧字符串/新字符串/g ------ 替换当前行中的所有匹配项。

5. 进阶技巧

多窗口编辑

  • :split 文件名 ------ 水平分屏打开文件。
  • :vsplit 文件名 ------ 垂直分屏打开文件。
  • Ctrl + w 再按 h/j/k/l 进行窗口切换。

宏录制(批量操作)

  1. 进入普通模式,按 q 再按一个字母(例如 a)开始录制。
  2. 执行一系列操作。
  3. q 停止录制。
  4. @a 运行宏。
  5. @@ 运行上次执行的宏。

6. 练习与进阶学习

可以使用以下方法提高 vi 操作技能:

  • 练习 vimtutor

    shell 复制代码
    vimtutor

    这是一个内置的 vi 教程,非常适合新手。

  • 在线练习网站:vim-adventures.com

  • 多使用 vi 进行日常文本编辑。

结语

虽然 vi 乍看之下有些复杂,但掌握基本操作后,你会发现它的高效之处。希望这篇文章能帮助你快速入门 vi,提高文本编辑效率!

相关推荐
花生侠25 分钟前
记录:前端项目使用pnpm+husky(v9)+commitlint,提交代码格式化校验
前端
一涯32 分钟前
Cursor操作面板改为垂直
前端
G探险者39 分钟前
语言只是压缩包:人类交流为何如此低效?
程序员
我要让全世界知道我很低调39 分钟前
记一次 Vite 下的白屏优化
前端·css
1undefined241 分钟前
element中的Table改造成虚拟列表,并封装成hooks
前端·javascript·vue.js
蓝倾1 小时前
淘宝批量获取商品SKU实战案例
前端·后端·api
comelong1 小时前
Docker容器启动postgres端口映射失败问题
前端
花海如潮淹1 小时前
硬件产品研发管理工具实战指南
前端·python
用户3802258598241 小时前
vue3源码解析:依赖收集
前端·vue.js