2013-10-06 51 views
1

在降價文件中創建清單時,我想在按<CR>時插入新項目。我想要將 應用於有序列表和無序列表。這意味着,在有序列表中, 列表項號將自動遞增。另外,如果我在沒有 內容的列表項目上按<CR>,我想刪除該項目並添加一個新行,基本結束列表;這是當前行爲 。Vim中的降價清單

我成功地實現了一些,我想感謝this StackOverflow question 與此自動功能:

autocmd Filetype markdown setlocal com=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,b:- | set formatoptions=tcroqln 

但是,自動命令不能與有序列表工作並沒有結束列表時<CR>是在空白列表項上按 。

是否可以添加這兩個功能?

回答

0

要處理有序列表,您可以像對待-印記一樣對待它們,只需添加:setlocal com+=b:1.這不會自動遞增,但我認爲Markdown會在呈現列表時爲您執行此操作。

沒有用於結束列表的內置邏輯,但只需按<C-U>即可刪除自動插入的註釋。如果這不夠好,映射可以檢測到這種情況(通過在...部分中調用的函數),然後自動刪除它。

+0

感謝您的回答。這可能是夠好的,但沒有辦法自動遞增有序列表?也許通過一個函數而不是使用Vim的註釋功能? –

+0

我不知道任何內置的自動增量;你可以將它建立到我暗示的''映射中。你爲什麼不對所有列表項目使用'1';這使得在線周圍洗牌變得更容易。 –

+0

我是一個完美主義者。增加數字更具可讀性。我一直在努力編寫一個函數來完成它,但我幾乎不知道vimscript,所以我很難做到這一點。但無論如何我會接受你的答案,我會盡力自己做額外的工作。 –

1

Bullets.vim是一個插件,它比修改comments命令更容易。

https://github.com/dkarter/bullets.vim

您可以通過鍵入插入一個項目符號列表「 - 」組成,下面一行將自動插入一個子彈。

您也可以通過輸入「1.」插入一個編號列表,隨後的行將按順序自動編號。

自述:

Bullets.vim是一個Vim插件自動項目符號列表。

使用

在降價或文本文件中使用啓動項目符號列表 - 或*。按 返回到下一行,將創建一個新的列表項目。