Linux---vim 编辑器

在 Linux 系统中,编辑器是不可或缺的工具。而 Vim 作为一款功能强大的多模式编辑器,凭借其高效的操作方式、强大的定制能力和跨平台特性,成为了 Linux 用户的首选编辑器之一。

一、为什么选择 Vim?

Vim(Vi Improved)是 Vi 编辑器的增强版本,不仅完全兼容 Vi 的所有指令,还新增了语法高亮、可视化操作、插件扩展等实用功能。与 Emacs 并称类 Unix 系统的两大编辑神器。

Vim 的核心优势:

  • 极致效率:纯键盘操作,无需鼠标,编辑速度比普通编辑器快 30% 以上

  • 跨平台支持:不仅可在 Linux 终端运行,还能在 Windows、macOS 等系统中使用

  • 轻量化:安装包极小,启动速度毫秒级

  • 可扩展性:通过插件可扩展为 IDE 级别的功能

  • 服务器标配:几乎所有 Linux 服务器都默认安装 Vim,是远程开发的唯一选择

Vim 相比 Vi 的主要改进:

功能 Vi Vim
语法高亮 ✅ 根据文件类型自动对关键字、注释等进行颜色区分
可视化操作 ✅ 支持块选择、可视化编辑
插件扩展 ✅ 支持丰富的第三方插件
多级撤销 ✅ 支持多次撤销与恢复

二、安装 Vim

CentOS 系统

bash 复制代码
sudo yum install -y vim

安装完成后,可以通过 vim --version 查看版本信息。

三、Vim 的核心:三种模式

Vim 是模式化编辑器,不同模式下键盘的功能完全不同,这是 Vim 与"所见即所得"编辑器(如记事本、VS Code)的核心区别。

3.1 三大核心模式

模式 英文名称 进入方式 核心功能
普通模式 Normal mode 打开 Vim 默认进入,或按 Esc 返回 浏览文本、移动光标、复制、粘贴、删除等
插入模式 Insert mode 普通模式下按 i/a/o 文本输入
命令行模式 Command-line mode 普通模式下按 : 文件保存、退出、查找、替换等

3.2 模式切换关系

bash 复制代码
                    ┌─────────────────┐
                    │   普通模式       │
                    │  (默认启动)      │
                    └────────┬────────┘
                             │
              i/a/o ────────┘ └─────── Esc
              ↓                         ↑
         ┌─────────────────────────────────┐
         │         插入模式                 │
         │       (文本输入)                 │
         └─────────────────────────────────┘
                             
         普通模式 ── : ──→ 命令行模式

模式切换核心快捷键(必记):

  • 普通模式 → 插入模式

    • i:在光标前插入文本(最常用)

    • I:在当前行首插入文本

    • a:在光标后插入文本

    • A:在当前行尾插入文本(高频)

    • o:在当前行下方另起一行(高频)

    • O:在当前行上方另起一行

  • 任何模式 → 普通模式 :按 Esc 键(推荐按两次确保返回)

  • 普通模式 → 命令行模式 :按 : 键(shift+;)

黄金规则 :所有模式都能通过 Esc 键返回普通模式;普通模式是 Vim 的"核心模式",所有高级操作都必须从普通模式开始;插入模式仅用于输入文本,输入完成后立即返回普通模式。

四、普通模式常用命令集

普通模式是 Vim 最常用的模式,90% 的文本操作都在此模式下完成。

4.1 光标移动(脱离鼠标的关键)

基础移动(推荐使用 hjkl 代替方向键):

命令 功能 记忆技巧
h 向左移动一个字符 左手最左按键
j 向下移动一行 指向下方
k 向上移动一行 指向上方
l 向右移动一个字符 右手最右按键

高级移动:

命令 功能
w 跳到下一个单词的开头
e 跳到当前单词的结尾
b 回到上一个单词的开头
^ 移动到行首(第一个非空白字符)
$ 移动到行尾
gg 移动到文件开头
G 移动到文件结尾
nG 移动到第 n 行(如 5G 到第 5 行)
:n 命令行模式跳转到第 n 行

翻页操作:

  • Ctrl + b:屏幕向"后"移动一页

  • Ctrl + f:屏幕向"前"移动一页

  • Ctrl + u:屏幕向"后"移动半页

  • Ctrl + d:屏幕向"前"移动半页

💡 提示 :方向键在 Vim 中可用但效率低下,坚持使用**hjkl** 一周会显著提升速度。

4.2 删除操作

