我知道在vim中通過編譯命令sort
可以很容易地進行排序操作。 但如何水平排序該行內的一行和文本?VIM中的排序行(水平)
例如從這一點(aaa ccc bbb)
到這個(aaa bbb ccc)
我試過vi(:sort
但它沒有幫助我。有什麼建議麼?
我知道在vim中通過編譯命令sort
可以很容易地進行排序操作。 但如何水平排序該行內的一行和文本?VIM中的排序行(水平)
例如從這一點(aaa ccc bbb)
到這個(aaa bbb ccc)
我試過vi(:sort
但它沒有幫助我。有什麼建議麼?
:s/\s\+/\r/g " break the line into multiple ones
:'[,sort " sort them
:,']j " join them
+1,但我不得不刪除'*'使其工作。 '*'匹配所有字符,而不僅僅是重複'\ s'。我認爲這可能是一個設置,但用'-u NONE'開始vim也沒有幫助。使用'\ v \ s +'爲我工作。我最終使用的命令是'/ \ v \ s +/\ r/g |'[,sort |,'] j' – 2014-11-04 21:25:20
@LievenKeersmaekers,您對'*'說得對,感謝您發現我的錯誤。實際上,'\ s *'不匹配所有字符:匹配*零個或多個*空白字符,這是一個零寬度匹配,對應於字符之間的每個「空格」。發佈答案時,我清楚地思考了其他事情。 – romainl 2014-11-04 21:50:13
哈哈,謝謝,但我沒有發現任何東西。我實際上認爲這是我*(最近改變)* vim安裝的一個錯誤。 – 2014-11-04 22:50:38
這不是微不足道的,但是,是的,人們總是可以將行分成許多行,排序並組成單行。
這link可能是
它是否幫助有用嗎? http://stackoverflow.com/questions/1327978/sorting-words-not-lines-in-vim – freude 2014-11-04 16:14:42