如何使VIM替代<脚本<脚本类型= “... ”>
我创建了以下规则:如何使VIM替代<脚本<脚本类型= “... ”></script>
iabbrev < LT>脚本<脚本类型=“ 文/ JavaScript的”> < /脚本>
但是发射VIM期间表示:
线290::
E474:处理的.vimrc检测
错误无效参数
指向该行。我无法解决这个问题,好像问题出现在左边部分,就像“脚本”是保留字一样。 有没有办法逃脱它?或者我在这里做错了什么?
感谢@乔恩HORSTMANN和@詹姆斯维加(从VIM-dev邮件列表)的问题可能得到解决:只需添加<
到“iskeyword”选项,例如使用
set iskeyword+=60 " 60==char2nr("<")
请注意'iskeyword'选项用于很多动作,所以这可能会导致一些负面影响。
这是有效的,太棒了! :) 很酷,有一个学术解决方案,不好,它是如此之深,有副作用。不过非常感谢您的帮助! – 2010-06-30 19:04:39
考虑使用类似SnipMate:http://www.vim.org/scripts/script.php?script_id=2540
然后你有很多宏已经在手,例如
snippet script
<script type="text/javascript" charset="utf-8">
${1}
</script>${2}
在html.snippet
使用它,类型在插入模式执行以下操作:script<TAB>
- 的剪断将被插入(不${n}
件),并且光标会里${1}
了。键入您的代码,然后再按<TAB>
(仍处于插入模式),并且光标将在</script>
之后。
在许多语言中,有很多Snipmate附带的片段。而且创建自己的片段也非常简单。
谢谢暗示!请看看这个。 – 2010-06-30 12:27:48
经过几次trys和阅读文档,我不认为这种映射是可能的。从:help abbreviations
举例:
有三种类型的缩写:
全ID的“全-id”类型完全由关键字字符(字母 和人物从“iskeyword”选项)。这是最常见的 的缩写。
Examples: "foo", "g3", "-1"
端-id,将“终端ID”类型中的关键字字符结尾,但所有其它 字符不是关键字的字符。
Examples: "#i", "..f", "$/7"
非标识符在非关键字字符“非-id”类型结束时,其它 字符可以是任何类型,但不包括空间和标签。 {这种类型 Vi不支持}
Examples: "def#", "4/7$"
例子字符串,不能缩写: “AB”, “#def”, “AB”, “_ $ r” 仅
所以像<script
这样的缩写似乎是不可能的。当然,你可以定义一个缩写script
这样的:
:inoreabbrev script <script type="text/javascript"></script>
这样左括号不是缩写的一部分,所以它也不会在扩展需要。唯一的问题是,当你想写文本script
时你必须小心。在这种情况下,您必须在字中间切换为插入模式,或者输入script<C-V><space>
。
另一个有用的技巧将光标放置在标签之间是这样的映射,它向后跳转到前开口支架:
:inoreabbrev script <script type="text/javascript"></script><C-O>F<
或者,放置在不同行的代码与之间的光标其中:
:inoreabbrev script <script type="text/javascript"><CR></script><C-O>O
只需用两个字符工作在gVim的(不知道为什么):
:iab <s <script>
打字“
提起这VIM-dev邮件列表希望他们能解决它在未来的某个构建 – ZyX 2010-06-30 12:31:27