在过去的几天里,我一直强迫自己从Textmate切换到Vim。 在大多数情况下,在经过一些繁重的Vim配置后,我的效率几乎相同。 我的工作流程的一个方面我没有找到替代品是将文件拖放到Textmate中,其中图像将转换为img标签,文件将转换为require调用。
如何动态构建图像标记和include / require语句?
答案 0 :(得分:8)
自切换以来,我一直在考虑自动<img>
建筑。
Vim针对问题的一部分提供了内置解决方案:omni-completion引擎允许您完成要包含的文件的路径。
如果您开始输入“类路径”字符串 - 请说<img src="images/
- 点击<C-x><C-f>
以获取可能的完成列表。加上像ACP和snipMate这样的自动完成插件,这个过程非常快。
但它对width
和height
毫无帮助。
一种可能的解决方案是将snipMate用于<img>
代码段,使用<C-x><C-f>
作为图片的路径,捕获路径并将其提供给某个命令行实用程序,填写width
和height
属性及其输出。
修改
事实证明其他人已经探索过类似的道路,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“重新编辑版本
使用:
identify
~/.vim/plugins/
中~/.vim/nerdtree_plugin
b
,在上一个窗口的光标位置粘贴几乎完整的<img src="imagename.jpg" width="128" height="256" alt="" />
标记: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“重新编辑版本