Loku
Loku
发布于 2025-08-16 / 2 阅读
0
0

Vim Easy Start

前言:

早期Unix系统中一般都会有预装vi这款文本编辑器,而vim则是vi的增强版。

vim是一款Linux操作系统的经典文本编辑器,掌握基本的使用方法可以极大的提升命令行工作效率。

安装

  1. Debian:apt update && apt install vim

  2. CentOS:yum install vim

  3. Fedora:dnf install vim

  4. Arch Linux:pacman -S vim

配置

增加行号

vim --version查看vim的配置信息,其中包含vimrc的路径

通常user vimrc file后面的路径就是vim的配置文件,一般为$HOME/.vimrc

vim $HOME/.vimrc打开配置文件

写入

set number

然后保存并退出

增加相对行号

vim $HOME/.vimrc打开vim配置文件

写入

set relativenumber

然后保存并退出

使用

Vim的模式

Vim 主要有 3 种常用模式:

  1. 正常模式(Normal mode)

    • 打开文件后默认进入的模式

    • 在此模式下可以进行 移动光标、删除、复制、粘贴 等操作

  2. 插入模式(Insert mode)

    • 在正常模式下按 iao 等键进入

    • 用于输入和编辑文本

  3. 命令行模式(Command-line mode)

    • 在正常模式下输入 :/? 进入

    • 可以执行保存、退出、搜索、替换等命令

补充:还有一个常用的 可视模式(Visual mode),通过 v 进入,可以选择文本块进行操作(删除、复制、缩进等)

新建/打开

vim <文件路径>

如果文件存在 → 打开文件

如果文件不存在 → 新建文件

保存与退出

命令行模式(输入 :)下:

  • :q → 退出(如果未修改文件)

  • :q! → 强制退出(不保存修改)

  • :w → 保存(不退出)

  • :wq:x → 保存并退出

  • ZZ(大写,正常模式下输入) → 保存并退出

导航与编辑

光标移动

  • h → 左移

  • l → 右移

  • j → 下移

  • k → 上移

  • <数字><方向> → 移动多步,例如 5j 向下 5 行

  • gg → 跳转到文件第一行

  • G → 跳转到文件最后一行

  • :<行号> → 跳转到指定行

插入文本

  • i → 在光标前插入

  • a → 在光标后插入

  • I → 在行首插入

  • A → 在行尾插入

  • o → 在当前行下方新建一行并进入插入模式

  • O → 在当前行上方新建一行并进入插入模式

删除与复制

  • dd → 删除整行

  • yy → 复制整行

  • p → 粘贴到光标之后

  • <次数>p → 粘贴多次

  • dw → 删除一个单词

  • cw → 删除一个单词并进入插入模式(change word)

  • yw → 复制一个单词

  • ci{ → 删除 {} 内的内容并进入插入模式(同理可用于 []()

撤销与重复

  • u → 撤销上一次修改

  • Ctrl + r → 恢复撤销的修改(redo)

  • . → 重复上一次操作

单词间跳转

  • w → 跳到下一个单词开头

  • e → 跳到下一个单词结尾

  • b → 跳到上一个单词开头

搜索

  • /word:从光标位置向下搜索 word

  • ?word:从光标位置向上搜索 word

  • n:重复上一次搜索(同方向)

  • N:重复上一次搜索(反方向)

替换*

基本用法

:[范围]s/旧内容/新内容/[参数]

常见范围

  • :%s/.../.../ → 全文替换

  • :1,10s/.../.../ → 替换第 1 行到第 10 行

  • :.,$s/.../.../ → 从当前行到最后一行替换

  • :s/.../.../ → 只替换当前行第一个匹配

  • :s/.../.../g → 替换当前行所有匹配

参数说明

  • g → 替换一行中的所有匹配(global)

  • c → 交互确认(confirm),会逐个询问:

    • y 替换

    • n 跳过

    • a 替换所有

    • q 退出

  • i → 忽略大小写(ignore case)

示例

  • :%s/foo/bar/g → 把全文中所有 foo 替换为 bar

  • :5,20s/test/TEST/gc → 在第 5 到 20 行,把 test 替换成 TEST,并逐一确认

  • :%s/\<cat\>/dog/g → 把全文中单词 cat 替换为 dog(加 \< \> 表示整个单词匹配)


评论