本文来自依云's Blog,转载请注明。
rst_tables 是一个用来创建和格式化 rst(reStructuredText)格式文档中的表格用的。此文档里的表格得画成表格的样子,囧死了……比如(网页上显示的可能没对齐,在 Vim 里应该很齐的www):
+----------+----------+-----------------------------------------+ | 格式名称 | 使用频率 | 使用场景 | +==========+==========+=========================================+ | markdown | 非常高 | 简单的文字,如博客、简单文档 | +----------+----------+-----------------------------------------+ | rst | 较低 | 较复杂的文档,如包含表格或者描述性列表。| | | | 以及 Python 库的文档。 | +----------+----------+-----------------------------------------+
所以,作为编辑器之神的 Vim,当然会有更方便的创建这种非人道的表格的办法啦。(其实我是看到 Vimwiki 的表格挺不错的 n(≧▽≦)n
略作搜索,找到了 rst_tables。它是这样子写的(墙外视频演示):
格式名称 使用频率 使用场景 markdown 非常高 简单的文字,如博客、简单文档 rst 较低 较复杂的文档,如包含表格或者描述性列表。以及 Python 库的文档。
每行的单元格间空两格,然后光标放在光标上,按\\c(其实是<leader><leader>c,create),就创建好啦。如果后期又修改了,按\\f(format)就可以重新格式化啦。
rst 的表格里可以写多行文字,就如前边所示那样。修改表格第一行那些减号的数量后再按\\f,可以调整栏宽。
好啦,rst_tables 本身的介绍至此结束。下面讲讲我作出的改进:
- 去除对 vim_bridges Python 库的依赖。根本没大量使用的东西,也没省下几行代码,何必用呢。
- 正确对齐和排版中文。官方版考虑了中文字符的宽度,但是用 Python 的 textwrap 来排版,造成各种混乱。我给改成用 Vim 原生排版功能排了。
- 使用 Python 3 接口,免得非 UTF-8 'encoding' 时出问题。同时使用了 Vim 7.4 新添加的 Python 接口。
- 如果没有 Python 支持,不要载入。
- 键映射局部于缓冲区。
-
放到
plugin
目录下,因为那些 Python 函数定义不需要载入多次。
Aug 06, 2013 07:57:09 AM
呀,vim74
不知道有木偶gvim版
到官网瞧瞧去先
Aug 06, 2013 09:28:06 AM
好像很好的样子.. 心动py3了.. 中文处理不用那么麻烦的说...
Aug 06, 2013 10:20:29 AM
现在还是 beta 版,官网上肯定没有。这里有我打包的 win32 版: http://lilydjwg.is-programmer.com/pages/19540.html#win-vim 。Arch Linux 64 位版在 lilydjwg 源里。
Aug 07, 2013 03:00:44 PM
竟然要用 Vim7.4 囧,好吧……
你在 VIM 中用的中文字体不是两个字节宽度的?上面的表格有点乱。
Aug 07, 2013 03:03:43 PM
DokuWiki 的表格表示法好方便,假如 rst 也添加那种方法就好了。
https://www.dokuwiki.org/wiki:syntax#tables
Aug 07, 2013 03:15:11 PM
浏览器里渲染得不准吧?这里代码默认的首先字体是 Consolas,很显然中文只能 fallback 到别的字体……
因为 vim 7.4 的 Python 接口好方便啊啊啊,vim.current.buffer.options 就是当前缓冲区的选项字典了~
你升级一下嘛=w=
Aug 07, 2013 05:31:42 PM
暂时对 Vim 的功能没有特大需求,还是跟着 Gentoo 的包管理走好了。
rst 还提供 csv 和 list 风格的表格表示法,不过在我这里好像有点 bug ,那些选项无法正常使用,Orz
浏览器的字体的确没 fallback 好。不过,我在 Vim 上的非 ASCII 字符 fallback 到了两个 ASCII 字符宽度的,你的好像不是,不然上面各个表头右侧怎么好像少了一个空格,也不是 CSS 样式害的……
Dec 14, 2013 05:07:44 AM
唔……发现没有一个能够很好地按两位 ASCII 字符宽度显示某些标点符号的 terminal 真是好麻烦啊。
Jan 23, 2014 08:36:29 PM
试了几下才明白要调整好第一行的格子宽度才能修正好表格 Orz
Sep 10, 2014 03:08:30 PM
上次我说的标记语言终于实现了(似乎还能改进不少),你可以参考看看。
https://github.com/jakwings/Kaj-Markup-Language
当然不是用的你喜欢的反斜杠来组成语法。