当前位置: 首页 > web >正文

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

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

  • 前言
  • 一、编辑器Vim
    • 1. Linux编辑器——Vim是什么?
      • 1.1 什么是Vim?它能编辑哪些内容?
      • 1.2 Vi与Vim的核心区别?
    • 2. Vim的模式基础
    • 3. vim的基本操作
    • 4. vim命令模式命令全集
      • 4.1 插入文字
      • 4.2 移动光标
      • 4.3 删除文字
      • 4.4 复制和粘贴
      • 4.5 替换文字
      • 4.6 撤销和恢复
      • 4.7 修改文字
      • 4.8 跳转到指定行
    • 5. vim末行模式命令全集
      • 5.1 怎么进入末行模式?
      • 5.2 给每行加上行号
      • 5.2 快速跳到指定行
      • 5.2 查找你要的字/词
      • 5.2 保存文件
      • 5.2 退出Vim
    • 7. 简单vim配置(了解即可)
      • 配置文件在哪?怎么改?
      • 简单实用的vim配置
      • 配置后怎么生效?


前言

  • 承接上文对 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

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

在这里插入图片描述

http://www.xdnf.cn/news/15488.html

相关文章:

  • C++-多态
  • 现场设备无法向视频汇聚EasyCVR视频融合平台推流的原因排查与解决过程
  • Java Integer包装类缓存机制详解
  • python中正则相关:正则概述,匹配数字,匹配单词,匹配字符开头与结尾,单词的边界检测
  • MySQL数据实时同步到Elasticsearch的高效解决方案
  • aspnetcore Mvc配置选项中的ModelMetadataDetailsProviders
  • Ubuntu服务器安装Miniconda
  • 鸿蒙应用开发: 鸿蒙项目中使用私有 npm 插件的完整流程
  • 华为MateBook D 16 SE版 2024款 12代酷睿版i5集显(MCLF-XX,MCLF-16)原厂OEM预装Win11系统
  • vscode 打开项目时候,有部分外部依赖包找不到定义或者声明,但是能使用cmake正常编译并且运行
  • 【前端】【Iconify图标库】【vben3】createIconifyIcon 实现图标组件的自动封装
  • AWS RDS PostgreSQL可观测性最佳实践
  • Linux操作系统从入门到实战(八)详细讲解编译器gcc/g++编译步骤与动静态库链接
  • S7-1200 中 AT 覆盖参数的应用:灵活访问数据区域的实用指南
  • 银河麒麟KYSEC安全机制详解
  • Java设计模式(java design patterns)
  • 【linux V0.11】boot
  • 【算法深练】BFS:“由近及远”的遍历艺术,广度优先算法题型全解析
  • 掉线监测-tezos rpc不能用,改为残疾网页监测
  • 视频孪生与三维融合:智汇云舟赋能智慧化电力转型的破局之道
  • 【数据结构初阶】--单链表(二)
  • Flask服务器公外网访问,IPv6(亲测有效!!!!)
  • 哈希扩展 --- 海量数据处理
  • 20250714让荣品RD-RK3588开发板在Android13下长按关机
  • 【Linux】Jenkins Lts 配置构建 Maven 项目
  • 机床自动化中的“方言翻译官”:EtherNet/IP 转 PROFIBUS DP 实战手记
  • 3分钟搭建自动签到打卡RPA程序:验证码自动识别
  • 知识蒸馏:模型压缩与知识迁移的核心引擎
  • C++--unordered_set和unordered_map的使用
  • CCF-GESP 等级考试 2025年6月认证Python三级真题解析