怎麼用 vimscript 來處理這種文字

時間 2021-05-09 20:11:23

1樓:Guaidaodl

看了 @zecy 的答案, 學到了 \zs 這個轉義符.

:%s/\(.\)\n\(.\)/\1\2/g通常合併行以後會在中間插入乙個空格.

:%s/\(.\)\n\(.\)/\1 \2/g用上 \zs 分割符後就變成

:%s/.\zs\n\(.\)/\1/g

2樓:

沒有那麼複雜,一條命令就夠了。

:%s/.\zs\n//g

我們先來分析一下需求中的文字。

修改的需求是合併文字行,也就是要把相鄰文字行的換行符都刪掉。問題就是怎麼只刪文字行而不會影響到空行。

很容易想到構建類似的命令:

:%s/\zs\n//g

那這要什麼內容呢?直接用.就可以了,因為.不會匹配到行尾符$,所以不會把相鄰空行也合併進去。

\zs是 vim 用於匹配替換起始位置的元字元,意思是替換從\zs往後才開始。

整個命令的意思就是,找到乙個非空行,然後將該行的換行符刪掉。

你可以加上c標記來觀察這命令是怎麼執行的。

:%s/.\zs\n//gc

了解每個部分的含意:

:help :s

:help /.

:help /\zs

:help /\n

:help :s_flags

怎麼用情商來處理這件事?

趙老三 越忍越沒辦法發火。乙個人如果平常在單位是說話直爽且業務能力過硬的,大家都會佩服他說他耿直。但是如果是一開始什麼都忍了,某天突然發火,大家就會說他這人脾氣不受控。適當的發洩,讓人們對你情緒忍耐度的閾值提高,是情商的一種重大表現。這件事,在領導斡旋下,解決了不代表你必須一開始就要不做聲,你應該當...

用機器學習的方法來處理大資料,是直接學 Spark,還是重點學習 Hadoop,了解 Spark?

stucou 搞機器學習重點是機器學習演算法和它背後的數學,底下分布式框架一波一波換,機器學習演算法原理變化不大 其次是分布式計算模型下如何實現這些演算法,有什麼限制 再其次是hadoop和spark這些分布式框架本身的設計和實現。 王二 spark吧,hadoop了解下就行,現在各大網際網路公司,...

如果讓蝙蝠俠來處理電車難題,他會怎麼做決定(增加難度)?

Barry 吳 那肯定小丑在火車頭,綁乙個人那邊肯定通到哥譚的重要地點,這樣的話車上肯定還有一堆人或者一堆炸彈。綁五個人那邊要麼脫軌要麼通到懸崖下面。那六個人不用說,啃腚是小丑手下綁的辣。就按一車炸彈來假設吧。小丑說 蝙蝙,你說攆一人來炸瘋人院好呢,還是攆五人來把炸彈清到懸崖下好呢?蝙蝠俠 淦! 電...