Linux操作系统从入门到实战(七)详细讲解编辑器Vim

发布于:2025-07-15 ⋅ 阅读:(9) ⋅ 点赞:(0)


前言

  • 承接上文对 Linux 基础指令与权限的讲解。
  • 这篇博客我们将详细聊聊 Linux 系统中常用的编辑器 ——Vim

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的Linux知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12879535.html?spm=1001.2014.3001.5482


一、编辑器Vim

1. Linux编辑器——Vim是什么?

1.1 什么是Vim?它能编辑哪些内容?

在这里插入图片描述

Vim是一款功能强大的多模式编辑器,广泛适用于各类文本编辑场景——无论是后端开发(如Python、Java代码)、前端开发(如HTML、JavaScript),还是日常文本处理,都能高效胜任

1.2 Vi与Vim的核心区别?

在这里插入图片描述

简单来说,两者同属多模式编辑器但Vim是Vi的增强版

  • Vim不仅完全兼容Vi的所有指令,还新增了诸多实用特性——比如语法高亮、可视化操作等;
  • 且不再局限于终端环境,还支持X Window、macOS、Windows等多平台运行。

2. Vim的模式基础

在这里插入图片描述

Vim的核心特性之一是“多模式”,我们先重点掌握3种基础模式(Vim实际模式更多,初学者先吃透这3种即可),分别是:

  • 正常模式(Normal mode,又称普通模式、命令模式)

    • 这是打开Vim后的默认模式
    • 主要用于控制光标移动,执行字符、单词或行的删除,移动/复制指定内容,以及切换到插入模式或末行模式。
  • 插入模式(Insert mode)

    • 只有在插入模式下,才能进行文字输入
    • 按「ESC」键可退回正常模式。
    • 这也是日常编辑中使用最频繁的模式。
  • 末行模式(Last Line mode)

    • 主要用于文件级操作
    • 比如保存、退出文件,也支持内容替换、字符串查找、显示行号等功能。
    • 在正常模式下,按「Shift + :」即可进入。

补充说明:Vim其实共有12种模式,细分为6种基础模式(BASIC modes)和6种附加模式(ADDITIONAL modes)。若想了解全部模式,可在末行模式输入:help vim-modes查看详情。

3. vim的基本操作

  1. 怎么进入vim编辑文件?
    在系统命令行(比如终端里)输入 vim 文件名 就行,比如想编辑test.c,就输 $ vim test.c之后会进入vim的全屏编辑界面
    在这里插入图片描述
    在这里插入图片描述

  2. vim的模式和切换(重点)

  • 刚进入vim时,默认是「正常模式」(不能直接输入文字)。
    在这里插入图片描述

  • 想输入文字,得先切到「插入模式」,切法有3种:aio

  • 在「插入模式」下只能打字,想移动光标、删字,得先切回「正常模式」:按 ESC 键就行。
    在这里插入图片描述
    在这里插入图片描述

  • 想保存、退出这些操作,得从「正常模式」切到「末行模式」:按 shift + ;(其实就是输入 : 冒号)。

  1. 保存和退出操作(在末行模式下输入)
  • :w → 只保存当前文件,不退出。
  • :wq → 保存文件,同时退出vim。
  • :q! → 不保存文件,强制退出vim(比如输错了不想留)。

在这里插入图片描述

4. vim命令模式命令全集

4.1 插入文字

输入文字,得先进入插入模式,有3种方式:

  • i:光标在哪,就从哪开始输;
  • a:从光标“下一个位置”开始输(比如光标在“你”字上,按a就从“你”后面开始);
  • o:自动新起一行,从行首开始输。

退出插入模式:按 ESC 键,回到“命令模式”(所有移动、删除等操作都在命令模式下做)。

4.2 移动光标

不用鼠标,用键盘就能挪光标

  • 小范围挪:h(左)、j(下)、k(上)、l(右),每次挪一格;

  • 快速到行首/尾:^(行首)、$(行尾);

  • 跳单词:w(跳到下一个词的开头)、e(跳到下一个词的结尾)、b(回到上一个词的开头);

  • 整篇文档跳:gg(到文档最开头)、G(到文档最后);

  • 跳指定位置:#l(比如 5l 就是挪到这一行的第5个位置);

  • 翻页:ctrl+b(往前翻一页)、ctrl+f(往前后一页)、ctrl+u(往后翻半页)、ctrl+d(往前翻半页)。

4.3 删除文字

  • 删单个字符:x(删光标所在的字符);
  • #x(比如 6x 就是删光标后面包括自己在内的6个字符);
  • 删前面的字符:X(大写X,删光标前面的一个字符);#X(比如 20X 就是删光标前面20个字符);
  • 删行:dd(删光标所在的这一行);#dd(比如 3dd 就是从当前行开始,连删3行)。

