Cody Blog

Software development

Using vim as a man-page viewer under Linux

If you use bash, just add the following script in your ~/.bashrc:

export PAGER="/bin/sh -c \"unset PAGER;col -b -x | \
    vim -R -c 'set ft=man nomod nolist' -c 'map q :q<CR>' \
    -c 'map <SPACE> <C-D>' -c 'map b <C-U>' \
    -c 'nmap K :Man <C-R>=expand(\\\"<cword>\\\")<CR><CR>' -\""

Compare with the original Main

Main

Main in VIM has good looking with syntaxheight.

Man in VIM

Reference:

Bash Shell 快速鍵 (emacs-style)

執行/中斷/輸入

  • Ctrl-C: 終止正在執行的程式
  • Ctrl-L: 清除Terminal畫面,同clear指令
  • Ctrl-Z: 將該工作放到背景中暫停, 使用jobs看工作號碼(job number), fg 取回
  • Ctrl-J: Enter,不用離開鍵盤,還不錯

進階

  • Ctrl-D: 離開 Shell
  • Ctrl-x, Ctrl-e 開啟vim,可一起執行多個指令
  • Ctrl-V TAB: 輸入 TAB,而不是命令列擴展
  • Ctrl-V: 加上要輸入特殊字元, ex: Ctrl-V Ctrl-D 會出現 ^D

移動

  • Ctrl-A: 回到此行最前面(同Home鍵)
  • Ctrl-E: 到此行的最後面(同End鍵)
  • Ctrl-F: 游標向後移動一格(不想要用arrow key時可多加利用)
  • Ctrl-B: 游標向前移動一個(不想要用arrow key時可多加利用)
  • Alt-B: Back(left) one word
  • Alt-F: Forward(right) one word

查找

  • Ctrl-N: 找下個指令(同下箭頭)
  • Ctrl-P: 找上個指令(同上箭頭)
  • TAB: 擴展要輸入的檔案到命令列上(上/下箭頭: 開始搜尋過去的命令)
  • Ctrl-R: 打關鍵字搜尋過去的命令, 搭配 Ctrl-r/Ctrl+Shift+r,可來回尋找

進階

  • Ctrl-I: 同 Tab
  • Ctrl-S: 暫停輸出到畫面上,讓stdout定格(搭配Ctrl-Q使用)
  • Ctrl-Q ...