Vim 编辑器详细教程

Vim 编辑器详细教程

Vim 是一个强大的文本编辑器,以其高效的编辑能力和强大的功能著称,特别适合程序员和文字处理工作者。以下是一个详细的 Vim 教程,从基础操作到高级用法。


1. Vim 基础操作

1.1 Vim 的三种模式

  • 正常模式(Normal Mode):默认进入的模式,用于浏览、操作和执行命令。
  • 插入模式 (Insert Mode):用于编辑文本,按 i 进入。
  • 命令模式 (Command Mode):执行文件操作或配置命令,按 : 进入。
  • ESC:三种模式切换。

1.2 启动和退出 Vim

  • 启动 Vim:

    bash 复制代码
    vim 文件名
  • 退出 Vim:

    • 保存并退出:: → 输入 wq → 按 Enter
    • 强制退出(不保存):: → 输入 q! → 按 Enter

2. Vim 基本移动命令

  • 按键快速移动:
    • h:向左移动一个字符
    • l:向右移动一个字符
    • j:向下移动一行
    • k:向上移动一行
  • 按单词移动:
    • w:跳到下一个单词开头
    • e:跳到当前或下一个单词末尾
    • b:跳到当前或前一个单词开头
  • 按行快速移动:
    • 0:跳到行首
    • ^:跳到行首的第一个非空字符
    • $:跳到行尾
  • 按页移动:
    • Ctrl-d:向下滚动半屏
    • Ctrl-u:向上滚动半屏

3. 文本编辑操作

3.1 插入文本

  • i:在光标前插入
  • I:在行首插入
  • a:在光标后插入
  • A:在行尾插入
  • o:在当前行下插入新行
  • O:在当前行上插入新行

3.2 删除文本

  • x:删除光标处字符
  • dw:删除当前单词
  • dd:删除当前行
  • d$:删除光标到行尾
  • d0:删除光标到行首

3.3 复制与粘贴

  • yy:复制当前行
  • y$:复制光标到行尾
  • p:粘贴到光标后
  • P:粘贴到光标前

3.4 替换文本

  • r:替换当前字符
  • R:进入替换模式
  • cw:替换当前单词
  • C:替换光标到行尾内容

4. 搜索与替换

4.1 搜索

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

4.2 替换

  • 单次替换::%s/旧文本/新文本/g
  • 确认替换::%s/旧文本/新文本/gc

5. 多文件与多窗口

5.1 分屏操作

  • :sp 文件名:水平分屏
  • :vsp 文件名:垂直分屏
  • Ctrl-w + 方向键:切换窗口

5.2 标签页

  • :tabnew 文件名:打开新标签页
  • :tabn:切换到下一个标签页
  • :tabp:切换到上一个标签页

6. Vim 配置

6.1 创建配置文件

Vim 配置文件路径:

  • Linux: ~/.vimrc
  • Windows: C:\Users\<用户名>\_vimrc

6.2 常用配置

vim 复制代码
set number           " 显示行号
set tabstop=4        " 设置 Tab 宽度为 4
set shiftwidth=4     " 自动缩进宽度为 4
set expandtab        " 将 Tab 转为空格
set autoindent       " 自动缩进
set hlsearch         " 高亮搜索结果
set incsearch        " 实时搜索
syntax on            " 开启语法高亮

7. 高级功能

7.1 宏录制

  • 开始录制:按 q → 输入一个字母(如 a
  • 执行操作(如插入文本或删除行)
  • 结束录制:再次按 q
  • 播放宏:@a

7.2 快速跳转

  • Ctrl-o:返回上一个光标位置
  • Ctrl-i:前进到下一个光标位置

8. 学习资源

相关推荐
mCell2 小时前
从删库到跑路?这50个Linux命令能保你职业生涯
linux·windows·macos
杰克逊的日记2 小时前
GPU运维常见问题处理
linux·运维·gpu
誰能久伴不乏3 小时前
Linux系统调用概述与实现:深入浅出的解析
linux·运维·服务器
程序员学习随笔4 小时前
Linux进程深度解析(2):fork/exec写时拷贝性能优化与exit资源回收机制(进程创建和销毁)
linux·运维·服务器
mmoyula4 小时前
【RK3568 PWM 子系统(SG90)驱动开发详解】
android·linux·驱动开发
-SGlow-4 小时前
MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)
linux·运维·服务器·数据库·mysql
代码改变世界ctw5 小时前
Linux内核设计与实现 - 第14章 块I/O层
linux·运维·服务器
van叶~7 小时前
Linux网络-------1.socket编程基础---(TCP-socket)
linux·网络·tcp/ip
风吹落叶花飘荡7 小时前
Ubuntu系统 系统盘和数据盘扩容具体操作
linux·运维·ubuntu
zoulingzhi_yjs7 小时前
haproxy配置详解
linux·云原生