把筆記存成文字檔


將歷史存檔

是該開始用電腦來記筆記了. 我們先學如何使用 text editor 文字檔案編輯器 來閱讀/刪改一份既有的文件.

        cd ~
        ls -l
        history                 # 我曾下過那些命令?
        history > note.txt   # 我曾下過那些命令? 不要印出來, 請放入檔案裡.
        ls -l
        vim note.txt

一個命令, 本來要印到 standard output 標準輸出裝置 (用白話文講, 就是螢幕啦) 上面的資料, 可以用 output redirection 輸出重新導向 的方式 (用白話文講, 就是上面的 > 啦) 將它 "注入" 一個檔案當中 (檔名隨你取).

接下來我們就要進入 vim 這個 text editor 去好地整修一下 note.txt 檔啦. (時間不足的課程, 老師可考慮教 nano, 跳過 vim)

隨意移動, 就是不動手改

有些場合, 方向鍵及 PageUp, PageDown 等鍵可以使用; 不過為了增強我們的適應力, 學習能夠在各種艱困的環境下生存, 請習慣使用 h,j,k,l (左下上右) 移動遊標, 用 ^F^B 下翻/上翻一頁. 還有幾個鍵很好用: ^ 或 0 跳到一列的頭 (效果稍微不同), $ 跳到一列的尾. 請隨時注意右下方的三個數字, 並猜猜看它們是什麼意思?

如果你在按移動鍵 (例如 j) 之前, 先按一個數字 (一邊按, 一邊注意最下面一列的中間部分出現你按的數字), 那麼接下來的移動鍵會有 "以倍數飛躍" 的效果.

還記得上一課那個超級複雜的指令嗎? 我們要把它找出來, 記入筆記裡面去, 這樣以後要用時, 只要剪貼下來修改就好了. 請按 /rpmENTER 來搜尋. 我們下過太多 rpm 命令了, 這不是很好用的搜尋字串, 請自己想一個. 如果你按很多次 n 還會找到很多個相同的字串, 就表示你想的字串恐怕不是很好的搜尋字串. 如果沒按幾次 n 就出現 "search hit BOTTOM, continuing at TOP" 的訊息, 那就對了.

使盡各種方法, 用力刪除資料!

接下來我們想要把沒有用的部分刪除掉. 請將遊標移到 "超級複雜指令" 的下一列的頭, 然後按 x 刪除一個 character 字元. 現在猜猜看如何 "以倍數飛躍" 一口氣刪除很多個字元? 請老師不要直接告訴學生答案.

可惜 "以倍數飛躍" 的方式, 無法跨越 \n 換列字元. (\n 是我們對那個看不見的換列字元的習慣稱呼, 並不是真的有一個 \ 和一個 n) 早知道這樣, 乾脆用 d/$ENTER 一樣可以 "刪除...直到...找到一列的尾...為止".

且慢失望. 因為搜尋的方向是往下搜尋 (除非你用 ? 取代 / 那就會往上搜尋) 如果我們剛才不是搜尋一列的尾, 而是搜尋一列的頭, 不就可以讓遊標跨越 \n 了嗎? 很好, 再試試看如何用 "以倍數飛躍" 的方式, 一口氣刪除很多列. 至少有兩個不同的位置可以安插 "倍數". 沒有看清楚? 沒關係, 按 u 復原, 再試一次. [如何在 vim 裡面切換各種模式]

如果你知道想刪除的是第幾列到第幾列, 例如 3 到 17 列, 那麼這樣按比較簡單:

        :3,17d

你一按 : 就進入了 colon mode (無以名之, 就叫做冒號模式吧), 直到你把指令完整打完, 最後按 ENTER 鍵, 才又回到平常的模式.

最後還有一個清楚易用的方法: 先按 v 進入 visual mode (請注意左下角出現什麼), 然後把遊標向下隨便移幾列, 或搜尋字串. 最後按 x 或 d 看看發生什麼事? (注意左下角的東西消失了) 沒有看清楚? 沒關係, 按 u 復原, 再試一次.

好, 現在請將檔案中所有你不需要的東西全部刪除. 盡情地交替使用各種不同的刪除方式吧! 還可以看看 V 模式及 ^V 模式的效果, 與剛才的 v 模式有何不同.

破壞夠了, 該開始建設了吧?

接下來你想加入什麼東西? 中文解釋? 你的名字? 今天的日期? 請自己決定. 記得這將是你的筆記, 最好寫得有條有理, 方便自己將來查閱. 把遊標移到你想插入新資料的地方. 如果想在這個字之前插入, 就按 i 如果想在這個字之後插入, 就按 a 注意左下角出現什麼. 一直打到你高興為止, 最後按 ESC 鍵回到平常的模式. 打錯字可以按 BS 鍵 (就是 ENTER 上面的 BackSpace) 修改, 或按 ESC 鍵回到平常的模式再刪改.

隨時記得用 :w 命令存檔, 以免辛苦許久的心血隨著突然來的停電而泡湯. 最後用 :wq 命令再存一次並離開.

進階參考資料

  1. 大家來學 vim
  2. 執行 vimtutor

新命令索引

history, vim