7

在过去的几天里,我一直在强迫自己从 Textmate 切换到 Vim。在大多数情况下,经过一些繁重的 Vim 配置后,我的效率几乎相同。我的工作流程的一个方面我没有找到替代品,就是将文件拖放到 Textmate 中,其中图像将被转换为 img 标签,文件将被转换为 require 调用。

如何动态构建图像标签和 include/require 语句?

4

1 回答 1

8

<img>自从切换以来,我一直在考虑那个自动构建。

Vim 为部分问题提供了一个内置的解决方案:omni-completion 引擎允许你完成你想要包含的文件的路径。

如果你开始输入一个“类似路径”的字符串——比如说<img src="images/——点击<C-x><C-f>可能完成的小列表。再加上像 ACP 和 snipMate 这样的自动完成插件,这个过程真的很快。

但这对widthand完全没有帮助height

一种可能的解决方案是将 snipMate 用于<img>片段,<C-x><C-f>用于图像的路径,捕获路径并将其提供给某些命令行实用程序,并用其输出填充widthand属性。height

编辑

事实证明,其他人已经探索了类似的道路,这个脚本很有趣,但它不适用于包含空格的文件路径。这是一个稍微修改过的版本,效果相当好。这另一个似乎很酷,但它缺少一个关键部分。

结束编辑

另一个编辑

我已将此片段添加到~/.vim/bundle/snipMate/snippets/html.snippets(注意之前的缩进$是 a <Tab>):

snippet img custom
  ${1:`HTML_insertImg()`}

效果很好,但在输出之前HTML_insertImg()加上0这样的:

0<img src="future_timeline.png" width="612" height="6370" alt="" />

不过这0有点问题。该系统显然并不完美,但是一旦我摆脱了这种唠叨0,它将非常适合我基于 snipMate 的其余过程。

顺便说一下,这是我使用的脚本的第二个修改版本

结束另一个编辑

加长 12" 重新编辑版本

和:

  • ImageMagick 的identify
  • HTML_insert.vim~/.vim/plugins/
  • 插入图片.vim~/.vim/nerdtree_plugin

你可以:

  • 打开NERDTree,选择一个图像并点击在上一个窗口中的光标位置粘贴b一个几乎完整的标签<img src="imagename.jpg" width="128" height="256" alt="" />
  • 或者,如果您的 Vim 风格允许,键入以打开本机文件选择对话框,选择图像并在当前窗口中的光标位置粘贴:IMG<CR>几乎完整的标签<img src="imagename.jpg" width="128" height="256" alt="" />
  • 或者,如果您在终端中,请键入:IMG path/to/file.jpg以将几乎完整的<img src="imagename.jpg" width="128" height="256" alt="" />标签粘贴到当前窗口中的光标位置

snipMate 解决方案现在还没有真正出炉。

感谢 Petr Mach 和@Matteo Riva实际完成了大部分工作。

是的,我显然不是 Vim 专家。

结束扩展 12" 重新编辑版本

于 2011-04-19T06:24:29.293 回答