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. 学习资源

相关推荐
物联网老王44 分钟前
Ubuntu Linux Cursor 安装与使用一
linux·运维·ubuntu
死也不注释2 小时前
【Unity 编辑器工具开发:GUILayout 与 EditorGUILayout 对比分析】
unity·编辑器·游戏引擎
一位摩羯座DBA3 小时前
Redhat&Centos挂载镜像
linux·运维·centos
学习3人组3 小时前
CentOS配置网络
linux·网络·centos
weixin_307779133 小时前
Hive集群之间迁移的Linux Shell脚本
大数据·linux·hive·bash·迁移学习
漫步企鹅4 小时前
【蓝牙】Linux Qt4查看已经配对的蓝牙信息
linux·qt·蓝牙·配对
cui_win4 小时前
【网络】Linux 内核优化实战 - net.core.flow_limit_table_len
linux·运维·网络
梦在深巷、4 小时前
MySQL/MariaDB数据库主从复制之基于二进制日志的方式
linux·数据库·mysql·mariadb
冰橙子id5 小时前
linux系统安全
linux·安全·系统安全
stark张宇5 小时前
VMware 虚拟机装 Linux Centos 7.9 保姆级教程(附资源包)
linux·后端