IT小李
发布于 2025-09-18 / 14 阅读
0
0

Linux基础教程4 - vim的用法

在Linux系统中,最流行的编辑器软件非vim莫属。在很多教程中,大家可能看到过"vi"编辑器的说法,其实"vim"是"vi"的增强版本,完全兼容vi的所有用法,且有更多扩展功能。

我们安装的minimal的系统版本,默认不带"vim"软件,首先需要安装一下:

sudo dnf install vim -y

vim的四种模式

因为在ternimal中,没有”鼠标“的概念,因此需要一些辅助手段来完成文档的编辑。对于vim来说有4种工作模式,分别对应不同的功能,下面我来详细介绍。

正常模式(Normal Mode)

  • 作用:默认进入的模式,用于导航、执行编辑命令(如复制、删除、替换等),不直接输入文本。

  • 进入方式:启动 Vim 时默认进入;从其他任何模式按 Esc 键返回。

  • 光标导航h j k l 对应方向 ,空格也可以移动光标。

  • 行复制yy,复制当前光标所在行;3yy,复制光标行往下共3行。

  • 粘贴行p,将复制的行插入光标以下行。

  • 删除行dd,删除光标所在的行;3dd,删除光标行往下共3行;dG,删除光标行及之后所有行;dk,向下删除1行;dl,向上删除1行。

  • 行内删除dh,向左删除1个字符;dl,向右删除1个字符;de,删除字符串。

插入模式(Insert Mode)

  • 作用:用于输入和编辑文本,类似普通文本编辑器的工作状态。

  • 进入方式:在正常模式下按以下键:

    • i:在光标当前位置插入;

    • I:在光标所在行的行首插入;

    • a:在光标当前位置插入;

    • A:在光标所在行的行尾插入;

    • o:在光标所在行下方新建一行并插入;

    • O:在光标所在行上方新建一行并插入。

在插入模式下,可以像在windows txt文档中一样编辑内容,回车/退格/删除 等用法都是一样的;但如果你想移动光标,因为没有鼠标的原因,需要退回正常模式,用 h j k l 键进行移动。

  • 退出方式:按 Esc 键返回正常模式

命令行模式(Command-line Mode)

  • 作用:执行命令(如保存、退出、查找、替换等),命令以冒号 : 开头。

  • 进入方式:在正常模式下按 :(英文冒号),光标会跳到屏幕底部等待输入命令。

  • 常用命令示例

    • :w 保存文件;

    • :q 退出 Vim;

    • :wq:x 保存并退出;

    • :q! 强制退出(不保存);

    • :/keyword 从当前位置向下搜索 keyword,按n选中下一个,按N选中上一个;

    • :?keyword 从当前位置向上搜索 keyword,按n选中下一个,按N选中上一个;

    • :set nu 显示行号;

    • :set paste 从外部粘贴的文本会完全按照原始格式插入,避免被 Vim 的自动处理干扰;

    • :s/abc/defabc替换行中首次出现的def

    • :s/abc/def/gabc替换行中所有的def

    • :n,m s/abc/def/gabc替换从n到m行里所有的def

    • :%s/abc/def/gabc替换当前文件里所有的def

    • :%s/abc/def/gc 替换前需要确认

  • 退出方式:执行命令后自动返回正常模式;若要放弃输入命令,按 Esc 键返回。

可视模式(Visual Mode)

  • 作用:用于选中一块文本(字符、行、块),以便对选中内容执行批量操作(如复制、删除、缩进等)。

  • 进入方式:在正常模式下按以下键:

    • v:进入字符可视模式(按字符选中);

    • V(大写):进入行可视模式(按行选中);

    • Ctrl + v:进入块可视模式(按矩形块选中,适合批量编辑列)。

  • 操作逻辑:进入后移动光标即可选中内容,选中后按相应命令(如 y 复制、d 删除)执行操作。

  • 示例:

    • 批量添加注释:Ctrl + v-->j移动指定行-->I进入编辑模式输入"#"-->Esc

    • 批量删除:Ctrl + v-->hjkl移动选定区域-->d删除

掌握模式切换的核心是:任何模式下按 Esc 都能回到正常模式,而正常模式是切换到其他模式的 “起点”。

正常模式(默认)
  ├── 按 i/I/a/A/o/O → 插入模式(按 Esc 返回)
  ├── 按 : → 命令行模式(执行命令后自动返回)
  └── 按 v/V/Ctrl+v → 可视模式(按 Esc 返回)


评论