好吧,我原來只想換了vim以後,開始學習HTML5的,但是配置vim插件的時候,遇到一些問題。找了好幾個類似closetag的插件,要不然就是不是很好用,要不然就是和其他插件有那麼點小衝突。最後還是決定自己增強一下。
選的closetag插件是http://www.vim.org/scripts/script.php?script_id=13 ,它默認支持的close行爲是按ctrl+_,而且閉合後光標在行末,而不是標籤之間。
我想增加的功能有2個,一個是在輸入<tag></ 後自動關閉標籤,另一個是關閉標籤後光標返回到<tag>#cursor# </tag>標籤中間,然後可以繼續寫代碼。功能很簡單,但是由於第一次寫vim腳本,內置函數和代碼格式都不是最清楚,稍微花了點時間。
在closetag.vim最後加上如下代碼即可。
""""""""""""""" add by kenshin """"""""""""""""
"to store cursor Position
let s:cursorPos = 0
"support </ close tag
function! EasyCloseTag()
let line = getline(".")
let length = strlen(line)
let lastChar = strpart(line,length - 1)
if lastChar == "<"
let tag = GetLastOpenTag("b:unaryTagsStack")
if tag == ""
return ""
else
let s:cursorPos = col(".") - 1
return "/".tag.">"
endif
else
return "/"
endfunction
"set cursor to <tag>#cursor#</tag>
function! SetCursor()
if s:cursorPos != 0
let lineNum = line(".")
call cursor(lineNum, s:cursorPos)
let s:cursorPos = 0
endif
return ""
endfunction
"set up key '/' to trigger closeTag and setCursor function
inoremap / <C-R>=EasyCloseTag()<CR><C-R>=SetCursor()<CR>