我創建了以下規則:如何使VIM替代<腳本<腳本類型= 「... 」></script>
iabbrev < LT>腳本<腳本類型=「 文/ JavaScript的」> < /腳本>
但是發射VIM期間表示:
線290::
E474:處理的.vimrc檢測
錯誤無效參數
指向該行。我無法解決這個問題,好像問題出現在左邊部分,就像「腳本」是保留字一樣。 有沒有辦法逃脫它?或者我在這裏做錯了什麼?
我創建了以下規則:如何使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