当前位置: 首页 > ai >正文

什么是Vim

Vim可是Linux中最强大、最受欢迎的文本编辑器之一,很多程序员、系统管理员都离不开它。要说清楚Vim的各种功能和用法,似乎有点长,但我会尽量用简单通俗的方式,把Vim的核心知识讲清楚,让你能一步一步开始使用它。

一、什么是Vim?

  • Vim,全名“Vi IMproved”,就是“改良版的Vi”。
  • Vi 是Unix/Linux系统中最经典的文本编辑器,非常基础,但操作复杂且强大。
  • Vim 在Vi的基础上加入了很多新功能,让编辑变得更方便、更强大。

简单说:Vim就是一个超级强大的文本编辑工具,你可以用它写代码、修改配置文件、编辑各种文本内容。


二、如何启动Vim?

在终端(命令行)输入:

vim

会打开一个空白的文件(新文件)或者你指定的文件,比如: 

vim filename.txt

三、Vim的两大基本模式

Vim比普通文本编辑器有点特别,它有两大主要操作模式

1. 普通模式(Normal mode)

也叫命令模式,类似浏览状态,你可以用各种键盘命令操作文本(删除、复制、粘贴、保存等)。

2. 插入模式(Insert mode)

用来编辑文本,可以像普通编辑器一样打字。

切换方式

  • 启动时默认在普通模式。
  • 想输入文本,按 i(insert)进入 插入模式。
  • 输入完毕后,按 Esc 返回普通模式。

四、Vim的基本操作(通俗版)

1. 进入文件

  • vim filename:打开文件
  • 空文件可以直接编辑新内容

2. 基本的文本插入

  • 在普通模式:按 i 进入插入模式
  • 你可以打字了,比如“Hello World”
  • 输入完毕,按 Esc 返回普通模式

3. 保存/退出

  • 在普通模式:
    • 输入 :w 代表“write”(保存)
    • 输入 :q 代表“quit”(退出)
    • 一起写::wq 或 ZZ 也可以(保存并退出)
    • 不保存退出::q!

4. 移动光标

  • h:左
  • l:右
  • j:下
  • k:上
  • 其实也可以用方向键,但用hjkl更方便(键位相似于游戏方向键)

5. 删除文本

  • x:删除光标所在字符
  • dd:删除整行
  • dw:删除单词

6. 复制粘贴

  • yy:复制(yank)整行
  • p:粘贴到光标后面
  • u:撤销刚刚的操作

五、Vim的常用操作(详细一点)

操作说明快捷键
进入插入模式输入文本i
退出插入/普通模式按 EscEsc
保存当前文件保存操作:w
退出Vim(不保存)退出不保存:q!
保存并退出保存后退出:wq 或 ZZ
移动光标在普通模式下hjkl
复制整行yy(“yank”)
粘贴p(在光标后粘贴)
删除操作xdddw
撤销操作u
重做操作Ctrl + r
搜索文本/<关键词>(向前搜索)
替换(当前行):s/旧文本/新文本/
进入命令行窗口: 显示命令

六、Vim的高级技巧(让你变大神)

1. 复制多行

在普通模式下:

  • V 进入可视行选择(Visual Line mode)
  • 移动光标选择多行
  • y 复制全部选中的内容

2. 粘贴到指定位置

  • 复制后,可以在其他地方用 p

3. 查找和替换

假设你想把所有“foo”改成“bar”:

:%s/foo/bar/g

这会在整个文件里替换所有“foo”。

4. 自动缩进

用:

gg=G

可以自动格式化整个文件(所有代码缩进)。

5. 复制到系统粘贴板(在支持的环境)

"+y         # 复制到系统粘贴板
"+p         # 粘贴系统粘贴板内容

:部分Vim版本需要支持clipboard功能。


七、Vim配置(个性化设置)

Vim可以通过配置文件~/.vimrc来自定义:

例如:

set nocompatible        " 关闭兼容模式,启用现代特性
syntax on               " 开启语法高亮
set number              " 显示行号
set cindent             " 自动缩进
set tabstop=4           " 制表符宽度4
set expandtab           " 将Tab变空格

这样可以让Vim变得更符合你的习惯。


八、总结:如何逐步学习Vim

  1. 了解基本操作:进入文件、插入文本、保存退出
  2. 熟练移动光标和删除操作
  3. 学习搜索、替换和复制粘贴
  4. 尝试配置文件,个性化Vim
  5. 多练习,逐步熟悉操作

九、鼓励的话

刚开始用Vim可能会觉得有点“生硬”,但坚持用几天,你会发现它的效率远远超过普通编辑器。其实,Vim的强大在于它的“命令”让你快速操作文本,一旦掌握,写代码、编辑配置会变得非常轻松。

http://www.xdnf.cn/news/5613.html

相关文章:

  • spring中的@Lazy注解详解
  • C++ 迭代器
  • C/C++ 内存管理深度解析:从内存分布到实践应用(malloc和new,free和delete的对比与使用,定位 new )
  • Chrome DevTools 性能面板
  • Spark处理过程-转换算子和行动算子
  • 前端基础之《Vue(16)—Vue脚手架介绍》
  • 【C++】cout的格式输出
  • thinkphp模板文件缺失没有报错/thinkphp无法正常访问控制器
  • 每周靶点分享:CD123、CD28、CCR2/CCL2、LAG-3
  • 云平台管理部署知识点——问题+答案
  • exsi导入镜像报错:行26:硬件系列‘wmx-19不受支持
  • 编译原理AST以Babel为例进行解读、Webpack中自定义loader与plugin
  • 从零构建高性能桌面应用:GPUI Component全解析与实战指南
  • 【C++】语言深处的“精灵”:探索内存的奥妙
  • 香港维尔利健康科技集团成都区域运营中心投入使用,西南市场战略全面提速
  • 基于STM32、HAL库的ICP-20100气压传感器 驱动程序设计
  • 解决IDEA Maven编译时@spring.profiles.active@没有替换成具体环境变量的问题
  • day23 机器学习管道 Pipeline
  • 掌握MySQL数据库操作:从创建到管理全攻略
  • uni-app学习笔记五--vue3插值表达式的使用
  • AI日报 · 2025年5月12日|OpenAI 更新「Supervised Fine‑Tuning」文档与 API 示范
  • Qt Creator 配置 Android 编译环境
  • Matlab 单机无穷大系统故障
  • 24、DeepSeek-V3论文笔记
  • 可信固件更新机制
  • 西电 | 2025年拟录取研究生个人档案录取通知书邮寄通知
  • Python制作Dashboard【待续】
  • 【AI】mcp server本质就是一个接口服务么
  • Flask支持哪些日志框架
  • ARM Cortex-M3内核详解