AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 25963
Accepted
Bruno Bronosky
Bruno Bronosky
Asked: 2009-06-16 07:35:17 +0800 CST2009-06-16 07:35:17 +0800 CST 2009-06-16 07:35:17 +0800 CST

如何使用 VIM 编辑表格数据(表格)?具体来说,BIND(命名)DNS db 文件

  • 772

在 vimming 方面,我通常是一个纯粹主义者。我不喜欢重新映射键,或者学习依赖一堆插件。我喜欢在外国盒子上感觉就像在我自己​​的开发盒子上一样强大。但是,我确实相信语法文件。尽管解决方案可能不是语法文件(我使用的是 bindzone.vim),但我希望它足够糟糕,可以做任何事情。

我经常查看或编辑制表符(或逗号,但那将是一个奖励)分隔数据。我讨厌不得不将我的制表位设置为一些荒谬的数字,以便让所有内容都对齐。示例:BIND 区域文件为 ~40+,6,2,5,15+。因此,即使我可以在单个屏幕上查看它们,如果我设置 ts=40,我也不能。多年来,我一直在寻找“动态标签大小”解决方案,但没有运气。

我讨厌编辑甚至可视化表格数据的唯一好方法是将其 scp 到我的工作站并在 Open Office 中打开它。一定有更好的方法。

domain-name-system vim bind
  • 6 6 个回答
  • 3894 Views

6 个回答

  • Voted
  1. Bill Weiss
    2009-06-23T09:09:16+08:002009-06-23T09:09:16+08:00

    如何更改为空格而不是制表符,并仅使用 R(而不是 i)进行编辑?这样你就不会重新对齐任何东西(除了一开始你重新排列所有东西时)。

    • 1
  2. Best Answer
    Bruno Bronosky
    2009-06-24T05:31:52+08:002009-06-24T05:31:52+08:00

    提交功能请求。VIM 需要一个选项来显示不同的制表位,这在每个文字处理器中都很常见。这么多人使用 vim 作为文字处理器,我很惊讶它还没有。我建议修改制表位以接受数组代替整数。

    • 1
  3. intuited
    2010-03-15T04:35:08+08:002010-03-15T04:35:08+08:00

    Vim有一个开发列表补丁,据说可以实现可变制表位。将{1}指示为处于测试阶段。
    显然,这将涉及为要在其上使用它的服务器编译 vim。

    另一种选择是设置自定义文件类型,将制表符转换为由某些特殊字符分隔的空格。您可以设置自动命令以在读取时触发导入(即转换为分隔列)例程,并在写入时触发导出例程(转换回制表符分隔),因此它最终或多或少地透明地工作。
    所以例如文件

    Column 1 header\tColumn 2 header\tcolumn 3 header
    first row, column 1\tfirst row, column 2\tfirst row, column 3
    

    在 vim 中会被视为类似

    Column 1 header»     «Column 2 header»     «Column 3 header
    first row, column 1» «first row, column 2» «first row, column 3
    

    这或多或少不在我的脑海中。很可能有一个 vimscript 包可以实现这一点。如果没有,写起来也不会那么难。您只需要确保列分隔符(此处为“»”和“«”)实际上并未在文件中使用。对于绑定配置文件,我认为任何非 ASCII 都是安全的。为了提高鲁棒性,我想你可以给 vim 一些选项,让它扫描文件以找到文件中不存在的集合,或者只是转义任何那些存在的字符。

    最好用看起来像空格{2} 但不是的字符填充,例如 '\xa0' 或 '\u2002'; 同样,只有在文件中不存在填充字符,或者您正在让导入例程转义那些填充字符时,这才能正常工作。
    此外,我假设熟悉 c 样式的反引号:在示例的第一部分中,“\t”表示制表符;\x 和 \u 序列是十六进制和 unicode 字符表示。

    如果您最终实施或找到类似的东西,请告诉我。

    {1}:http...groups.google.com/group/vim_dev/web/vim-patches?pli=1
    {2}:http...www.cs.tut.fi/~jkorpela/chars/spaces。 html
    注意:混淆的老式参考风格是由于我在这个网站上缺乏声誉。

    • 1
  4. chaos
    2009-06-16T07:44:01+08:002009-06-16T07:44:01+08:00

    我认为您可以使用Align 插件完成您想要的工作。(抱歉,如果您已经尝试过。)

    • 0
  5. buecking
    2009-06-16T17:43:22+08:002009-06-16T17:43:22+08:00

    您知道您可以通过定义自定义模式行来自动设置文件的自定义属性吗?我意识到这并不能解决您的问题,但可以让您在每次要对齐文件时都不必输入自定义属性。

    • 添加到文件顶部 '# vi:ts=40'
    • 并记得在你的 .vimrc 中“设置模式行”

    这也适用于vi...

    • 0
  6. rpetre
    2009-06-18T01:48:01+08:002009-06-18T01:48:01+08:00

    一堆答案并不完全正确,但也许其中一些适合您的工作模式:

    有一个 :%!sed -e 'whatever' 来满足你的需要,并将它放在文件中某处的注释中,以便你可以粘贴它(我曾经在这种类型的绑定文件中保留一个 :%!sort -u东西的)。

    如果它一直是同一台服务器,在它的某个地方有一个 (bash|perl|awk|sed) 脚本,可以在 vim 中类似地调用。

    如果您可以将生成文件放在那里, :make 命令也很有用。

    将所有数据保存在 SQL 中并从那里生成文件,同时编辑某些表或视图(我只是在开玩笑)。

    使用 cut(1) 和 paste(1) 命令(来自 vim 或辅助 shell 脚本)模拟 SQL 视图。

    据我所知,vim 中不可能有垂直折叠,但块选择(使用 ctrl-V)通常很有用。

    宏!

    • 0

相关问题

  • Linux 绑定服务器为 DHCP Windows 客户端提供地址,但不为 DHCP Linux 客户端提供地址

  • 如何使用 Windows Server 解析 http 域名

  • 动态更新 /etc/resolv.conf 中列出的解析器

  • 内部名称解析

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve