我有一些以前使用「gggqG」在vim中格式化的文本文件。現在我需要將它們轉換爲每段落格式的一行。我看到了一種方法(使用:g命令)來做到這一點,但我忘了它。有誰知道?如何在Vim中爲每個段落格式在一行中重新格式化「gq」文本
回答
有我知道有兩種方法:
設置文本寬度大的東西並重新格式化:
:set tw=1000000 gggqG
使用替代品(如果你想這樣做的,這是比較合適的映射):
:%s/.\zs\n\ze.//
說明後者的:
:%s " Search and replace across the whole file
/ " Delimiter
.\zs\n\ze. " Look for a character either side of a new-line (so ignore blank lines).
" The \zs and \ze make the replacement only replace the new-line character.
// " Delimiters and replace the new-line with a space.
也許你應該將textwidth設置爲非常大的值(如99999999)(0不起作用),並使用gggqG
?
//我不能告訴你用:g
重新格式化段落的方式,而不知道段落是什麼。也許別人可以。
如果你的文本段落是由空行分隔,這似乎工作:
:g!/^\s*$/normal vipJ
:g
全球(多重複)
!/^\s*$/
匹配所有除了空白行和只包含空格的行之外。
normal
進入 '正常' 模式
vip
直觀地選擇內段
J
聯接線
+1:這是非常接近完美。 具有零個或多個空白字符的行也可以被認爲是空的。我建議'/^\ s * $ /'。 另外請注意':v'等價於':g!' 所以你可以把你的「vim par」降到17:':v/^ \ s * $/norm vipJ'。 – Johnsyweb 2010-05-21 14:10:12
@Johnsyweb:很好。應該有一個'*'在那裏......我會更新它。感謝':v'提示。 – 2010-05-21 16:03:56
我注意到,當行已經加入時它會給出錯誤的輸出。它刪除一條空行。這不是:'%s/\(\ S \ s * \)\ n \(\ s * \ S \)/ \ 1 \ 2' – Reman 2011-04-14 06:11:19
- 1. 如何在段落中加粗(或格式化)一段文字?
- 2. vim如何重新格式化`gq`以避免觸及TeX逐字部分?
- 3. 在單個單元格中格式化多段落
- 4. 在Eclipse文本編輯器中,如何重新格式化/填充/對齊80個字符的段落?
- 5. VIM編輯器:如何在VIM中進行自動格式化?
- 6. 文本文件格式化如何使用vb.net在每行中添加空格
- 7. 如何在PDFkit中格式化文本
- 8. 如何在Java中將表格數據格式化爲文本?
- 9. sed/awk/perl格式化多個段落
- 10. 如何重新格式化文本文件中的日期C#
- 11. 在VIM中重新格式化phpStorm代碼
- 12. 在WPF RichTextBox中的段落格式?
- 13. ReportLab段落和文本格式
- 14. 如何在Eclipse PDT中重新格式化多行註釋?
- 15. 如何在php中格式化大文本字段?
- 16. 如何在文本字段中格式化java.time.LocalDate?
- 17. 重新格式化文本,每次重複
- 18. 如何重新格式化TextMate中的文本
- 19. 如何從Atlassian標記中格式化轉義一段文本
- 20. 在.txt文件中重新格式化多個日期(每個不同)
- 21. 在PHP中格式化JSON格式的文本文件
- 22. 在Crystal Reports公式字段中使用「轉換爲文本」格式化字段
- 23. 以編程方式替換段落中的格式化文本(鏈接,內容)
- 24. 如何將表格格式化爲一個格式?
- 25. 你如何在vim中設置格式?
- 26. 如何定義一個eclipse mask格式化的文本字段?
- 27. Excel行爲另一個表格的每個值格式化新值
- 28. 在Android Studio中重新格式化整個項目文件
- 29. 如何格式化UITableView中的文本?
- 30. 如何格式化html中的文本
正則表達式的方法是種模糊。但是不錯。他tw =方法贏得簡單 –
sehe
2011-04-13 18:38:38