我希望在 vim 中编辑 csv 文件时能够非破坏性地对齐列。
我知道在 vim 中对列数据进行制表/对齐的各种方法,但它们都会修改文件本身,而不是文件的视图。我已经开始使用 csv.vim 插件,它非常好,如果我可以将解决方案集成到其工作流程中,那就太好了,因为它已经自动检测并相应地突出显示列。
理想情况下,显示间距不会被视为字符,因此移动命令的行为就像它们不存在一样。
答案1
不幸的是,这是不可能的,而且这也不符合 Vim 成为强大文本(与所见即所得 (WYSIWYG) 相反)编辑器。
Vim 中最接近的功能是(最近)隐藏功能,其工作原理相反:它可以(尽管有弱点)将多个字符压缩为单个(或无)字符单元表示。您需要相反的操作:将单个空格扩展为可变数量的显示单元。曾经有人谈论过“可变制表位”补丁vim_dev 邮件列表,但没有任何进展。
最好的解决方法是上述csv.vim插件,它(通过:[Un]ArrangeColumn
)可以(暂时)修改文本本身(在打开/保存时也可以自动修改;cp :help csv-arrange-autocmd
..