首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 25-04-18 15:00
  • 2150
  • 8401
juejin.cn

前言

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

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

1. 如何打开和退出 vi

打开 vi

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

代码解读
复制代码
vi 文件名

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

退出 vi

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

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

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

    image.png

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

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

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

结语

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

注:本文转载自juejin.cn的pe7er的文章"https://juejin.cn/post/7492688487264108581"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

133
开发工具
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top