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             # 启用鼠标支持
相关推荐
Fireworkitte1 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil9001 小时前
ubuntu常见问题汇总
linux·ubuntu
ac.char2 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
雷工笔记3 小时前
【软件安装】VScode介绍安装步骤及中文界面设置方法
ide·vscode·编辑器
淮北也生橘123 小时前
Linux的ALSA音频框架学习笔记
linux·笔记·学习
华强笔记6 小时前
Linux内存管理系统性总结
linux·运维·网络
十五年专注C++开发7 小时前
CMake进阶: CMake Modules---简化CMake配置的利器
linux·c++·windows·cmake·自动化构建
phoenix09817 小时前
ansible部署lnmp-allinone
linux·运维·ansible
winds~8 小时前
【git】 撤销revert一次commit中的某几个文件
linux·c++
iY_n8 小时前
Linux网络基础
linux·网络·arm开发