Linux Vim 编辑器使用指南

Linux Vim 编辑器使用指南

一、Vim 简介

Vim(Vi IMproved)是 Linux/Unix 系统中最流行的文本编辑器之一,它是 Vi 的增强版,支持多模式操作、语法高亮、插件扩展等特性,无需鼠标即可高效编辑文本。

二、核心工作模式

Vim 有四种主要模式,通过不同按键快速切换:

  1. 命令模式(Normal Mode):

    ​ 默认模式,用于导航、执行命令和切换到其他模式。

    ​ 进入方式:启动 Vim 后直接进入;从其他模式按 Esc或 Ctrl+[ 返回。

  2. 输入模式(Insert Mode):

    ​ 用于编辑文本,类似常规编辑器。

    ​ 进入方式:在命令模式下按 i(光标前插入)、a(光标后插入)、o(下一行插入)、O(上一行插 入)等。

    ​ 退出方式:按ESC返回命令模式

  3. 末行模式(Command-Line Mode)

    ​ 用于执行文件操作、搜索替换、配置等命令。

    ​ 进入方式:在命令模式下按 :(冒号)。

    ​ 退出方式:执行命令后自动退出或按 Esc

  4. 可视模式(Visual Mode)

    ​ 用于选择文本块,支持字符、行、块三种选择方式。

    ​ 进入方式:在命令模式下按 v(字符)、V(行)或 Ctrl+v(块)。

三、Vim编辑器常用命令与快捷键

1. 文件操作

bash 复制代码
# 启动Vim并打开文件
vim filename.txt          # 打开文件
vim -o file1 file2        # 水平分屏打开多个文件
vim -O file1 file2        # 垂直分屏打开多个文件

# 末行模式命令(需先按冒号:)
:w                      # 保存文件
:w filename             # 另存为
:q                      # 退出
:wq / :x                # 保存并退出
:wq!                   # 强制保存退出
:q!                     # 强制退出(不保存)
:e filename             # 打开新文件
:bn / :bp               # 切换到下一个/上一个文件(多文件编辑时)

2. 光标移动

bash 复制代码
# 基本移动(命令模式)
h/j/k/l                 # 左/下/上/右(推荐用方向键替代)
w / b                   # 跳到下一个/上一个单词开头
e                       # 跳到单词末尾
0 / ^                   # 行首(0到第一个字符,^到非空白字符)
$                       # 行尾
gg / G                  # 文档开头/结尾
5G                      # 跳到第5行(数字+G)
Ctrl+f / Ctrl+b         # 下翻页/上翻页
Ctrl+d / Ctrl+u         # 下翻半页/上翻半页

3. 文本编辑

bash 复制代码
# 插入模式(命令模式下按以下键进入)
i                       # 在光标前插入
a                       # 在光标后插入
I                       # 在行首插入
A                       # 在行尾插入
o / O                   # 在当前行下方/上方插入新行
s / S                   # 删除当前字符/整行并进入插入模式

# 删除与修改
x                       # 删除当前字符(等同于Delete)
dd                      # 删除当前行
3dd                     # 删除当前行及以下3行
d$                      # 删除从光标到行尾的内容
d^                      # 删除从光标到行首的内容(不包含光标字符)
dw                      # 删除一个单词
u                       # 撤销上一步操作
Ctrl+r                  # 恢复撤销(重做)

4. 复制粘贴

bash 复制代码
yy                      # 复制当前行
5yy                     # 复制当前行及以下5行
yw                      # 复制一个单词
p / P                   # 在光标后/前粘贴(小写p贴到下一行,大写P贴到上一行)
"ayy                   # 将当前行复制到寄存器a(可指定a-z任意寄存器)
"ap                    # 从寄存器a粘贴内容

5.查找与替换

bash 复制代码
# 查找(命令模式下)
/keyword                # 向下查找keyword
?keyword                # 向上查找keyword
n / N                   # 下一个/上一个匹配项(按查找方向)
:nohlsearch             # 取消高亮显示(可简写为:noh)

# 替换(末行模式下)
:%s/old/new/g           # 全局替换(%表示全文,g表示替换所有匹配项)
:%s/old/new/gc          # 全局替换,每次替换前询问(c表示confirm)
:1,10s/old/new/g        # 替换第1-10行的匹配项

6. 可视模式操作

bash 复制代码
v                       # 进入字符可视模式(按字符选择)
V                       # 进入行可视模式(整行选择)
Ctrl+v                  # 进入块可视模式(矩形区域选择)
# 选中后可执行:
d                       # 删除选中内容
y                       # 复制选中内容
p                       # 粘贴到光标位置

7. 多窗口操作

bash 复制代码
# 分屏(末行模式)
:split                  # 水平分屏
:vsplit                 # 垂直分屏
:split filename         # 分屏并打开新文件

# 窗口切换(命令模式)
Ctrl+w w                # 循环切换窗口
Ctrl+w h/j/k/l          # 切换到左/下/上/右窗口
Ctrl+w q                # 关闭当前窗口

8. 寄存器与宏

bash 复制代码
"ayy                   # 将当前行复制到寄存器a
"ap                    # 从寄存器a粘贴
:registers              # 查看所有寄存器内容

# 录制宏
qa                      # 开始录制宏到寄存器a
# 执行一系列操作(如yy,p,j等)
q                       # 停止录制
@a                      # 执行宏a
10@a                    # 重复执行宏a 10次

9. 标记与书签

bash 复制代码
ma                      # 在当前位置设置标记a(a-z为局部标记,A-Z为全局标记)
`a                      # 跳转到标记a的位置
''                      # 跳转到上次编辑位置

10. 配置文件(~/.vimrc)

创建或编辑 ~/.vimrc 文件可自定义 Vim 配置:

vim 复制代码
set number              # 显示行号
set relativenumber      # 显示相对行号
set tabstop=4           # Tab宽度为4个空格
set shiftwidth=4        # 自动缩进宽度为4个空格
set expandtab           # 将Tab转换为空格
set autoindent          # 自动缩进
syntax on               # 语法高亮
set cursorline          # 高亮当前行
set mouse=a             # 启用鼠标支持
相关推荐
淮北4945 小时前
vim学习进阶
学习·编辑器·vim
maosheng11465 小时前
RHCSA的第一次作业
linux·运维·服务器
wifi chicken5 小时前
Linux 端口扫描及拓展
linux·端口扫描·网络攻击
旺仔.2915 小时前
Linux 信号详解
linux·运维·网络
放飞梦想C5 小时前
CPU Cache
linux·cache
Hoshino.416 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
播播资源8 小时前
CentOS系统 + 宝塔面板 部署 OpenClaw源码开发版完整教程
linux·运维·centos
源远流长jerry8 小时前
在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
linux·服务器·网络·tcp/ip·ubuntu·架构·ip
lay_liu9 小时前
Linux安装redis
linux·运维·redis
寂柒10 小时前
序列化与反序列化
linux·网络