+---------------+------------------------+---------------------------------------+
| TASK NAME | WHEN | DESCRIPTION |
+---------------+------------------------+---------------------------------------+
| db:seed | On every update | Data required for the application to |
| | | run; you should always be able to |
| | | safely execute this multiple times |
| | | for an update. |
| db:truncate | Manually (dangerous!) | TRUNCATE all tables but postal_codes |
| postal_codes | Once | Load the postal_codes table |
+---------------+------------------------+---------------------------------------+
问题是这很难编辑。如果我改变一件事,我需要
(手动)重新排列所有内容,这是PITA。
是否有更简单的方法来管理此问题?我不在乎上面这样的确切布局,但我想保留第3列的包装...
#1 楼
我是插件vim-table-mode的作者。
我花了很多时间来构建和改进它,尤其是
社区反馈,它恰好适合这种使用案例。
快速入门:使用
:TableModeEnable
命令进入“表模式”,然后您只需键入:||
| MOVIE | QUOTE|
||
| Blade Runner | Like tears in the rain |
| Monty Python's quest for the holy grail | Are you suggesting that coconuts migrate? |
||
,vim-table-mode会自动处理为您调整对齐方式
,以便它看起来像:
|-----------------------------------------+-------------------------------------------|
| MOVIE | QUOTE |
|-----------------------------------------+-------------------------------------------|
| Blade Runner | Like tears in the rain |
| Monty Python's quest for the holy grail | Are you suggesting that coconuts migrate? |
|-----------------------------------------+-------------------------------------------|
以后编辑表时,vim-table-mode还将照顾
/>为您对齐。
使用
Tableize
命令将现有文本转换为表,例如,%Tableize/,
会将,
作为分隔符,将任何表转换为整个文件中的文本。您可以保留'table
:TableModeDisable
模式。它的核心是轻松创建表格,这些表格将在您键入时自动格式化。它提供了许多映射,还可以移动和操作表
(一个特别有用的映射是
<Leader>tdc
,用于删除整个列)。所有要做的就是启用表格模式,它们就会启动,您可以直接输入
而不必担心格式化。
它具有比此处显示的功能更多的功能,例如功能向右
将列对齐,并在标题上添加一些提示。它还具有一个整洁的电子表格
公式引擎,使您可以像常规电子表格那样定义公式并执行计算。
它具有极高的灵活性和可配置性,因此您可以更改多个
/>关于创建的表格和边框的方面。
我还创建了一些截屏视频,试图展示其功能。
此截屏视频是最新的,但请注意,已经做了很多改进因为。
评论
谢谢;我已经对您的答案进行了一些编辑,以添加一些实际的用法信息(它读起来有点像以前的广告)...我无法用vim-table-mode做的一件事是包装第三列就像我问题中的例子一样。这可能吗?
–马丁·图尔诺伊(Martin Tournoij)
2015年2月7日下午0:46
@Carpetsmoker感谢您的编辑。好吧,您可以手动包装它,没有办法自动完成。
–德鲁瓦·萨加尔(Dhruva Sagar)
2015年2月7日,下午5:47
#2 楼
如果可以使用sed
和column
,那么接近的命令行解决方案是: 缺点:
使用
'<,'>
和sed
。 Vim是偶然的。可以将
column
命令更改为vim sed
命令,但是:substitute
至关重要。行分隔符(
column
)被填充,但是我对其可靠性有所怀疑。我不知道---...-
的可移植性如何。来源:
像
$'\x01'
这样的命令可将分隔符保留在输出中Vim:管道选定文本封装cmd并在vim信息/命令行上接收输出
评论
除了小故障(可能可以解决)外,这看起来很有希望...我无法解决的一件事是尽管第三列的包装:-/
–马丁·图尔诺伊(Martin Tournoij)
2015年2月7日,0:19
#3 楼
如果您不想安装任何插件,并且想要编辑表格以保持对齐:-使用内置的VREPLACE模式,该模式由
gR
激活。(确保您具有vim最新版本,并检查其是否具有
+vreplace
功能进行编译,并在终端上键入vim --version
)。(我的状态行设置为在REPLACE和VREPLACE模式下均显示REPLACE) )
如果您想了解有关REPLACE和VREPLACE模式的更多信息,请查看本文。
#4 楼
为此,我创建了命令行工具tablign。它也可以在vim内部运行。只需安装[sudo -H] pip3 install tablign
在vim中标记该表并调用
:'<,'>:!tablign
(vim填写第一个
它还不能固定列宽,但是可以在需要时添加。
评论
顺便说一句,如果这是reStructuredText,则可以考虑查看列表表(最近我将许多表都转换为该表,因为ascii表很难维护且很难比较)