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 才會沒有這個功能。
全站熱搜
留言列表