Ubuntu vim 以十六进制的形式显示文件内容

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

Vim的介绍

VimVi IMproved是一款开源的文本编辑器是 Unix 系统中经典的 vi 编辑器的改进版本。它具有强大的功能和高度可定制性被广泛应用于程序开发、系统管理和文本编辑等领域。

以下是 Vim 的一些主要特点和功能

  • 模态编辑Vim 包含多种编辑模式包括普通模式、插入模式、命令行模式等。在普通模式下可以执行各种编辑操作和移动光标等操作在插入模式下可以输入文本在命令行模式下可以输入命令或执行扩展功能。
  • 强大的编辑功能Vim 提供了丰富的编辑功能如复制粘贴、撤销重做、查找替换、全局替换、宏录制播放等。它还支持语法高亮、自动缩进、自动补全等功能提高了编辑效率。
  • 多窗口和分屏Vim 支持同时打开多个文件并可以在窗口之间切换或分割窗口进行同时编辑便于对多个文件进行操作和比较。
  • 可扩展性Vim 支持插件和脚本编写用户可以自定义和扩展编辑器的功能和行为满足个性化的需求。
  • 跨平台支持Vim 可以在多种操作系统上运行包括 Unix/Linux、Windows、Mac 等。

Vim 是一个非常强大和灵活的文本编辑器但也有一定的学习曲线。对于初次接触 Vim 的用户来说可能需要一些时间来熟悉它特有的编辑方式和命令。然而一旦掌握了 Vim 的基本操作和常用功能它将成为你高效编辑文本的得力工具。

为什么要使用 vim

vim 是命令行界面的编辑工具上手非常困难那么为什么还要使用 vim 呢和图形界面的文本编辑工具相比vim 确实不怎么方便但是 vim 却有着很大的用处。比如在没有图形界面的服务器上想要进行文本编辑操作就不得不使用 vim。服务器省去了图形界面主要有以下几个原因

  • 资源利用图形界面需要大量的系统资源如内存和处理器这对于服务器来说是宝贵且有限的资源。通过省略图形界面服务器可以将更多的系统资源用于运行服务和应用程序提高性能和响应速度。
  • 安全性图形界面引入了许多潜在的安全风险。图形界面提供了更多的用户交互和操作选项容易导致误操作或不当配置从而增加了系统遭受攻击的可能性。通过远程登录并使用基于文本的终端界面管理员可以更好地控制和保护服务器减少潜在的安全漏洞。
  • 稳定性和可靠性图形界面往往比文本界面更复杂包含更多的代码和组件。这增加了系统崩溃、冲突和不稳定的风险。通过仅使用文本界面服务器可以更加稳定和可靠地运行并且更容易进行故障排除和维护。
  • 自动化和脚本化服务器环境通常需要进行大规模的配置管理以支持自动化部署、监控和维护。文本界面提供了更方便的方式来执行自动化任务和编写脚本例如使用 Shell 脚本或配置管理工具如 Ansible、Chef、Puppet 等。这有助于提高效率并保持一致性。

Ubuntu 安装 Vim

Ubuntu 安装 Vim 的命令sudo apt-get install vim

使用 Vim

使用 vim 打开文件vim 文件名如果该文件在当前目录下已经存在则打开读取其中的内容如果当前目录下不存在该文件则创建该文件。

例如
在这里插入图片描述
按下回车键后会进入vim的编辑界面
在这里插入图片描述在当前页面按下 ai 进入编辑模式此时左下角会出现
-- INSERT --
在这里插入图片描述Esc 键退出编辑模式。

vim 的基础命令

以下是 Vim 的一些基础命令

  1. 进入编辑模式

    • i在光标所在位置插入文本。
    • a在光标后插入文本。
    • o (注意这里是小写字母o下面是大写字母O)在当前行下方插入新行并进入插入模式。
    • O在当前行上方插入新行并进入插入模式。
  2. 退出编辑模式

    • <Esc>退出插入模式回到命令模式。
  3. 保存和退出

    • :w保存文件。
    • :q退出 Vim。
    • :wq保存文件并退出 Vim。
    • q!强制退出。
  4. 光标移动

    • h向左移动一个字符。
    • j向下移动一行。
    • k向上移动一行。
    • l向右移动一个字符。
    • gg跳转到文件的开头。
    • G跳转到文件的末尾。
  5. 删除文本

    • x删除光标所在位置的字符。
    • dd删除整行。
  6. 复制和粘贴

    • yy复制一整行。
    • p粘贴剪贴板中的内容。
  7. 撤销和重做

    • u撤销上一次操作。
    • <Ctrl + r>重做撤销的操作。

这只是 Vim 命令的一小部分Vim 还具有更多强大的功能和命令。你可以通过在命令模式下键入 :help 来查看 Vim 的帮助文档其中包含了更详细的命令说明和用法示例。

vim 以十六进制的形式显示文件内容

在 vim 的编辑界面按下英文版的 : 冒号键然后输入命令 %!xxd 按下回车后会将文件内容以十六进制的形式输出。

在这里插入图片描述在这里插入图片描述使用命令 %!xxd -r 退出十六进制编辑模式回到默认的编辑模式。

今天发现了一个有趣的现象

今天我使用 vim 以十六进制的形式查看了一个 png 文件该文件的 properties 如下总共是46568个字节
在这里插入图片描述

但是使用 vim 查看后发现文件的末尾多了一个字节 0a 如下

在这里插入图片描述
查了一点资料
Vim以十六进制形式查看文件时末尾多出的"0a"代表ASCII码中的换行符。在Unix/Linux系统下文本文件的行结束符通常是"\n"ASCII码为0a而在Windows系统中则是"\r\n"ASCII码为0d 0a。

当你使用Vim以十六进制形式查看文件时Vim会将每个字符转换为对应的ASCII码来显示。换行符被显示为"0a"这是因为正常情况下在十六进制模式下Vim会按照内容的字节进行显示其中包括了文本中的控制字符。

所以当你在Vim中查看文件的十六进制表示时末尾的"0a"实际上是文本文件最后一行的换行符。

对于图片文件来说它们通常是以二进制形式保存的。在二进制文件中并没有像文本文件一样使用换行符来表示行结束。

因此当你查看一个图片文件的文件大小时无论其大小是多少文件的末尾并不会有固定的 0a 字节。这也适用于其他二进制文件如音频、视频等。

然而当你使用 Vim 这样的文本编辑器打开一个二进制文件时默认情况下 Vim 会将其作为文本文件处理并根据编码规则解析其中的字符。在解析过程中Vim 可能会添加或修改某些字符。

所以在你使用 Vim 打开图片文件后即使图片文件本身的末尾没有 0a 字节但由于 Vim 的处理和显示方式你可能会看到文件末尾多出了 0a 字节的视觉效果。实际上这并不是文件内容发生了改变而是 Vim 将其以文本方式展示的结果。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Ubuntu