命令 功能
x 删除光标所在位置的一个字符
X 删除光标所在位置"前面"的一个字符
#x 删除光标所在位置"后面(包含自己)"的 # 个字符(如 6x
dd 删除光标所在行
#dd 从光标所在行开始删除 # 行
dw 删除到单词末尾
d$ 删除到行尾

4.3 复制与粘贴

命令 功能
yy 复制光标所在行
#yy 复制从光标所在行往下数 # 行(如 6yy
yw 复制光标所在之处到字尾的字符
#yw 复制 # 个字到缓冲区
p 将缓冲区内容粘贴到光标所在位置

4.4 撤销与重做

命令 功能
u 撤销上一次操作
Ctrl + r 重做(撤销的恢复)

4.5 替换

命令 功能
r 替换光标所在处的字符
R 连续替换光标所到之处的字符,直到按 Esc

五、命令行模式常用命令集

在普通模式下按 : 进入命令行模式。

5.1 文件操作

命令 功能
:w 保存文件
:q 退出 Vim
:q! 强制退出(不保存)
:wq 保存并退出
:wq! 强制保存并退出

5.2 查找与替换

命令 功能
/关键字 向后查找关键字(按 n 继续查找下一个)
?关键字 向前查找关键字(按 n 继续查找)
:set nu 显示行号
:set nonu 取消行号

5.3 其他实用命令

命令 功能
:!命令 执行 shell 命令(如 :!ls
:help 查看帮助文档

六、Vim 配置:打造专属编辑器

Vim 的强大之处在于其高度可定制性。通过配置文件可以个性化你的编辑环境。

6.1 配置文件位置

  • 系统级配置/etc/vimrc(对所有用户有效)

  • 用户级配置~/.vimrc(仅对当前用户有效)

推荐在用户主目录下创建 .vimrc 文件进行个性化配置。

6.2 常用配置选项

在 **~/.vimrc**中添加以下内容:

bash 复制代码
" 基本设置
syntax on                    " 开启语法高亮[reference:53]
set nu                       " 显示行号[reference:54]
set shiftwidth=4             " 设置缩进空格数为 4
set tabstop=4                " Tab 键宽度为 4
set autoindent               " 自动缩进
set expandtab                " 用空格代替 Tab

" 搜索设置
set hlsearch                 " 高亮搜索结果
set incsearch                " 实时显示搜索结果

" 编码设置
set encoding=utf-8           " 设置编码[reference:55]

6.3 插件管理

要配置更强大的 Vim,可以安装插件。推荐使用插件管理器如 vim-plug

  1. 安装 vim-plug:

bash

复制代码
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  1. ~/.vimrc 中配置插件:

vim

复制代码
call plug#begin('~/.vim/plugged')
" 在这里添加插件
Plug 'preservim/nerdtree'        " 文件浏览器
Plug 'vim-airline/vim-airline'   " 状态栏美化
call plug#end()
  1. 在 Vim 中执行 :PlugInstall 安装插件。

6.4 常用插件推荐

插件 功能
NERDTree 文件树浏览器
vim-airline 美化状态栏
ctrlp.vim 文件模糊搜索
vim-surround 快速添加/修改配对符号

vim一键部署

bash 复制代码
git clone https://github.com/chxuan/vimplus.git ~/.vimplus
 
cd ~/.vimplus
 
./install.sh #不加sudo
相关推荐
是小李呀21 分钟前
Linux 服务器从零部署 kkFileView 完全指南(Docker 方案)
linux
OpenCloudOS25 分钟前
高危|Linux 内核 XFS reflink 本地提权漏洞修复指南
linux·网络·安全
小HANN42 分钟前
保姆级实战:CentOS7 搭建 LAMP 环境部署 WordPress 个人博客
linux·运维·服务器·经验分享
奈斯先生Vector1 小时前
从“能调用”到“可替换”:Coze 多模型 API 编排层设计指南
linux·运维·人工智能·ubuntu·平面·ios
AAA代码批发商1 小时前
Days 32 Linux 多线程:线程分离属性、多进程 vs 多线程、线程同步互斥锁、信号量
linux·笔记
李少兄2 小时前
Linux 服务器从零部署 kkFileView 完全指南(Docker 方案)
linux·服务器·docker
小张同学a.2 小时前
OpenStack 私有云实战 3—— Neutron 网络服务与 Dashboard 控制台部署
linux·运维·服务器·openstack
DogDaoDao2 小时前
HarmonyOS 深度解析:从微内核到 ArkTS 工程实战
android·linux·ios·华为·程序员·harmonyos·harmonyos next
k4m7v2pz2 小时前
Godot 4 嵌入式试玩窗口尺寸与适配策略详解
编辑器·游戏引擎·godot·游戏开发·嵌入式运行