close

最近 bbs 全國連線版突然又開通了。本來是停了好久都不會轉信,現在是「暫時」會轉信了。不過,不知道哪時候又會停(最近幾年停停連連一直在持續中)。不過,bbs 除了 ptt 外,大概也死得差不多了……

在 Linux 版有人問到 Vim 相關的問題,好奇之下就打開一看,原來是問一個高級連接(join)的問題,原問題是這樣,文章內容如下:

AAAA
BB
CCCC
BBDDDDD
EEE
BBBBBBAAASSSS

要將文章中以 BB 開頭的那一列接到上一列去,就是要變成:

AAAABB
CCCCBBDDDDD
EEEBBBBBBAAASSSS

通常我們連接是正向連接,就是把游標所在處下一列連上來,但這個問題是要把游標所在處的那一列連到上一列去,Vi 的連接指令是 join,要逆向的話,前面加個負號就可以了,所以我們該下的指令是(這裡都使用簡寫,例如 j 就是 join):

:g/^BB/-j!

最後那個 ! 是要 Vim 不要調整連接時的空白(Vim 會視文章的情形調整空白,例如連接上來的是 word 為首的話,會自動加入一個空白,游標所在處最後是句點(文章結尾),那麼會自動加入二個空白)。! 的作用就是不要這些空白。

當然有人說原始 Vi 沒有這個功能,問題是,現在還有人在用原始 Vi 嗎?連 BSD 系統附上去的 nvi 都支援這個功能的,可能是用到簡潔版的 vi 才會沒有這個功能。

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Qtnez 的頭像
    Qtnez

    Qtnez's Blog

    Qtnez 發表在 痞客邦 留言(0) 人氣()