Linux基础(十三)——vim编辑器

news/2024/11/12 17:40:18 标签: linux, 编辑器, vim

vim编辑器

  • 1.vi与vim
  • 2.vi的使用
  • 3.vim的暂存盘
  • 4.vim的使用注意事项
    • 4.1编码问题
    • 4.2 DOS与Linux的断行符

vim_1">1.vi与vim

在 Linux 的世界中, 绝大部分的配置文件都是以 ASCII 的纯文本形态存在, 因此利用简单的文字编辑软件就能够修改设置了。
vim 是 vi 的进阶版本, vim 可以用颜色或底线等方式来显示一些特殊的信息。vim 里面加入了很多额外的功能, 例如支持正则表达式的搜寻架构、 多文件编辑、 区块复制等等 。

2.vi的使用

基本上 vi 共分为三种模式, 分别是“一般指令模式”、 “编辑模式”与“命令行命令模式”。
在这里插入图片描述

vim_7">3.vim的暂存盘

vim和vi在操作上是没有什么区别的,但vim相比于vi有一个暂存盘的功能。

当我们在使用 vim 编辑时, vim 会在与被编辑的文件的目录下, 再创建一个名为.filename.swp 的文件。 比如说我们在上一个小节谈到的编辑 /tmp/vitest/man_db.conf 这个文件时, vim 会主动的创建 /tmp/vitest/.man_db.conf.swp 的暂存盘, 你对 man_db.conf 做的动作就会被记录到这个 .man_db.conf.swp 当中喔! 如果你的系统因为某些原因断线了, 导致你编辑的文件还没有储存, 这个时候 .man_db.conf.swp 就能够发挥救援的功能了。

[root@CentOS7 tmp]# rm -rf /tmp/*
[root@CentOS7 tmp]# touch file
[root@CentOS7 tmp]# vim file

不要关闭vim的编辑界面,在另一个终端显示文件。

[root@CentOS7 tmp]# ls -a
.   .esd-1000  .file.swp   .ICE-unix   .X0-lock   .XIM-unix
..  file       .font-unix  .Test-unix  .X11-unix

从上面可以看到,除了file文件,还有他的缓存文件.file.swp存在。
现在完成编辑:

[root@CentOS7 tmp]# vim file
[root@CentOS7 tmp]# ls -a
.   .esd-1000  .font-unix  .Test-unix  .X11-unix
..  file       .ICE-unix   .X0-lock    .XIM-unix

从上面可以看到,.file.swp文件消失了。

下面在编辑过程中关闭终端,看一下如何通过swp文件来恢复:


在这里插入图片描述
在这里插入图片描述
再次用vim编辑时出现如下页面:
在这里插入图片描述
在这里插入图片描述
直接按R就可以恢复了。
Tips:恢复之后,swp文件并不会消失,所以下次编辑文件的时候又会遇到这个问题,所以恢复之后需要手动删除swp文件

vim_43">4.vim的使用注意事项

4.1编码问题

vim 里面怎么无法显示正常的中文啊? 其实这很有可能是因为编码的问题! 因为中文编码有 big5 与 utf8 两种, 如果你的文件是使用 big5 编码制作的, 但在 vim 的终端接口中你使用的是万国码( utf8) , 由于编码的不同, 你的中文文件内容当然就是一堆乱码了。

4.2 DOS与Linux的断行符

DOS ( Windows 系统) 创建的文件的特殊格式, 也可以发现在DOS 使用的断行字符为 ^M$ , 我们称为 CR 与 LF 两个符号。 而在 Linux 下面, 则是仅有LF ( $) 这个断行符号。
DOS文件与Linux文件的互转:
在这里插入图片描述


http://www.niftyadmin.cn/n/5746974.html

相关文章

Java 中的 Consumer:让操作与输出更简洁灵活

文章目录 1. Consumer 基础:单一操作的便捷实现2. forEach 与 Consumer:循环中的简化操作3. 链式 Consumer:andThen 实现多个操作4. 配合 Map 使用:多用途数据处理5. 定义通用 Consumer:增强代码复用6. Consumer 配合 …

Batch Normalization原理与代码实现

BN原理 Batch Normalization(批量归一化)是一种用于加速深度神经网络训练并提高其稳定性的技术。它通过在每一层的激活函数之前对数据进行归一化处理,使得每一层的输入分布更加稳定,从而加速训练过程并提高模型性能。 具体来说&…

十七:Spring Boot 依赖(2)-- spring-boot-starter-data-jpa 依赖详解

目录 1. 理解 JPA(Java Persistence API) 1.1 什么是 JPA? 1.2 JPA 与 Hibernate 的关系 1.3 JPA 的基本注解:Entity, Table, Id, GeneratedValue 1.4 JPA 与数据库表的映射 2. Spring Data JPA 概述 2.1 什么是 Spring Dat…

【分布式】分布式锁设计与Redisson源码解析

分布式锁 分布式锁是一种在分布式计算环境中用于控制多个节点(或多个进程)对共享资源的访问的机制。在分布式系统中,多个节点可能需要协调对共享资源的访问,以防止数据的不一致性或冲突。分布式锁允许多个节点在竞争访问共享资源…

从经典到应用:探索 AlexNet 神经网络

引言 在 2012 年,深度学习领域迎来了一个历史性时刻——AlexNet 的问世。由 Alex Krizhevsky 及其团队提出的 AlexNet 是一种深度卷积神经网络模型,它在 ImageNet 大规模视觉识别挑战赛(ILSVRC)中取得了突破性成果,将…

matlab将INCA采集的dat文件多个变量批量读取到excel中

参考资料: MATLAB处理INCA采集数据(mdf,dat等)一 使用matlab处理INCF采集数据,mdf(.dat)格式文件,并将将其写入excel文件 这个资料只能一个变量一个变量的提取,本对其进…

uniapp配置h5路由模式为history时404

为了不让URL中出现#,让uniapp项目配置h5路由模式为hisory 然而本地好好的,放到服务器上却404了。 解决方法是给nginx配置一个伪静态: location /xxx-html/ {alias /home/nginx_web/xxx_new_html/;try_files $uri $uri/ /xxx-html/index.ht…

三分钟学会Docker基本操作,快速入门容器技术!

如果您时常遭遇以下困境: 被繁琐的应用安装依赖与环境配置耗尽了宝贵时间与精力? 即便严格遵循安装指南,仍频遇障碍,导致应用无法启动,让您倍感挫败与焦虑? 向研发团队反馈安装难题,却只换来“…