vim图像放置

时间:2011-04-18 19:35:09

标签: image vim include include-path

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

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

1 个答案:

答案 0 :(得分:8)

自切换以来,我一直在考虑自动<img>建筑。

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

如果您开始输入“类路径”字符串 - 请说<img src="images/ - 点击<C-x><C-f>以获取可能的完成列表。加上像ACP和snipMate这样的自动完成插件,这个过程非常快。

但它对widthheight毫无帮助。

一种可能的解决方案是将snipMate用于<img>代码段,使用<C-x><C-f>作为图片的路径,捕获路径并将其提供给某个命令行实用程序,填写widthheight属性及其输出。

修改

事实证明其他人已经探索过类似的道路,this script很有意思,但它不适用于包含空格的文件路径。 Here is a slightly modified version运作得相当好。 This other one似乎非常酷,但缺少一个关键部分。

结束编辑

另一个编辑

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

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

哪个效果很好但是HTML_insertImg()的输出前缀为0,如下所示:

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

这个0虽然有点问题。系统显然不是很完美,但是一旦我摆脱了这个唠叨0,它就会在我基于snipMate的过程的其余部分中很好地适应。

顺便使用我使用的脚本here is a second modified version

结束另一个编辑

延长12“重新编辑版本

使用:

你可以:

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

snipMate解决方案目前尚未真正解决。

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

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

END EXTENDED 12“重新编辑版本