2014-01-20 60 views
2

一些試驗和錯誤我在下面的配置是最好的一個編輯降價文件Vim的硬中斷已趕到後:使用vim的自動套用格式與降價文件

setlocal formatoptions=tacqw 
setlocal textwidth=80 
setlocal wrapmargin=0 
setlocal autoindent 

這會自動重排段落硬中斷,它也適用於項目符號列表。

這裏是擦:fo=w允許您標記一條線,以便它確實而不是通過不包括尾隨空格得到迴流。除非你想在Markdown中獲得<br>,否則這在所有情況下都能很好地工作,因爲其語法包括兩個尾隨空格。

有沒有什麼辦法讓我配置vim,以便在迴流的時候獲得很好的休息時間,但是當我有兩個尾隨空格時禁用了迴流。

或者,有沒有辦法讓Markdown處理一條線,不是以空格結尾作爲換行符?

回答

0

好的,所以這裏是我自己的解決方案。不是很優雅,但是無論什麼作品:

我只是決定我會使用Vim約定(NoSpaceAtEnd == LineBreak),但在編譯之前通過sed發送我所有的降價(我在一個腳本中執行,所以它是沒有那麼多額外的工作)。基本上,sed的追加兩個空間,以在沒有空間結束(留下一個空間不變結束行)的任何行:

cat "${input}"     \ 
    | sed "s/\([^ ]\)$/\1 /" \ 
    > "${input}.preprocessed" 

pandoc -f markdown -t html -s --ascii \ 
    -i "${input}.preprocessed"   \ 
    -o "${input}.html" 

這也可以直接用管道輸送到pandoc以避免產生一個臨時文件,但由於它是該臨時文件是正確的降價,而不是我的原始文件,我認爲如果我需要將它粘貼到某個位置而不是通過pandoc運行,那將會很方便。

我仍然非常感激,接受和upvote任何替代解決方案。

0

此功能可能在您提出問題後出現,但在Pandoc的Markdown擴展版本中,您可以用\轉義換行符。所以如果你在行尾加一個反斜槓,你會在轉換爲HTML時得到一個<br> -tag。例如:

This paragraph\ 
will have hard line breaks\ 
when converted to another format with Pandoc. 

這是根據Pandoc手冊,該手冊說,在Pandoc的版本降價的所有字符can be escaped

如果你想堅持原來的Markdown而不是Pandoc的擴展版本(如果你知道你只是要轉換爲HTML),你可以直接將<br> -tag放在Markdown文件中,因爲Markdown支持inline HTML。像這樣:

This paragraph <br> 
will have hard line breaks<br> 
when converted to HTML.