4.4 复制和粘贴

  • 复制:
    • yw复制从光标到这个词结尾的内容#yw(比如 2yw 就是复制2个词);
    • yy:复制光标所在的这一行;#yy(比如 5yy 就是从当前行开始,复制5行);
  • 粘贴:复制完后,p,就会把复制的内容贴在光标后面

4.5 替换文字

  • r:只替换光标所在的那一个字符(按一下换一个);
  • R:持续替换,从光标位置开始,输一个字就替换一个,直到按 ESC 停下。

4.6 撤销和恢复

  • u:撤销上一步操作(比如删错了,按u就能恢复);
  • ctrl+r:恢复刚才撤销的操作(比如后悔撤销了,用这个)。

4.7 修改文字

  • cw:从光标位置开始,修改到这个词的结尾(比如“苹果”光标在“果”上,按cw后输入“子”,就变成“瓶子”);
  • c#w:修改#个词(比如 c2w 就是修改接下来2个词)。

4.8 跳转到指定行

  • 先按 ctrl+g:看看当前光标在第几行;
  • #G:直接跳到第#行(比如 10G 就是跳到第10行)。

5. vim末行模式命令全集

5.1 怎么进入末行模式?

不管你在Vim里干了什么,先按一下键盘上的「ESC」键,确保自己处于“正常模式”;然后按一下「:」(冒号),就能进入末行模式了,接下来就能输入命令。

5.2 给每行加上行号

  • vim 里开启行号的命令是 set number,缩写 set nu
  • 输入 set nu ,回车后,文件里每一行前面都会显示行号,看着更清楚。

在这里插入图片描述

5.2 快速跳到指定行

在这里插入图片描述

想直接去第10行?在冒号后面输入数字(比如10),回车,光标就会立马跳到第10行。

5.2 查找你要的字/词

  • / (斜杠),再输入你要找的内容(比如“苹果”),回车,就会从当前位置往下找这个词;如果没找到想要的,按 n 键,会继续往下找下一个。
  • ? (问号),再输入要找的内容,回车,会从当前位置往上找这个词;没找到的话,按 n 键,继续往上找下一个。
  • 简单说:/ 是“往下搜”,? 是“往上搜”,n 是“继续搜”)

5.2 保存文件

在冒号后面输入 w (就记“write保存”),回车,文件就保存好了。
在这里插入图片描述

5.2 退出Vim

  • 输入 q (就记“quit退出”),回车,就能退出;
  • 如果退不出去,输入 q! (加个感叹号),强制退出。
  • 建议退出时用 wq :输入 wq ,回车,既能保存文件,又能直接退出,一步到位,很方便。

7. 简单vim配置(了解即可)

配置文件在哪?怎么改?

  • 每个用户的vim配置文件在自己的家目录下,路径是 ~/.vimrc~ 代表当前用户的家目录,比如root用户的家目录是 /root,普通用户是 /home/用户名)。
  • 如果这个文件不存在,直接创建即可(vim会自动识别)。
  • 编辑方法:打开终端,输入 vim ~/.vimrc,然后把下面的配置内容输进去,保存退出(按 Esc 后输入 :wq 回车)。

简单实用的vim配置

下面是一套配置,每行都有解释,直接复制到 ~/.vimrc 里即可:

" 显示行号(最实用的功能!编辑时能看到第几行)
set number

" 语法高亮(让代码/配置文件的关键字、注释显示不同颜色,更易读)
syntax on

" 自动缩进(写代码时,换行后自动对齐上一行的缩进,不用手动按空格)
set autoindent
" 智能缩进(比autoindent更聪明,比如写if后换行,会自动多缩进一级)
set smartindent

" 光标所在行高亮(当前光标在哪一行,整行会有背景色,一眼就能看到)
set cursorline

" 搜索时高亮匹配结果(比如搜“test”,所有“test”都会标红)
set hlsearch
" 输入搜索内容时实时显示匹配(输一半就开始找,不用等输完)
set incsearch

" 解决中文乱码(确保编辑中文文件时不出现奇怪的符号)
set encoding=utf-8
set fileencoding=utf-8

" Tab键相关设置(写代码必用)
set tabstop=4       " 一个Tab键显示为4个空格宽
set shiftwidth=4    " 自动缩进时,每次缩进4个空格
set expandtab       " 输入Tab键时,自动转换成4个空格(避免不同编辑器显示不一致)

" 关闭自动备份(vim默认会生成带~的备份文件,新手可能觉得混乱,关掉)
set nobackup
set nowritebackup

配置后怎么生效?

保存 ~/.vimrc 后,重新打开vim 就会生效(比如输入 vim test.txt 打开一个文件,就能看到行号、颜色高亮了)。

如果想立即生效(不用重启vim),可以在vim里按 Esc 后输入 :source ~/.vimrc 回车。


以上就是这篇博客的全部内容,下一篇我们将继续探索Linux的更多精彩内容。

我的个人主页
欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的Linux知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12879535.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到