gpt4 book ai didi

vim - 如何在VIM中查看EBCDIC格式的文件?

转载 作者:行者123 更新时间:2023-12-02 09:26:34 26 4
gpt4 key购买 nike

查看 EBCDIC 的最佳方式是什么? VIM 中的格式化文件?

最佳答案

在大型机上

首先,如果 Vim 是在默认编码为 EDCDIC 的系统(例如带有 ANSI C 编译器的 IBM manframe)上编译并运行的,那么 Vim 将默认在系统的代码页中打开 EBCDIC 文件。这样的 Vim 实例将具有:

has("ebcdic")

评估为1。当使用 --version 调用时,Vim 将打印:

+ebcdic

未在 EBCDIC 环境中编译的 Vim 实例永远不会将 has("ebcdic") 计算为 true。 Vim 的此功能是必需的,因为其他功能在纯 EBCDIC 环境中的行为有所不同。

<小时/>

不在大型机上

然而,当今大多数系统并不使用 EBCDIC 代码页。对于在更流行的系统上需要在 Vim 中编辑以 EBCDIC 代码页编码的文件的情况,Vim 使用 iconv 库。本质上,为了能够打开以 EBCDIC 代码页编码的文件,Vim 需要使用 iconv 支持进行编译。可以通过评估来测试 iconv 支持:

has("iconv")

或者搜索

+iconv

vim --version 输出中的字符串。

EBCDIC 有多个代码页,Vim 只能使用其编译时所针对的 iconv 库支持的代码页。要检查哪些代码页可用,您可以使用与 iconv 库一起提供的 iconv 实用程序:

iconv --list

现在,假设我们有一个名为 myfile 的文件,该文件使用 EBCDIC-US 代码页(也称为 EBCDIC-037代码页),并且系统上安装的 iconv 支持此代码页。

在 Vim 中打开文件之前,我们需要将 Vim 的编码设置为 utf-8,在 ~/.vimrc 中我们需要:

set enc=utf-8

:h fenc 建议如果执行任何文件转换(通过 iconv),则必须将编码设置为 utf-8。否则写回文件时可能会丢失数据。

现在我们使用 vim myfile 在 Vim 中打开文件,并看到损坏的字符。没关系,我们现在需要使用 iconv 执行转换:

:e ++enc=EBCDIC-US

Vim 现在将以 utf-8 格式显示文件,但会以 EBCDIC-US 格式保存文件,两者都是使用 iconv 转换完成的苍蝇。

<小时/>

结束语

IBM 的代码页命名之间的映射:

EBCDIC-037
EBCDIC-273
EBCDIC-500
...

iconv的名字

EBCDIC-US
EBCDIC-AT-DE-A
EBCDIC-BE
...

通常是不平凡的。然而,如果显示编码 (enc) 设置为 utf-8,则尝试使用不同的代码页应该不会有问题

:e ++enc=EBCDIC-US
:e ++enc=EBCDIC-AT-DE-A

直到找到正确的转换。

<小时/>

额外说明:考虑使用vi.SE如果您还有更多与 Vim 相关的问题。

关于vim - 如何在VIM中查看EBCDIC格式的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38247312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com