shell相关:指令篇 基础篇 脚本欣赏 编程实例 shell问问 shell视频教程 技巧篇 水平测试 E文资料 vi编辑器 高级Bash脚本编程指南
其他:mysql perl c语言
Line mode,顧名思義,就是列模式;也就是以列為單位來處理文章。早期的編輯器都是以列為單位來列印、修改文章的,而 vi 則是由一個名為 ed 的列編輯器發展出來的,所以也有對列的編輯功能。
要進入 line mode,只要在 command mode 下按【 : 】,螢幕左下角會出現 :。你的輸入都會跟在 : 的後面,當你按下【 Enter 】時 vi 才會執行你下的指令,執行以後會再回到 command mode。按【 Esc 】則會放棄你的輸入,回到 command mode。接下來的說明皆假設是在 line mode 下,一個指令的後面都要加上一個【 Enter 】。
當你輸入一個正整數 n 時,游標會跳到第 n 列。當你按 .= 時,vi 會顯示目前在第幾列。
d 刪除列,當你要刪除第二十列時,可以下指令 20d。
m 移動列,如果你要把第三列移動到第十列的後面,下指令 3m10。
co 或 t 複製列。指令 2t3 會把第二列複製放到第三列下面。
這樣一列一列的下指令實在是太慢了,我們也可以指定一個連續的範圍,例如要刪除 1~10 列,我們可以下指令 1,10d,這樣 vi 就會刪除 1~10 列。指令中的 1,10 表示從第一列到第十列,放到最前面表示要 vi 對這十列字作動作。
再例如要移動 3~10 列到第十二列的後面,就要下指令 3,10m12。
在 line mode 中,每一個指令都要告訴 vi 你要對那一列作動作,如果不指定,vi 就會對你目前游標所在的列作動作。你要處理的列數放在最前面,後面才跟著指令。列數的表示法有幾個比較重要而實用的:
/string/ 表示含有 string 的列的列數,所以指令 /HTML/= 會印出游標下面第一個含有 HTML 的列的列數。如果你下指令 /HTML/,/BODY/d,如果游標下面第一個含有 HTML 的是第 m 列,第一個含有 BODY 的第 n 列,則上述指令等於 m,nd。
讀者看到這裡,大概會認為 line mode 並沒有太大的用處,但是至少要把指定列數的方法記下來,因為下一節要說的全域代換肯定是 command mode 無法辦到的。