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

Vim跳转文件及文件行结束符EOL

跳转文件

gf 从当前窗口打开那个文件的内容,操作方式:让光标停在文件名上,输入gf。
Ctrl+o 从打开的文件返回之前的窗口

Ctrl+w+f 可以在分割的窗口打开跳转的文件,不过在我的实验不是次次都成功。

统一行尾格式

文本文件里存放的是用行结束符(EOL,即 End of Line)隔开的文本行,二进制文件里则没有这样的明确分隔符。一个文本文件由多行构成,每一行都以一个行结束符(EOL)结束。

ASCII编码表的头32个字符和最后一个字符是控制字符。如LF和CR字符就是行结束符

  • Unix格式
    在 Unix 或类Unix上,这个 EOL 在存盘时使用的字符是 LF,编码值是 10(U+000A)。

  • DOS格式
    在Windows上,行尾就不只使用 LF 这一个字符了,在 LF 前面会多一个 CR,编码值为 13(U+000D)。这个用法的来源是以前的打字机,CR 表示机架归位(carriage return),LF 表示换行(line feed)。在使用 CR LF 作为行结束符的系统里,CR 只负责光标回到第一列,而 LF 负责光标向下一行。

  • 老的Mac格式
    老的 Mac 则使用单个 CR 字符作为行结束符,但苹果从 Mac OS X(2001 年)开始就使用了 Unix 风格的行结束符。

:e ++ff=dos 强制以 DOS 行尾加载文件,此时文件的行尾格式是 dos

:%s/\r$// 删除行尾多余的 CR 字符,此时文件的行尾格式保持 unix 不变

注意:

在Unix或类Unix上,文本文件的任何一行都以行结束符终结,包括最后一行。使用 Vim 编辑的文本文件,最后一个字符通常是 LF(除非使用 Mac 行尾风格,则结尾是 CR)。
而在Windows 上大部分文本编辑器则允许最后一行不以行结束符结束。这样的文件在 Vim 打开时,Vim 默认会给出一个“[noeol]”的提示。在存盘时,Vim 则会自动在最后添加一个行结束符。

编辑二进制文件

Vim也可以用来编辑二进制文件。

vim -b 二进制文件
入vim后,通过命令打开:
:e ++binary 二进制文件

用以上命令来打开二进制文件时,binary 选项会自动被设置。这个选项保证了,Vim 在读取和存储文件时,不会做会影响文件内容的转换和修改。

不过,即使有这个选项,二进制文件打开后仍然是一堆乱码。可以利用 Vim 的 Tools(工具)菜单下的“Convert to HEX”(转换成十六进制)和“Convert Back”(转换回)两项,来对二进制文件进行编辑。我安装的MacVim有这个功能,应该其他的GUI也会有:
请添加图片描述
如果你要把修改写回硬盘的话,一定要先使用“Tools > Convert Back” 。

http://www.lryc.cn/news/533328.html

相关文章:

  • 智能理解 PPT 内容,快速生成讲解视频
  • 【鸿蒙开发】第二十四章 AI - Core Speech Kit(基础语音服务)
  • Java/Kotlin双语革命性ORM框架Jimmer(一)——介绍与简单使用
  • 番外02:前端八股文面试题-CSS篇
  • Redis Copilot:基于Redis为AI打造的副驾工具
  • JavaScript遍历对象的7种方式
  • 如何避免NACK重传风暴
  • 并发工具CountDownLatch、CyclicBarrier、Semaphore
  • 十二. Redis 集群操作配置(超详细配图,配截图详细说明)
  • 网络工程师 (26)TCP/IP体系结构
  • TensorFlow域对抗训练DANN神经网络分析MNIST与Blobs数据集梯度反转层提升目标域适应能力可视化...
  • 保姆级教程--DeepSeek部署
  • 机器学习之心的创作纪念日
  • VeryReport和FastReport两款报表软件深度分析对比
  • libtorch的c++,加载*.pth
  • 去除 RequestTemplate 对象中的指定请求头
  • b s架构 网络安全 网络安全架构分析
  • 【DeepSeek论文精读】2. DeepSeek LLM:以长期主义扩展开源语言模型
  • Spring Boot和SpringMVC的关系
  • java基础4(黑马)
  • nodejs - vue 视频切片上传,本地正常,线上环境导致磁盘爆满bug
  • 注意力机制(Attention Mechanism)和Transformer模型的区别与联系
  • C++,设计模式,【单例模式】
  • C++:类和对象初识
  • 官网下载Redis指南
  • 活动预告 |【Part1】 Azure 在线技术公开课:迁移和保护 Windows Server 和 SQL Server 工作负载
  • 【Linux系统编程】五、进程创建 -- fork()
  • 深入解析 STM32 GPIO:结构、配置与应用实践
  • 深入探究 C++17 std::is_invocable
  • Vmware网络模式