1. 程式人生 > >文字編輯器VIM

文字編輯器VIM

前言:

最近整理一些以前的學習筆記。
過去都是儲存在本地,此次傳到網路留待備用。\


 

VIM

  • VIM是VI編輯器的強化版
  • VIM具有程式編輯的能力,可以主動的以字型顏色辨別語法的正確性,方便程式設計
  • 支援補全(ctrl+p , ctrl+n)

 

vim鍵盤圖

 

vim的使用

  • vim命令的使用

    • 語法:
      vim [選項] [檔案 ..]       編輯指定的檔案
      vim [選項] -               從標準輸入(stdin)讀取文字
      vim [選項] -t tag          編輯 tag 定義處的檔案
      vim [選項] -q [errorfile]  編輯第一個出錯處的檔案
      ps:
         -若目標檔案不存在,則新建空檔案並編輯,不能在未建立的目錄下儲存
         -若目標檔案已存在,則開啟此檔案並編輯
      
    • 選項:
      +                       啟動後跳到檔案末尾
      +<lnum>                 啟動後跳到第 <lnum> 行
      -P[N]                   開啟 N 個標籤頁 (預設值: 每個檔案一個)
      -o[N]                   開啟 N 個視窗 (預設值: 每個檔案一個)
      -O[N]                   同 -o 但垂直分割
      --noplugin              不載入 plugin 指令碼
      --                      在這以後只有檔名
      -v                      Vi 模式 (同 "vi")
      -e                      Ex 模式 (同 "ex")
      -E                      Improved Ex mode
      -s                      安靜(批處理)模式 (只能與 "ex" 一起使用)
      -d                      Diff 模式 (同 "vimdiff")
      -y                      容易模式 (同 "evim",無模式)
      -R                      只讀模式 (同 "view")
      -Z                      限制模式 (同 "rvim")
      -m                      不可修改(寫入檔案)
      -M                      文字不可修改
      -b                      二進位制模式
      -l                      Lisp 模式
      -C                      相容傳統的 Vi: 'compatible'
      -N                      不完全相容傳統的 Vi: 'nocompatible'
      -V[N][fname]            詳細模式 [冗餘級別 N] [輸出日誌訊息到fname]
      -D                      除錯模式
      -n                      不使用交換檔案,只使用記憶體
      -r                      列出交換檔案並退出
      -r (跟檔名)            恢復崩潰的會話
      -L                      同 -r
      -A                      以 Arabic 模式啟動
      -H                      以 Hebrew 模式啟動
      -F                      以 Farsi 模式啟動
      -T <terminal>           設定終端型別為 <terminal>
      -u <vimrc>              使用 <vimrc> 替代任何 .vimrc
      --cmd <command>         載入任何 vimrc 檔案前執行 <command>
      -c <command>            載入第一個檔案後執行 <command>
      -S <session>            載入第一個檔案後執行檔案 <session>
      -s <scriptin>           從檔案 <scriptin> 讀入正常模式的命令
      -w <scriptout>          將所有輸入的命令追加到檔案 <scriptout>
      -W <scriptout>          將所有輸入的命令寫入到檔案 <scriptout>
      -x                      編輯加密的檔案
      --startuptime <file>    Write startup timing messages to <file>
      -i <viminfo>            使用 <viminfo> 取代 .viminfo
      -h  或  --help          列印幫助(本資訊)並退出
      --version               列印版本資訊並退出
      
  • VI/VIM的工作模式

    • 命令模式(Command mode)
    • 輸入模式(Insert mode)
    • 末行模式(Last line mode)
  • 命令模式:

    • 啟動vim後預設進入命令模式
    • 批量註釋:
      ctrl + v        進入可視塊,選中需要註釋的行
      I               進入輸入模式,並跳轉到檔案頭
      #               註釋
      ESC             按兩次,結束
      
    • 命令模式下敲擊鍵盤會被識別為命令,而非輸入字元,如: 字元 | 意義 | ------------ | ------------ | i | 切換到輸入模式 I | 切換到輸入模式,並跳轉到檔案頭 a | 切換到輸入模式,並跳轉到當前游標的下一個字元 A | 切換到輸入模式,並跳轉到當前游標所在行末尾的下一個字元 o | 切換到輸入模式,並在當前游標所在行下插入一行且跳轉 O | 切換到輸入模式,並在當前游標所在行上插入一行且跳轉 : | 切換到末行模式 h,j,k,l | 移動游標 左,下,上,右 yy | 複製游標當前所在的一行 nyy | 複製n行 p | 貼上到當前游標的下一行 P | 貼上到當前游標的上一行 dd | 刪除游標當前所在行 ndd | 刪除n行 D | 刪除游標所在行的內容 nD | 刪除n行 gg | 移動游標到檔案頭 ngg | 移動游標到n行 G | 移動游標到檔案尾 nG | 移動游標到n行 x | 刪除當前游標下的字元 u | 撤銷一步 ^ | 游標跳到行首 $ | 游標跳到行尾 d^ | 刪除到行首 d$ | 刪除到行尾 ZZ | 儲存並退出
  • 輸入模式(插入模式):

    按鍵 | 意義 | ------------ | ------------ | HOME/END | 移動游標到行首/行尾 Page Up/Page Down | 上/下翻頁 Insert | 切換游標為輸入/替換模式,游標將變成豎線/下劃線 ESC | 退出輸入模式,切換到命令模式

  • 末行模式:

    字元 | 意義 | ------------ | ------------ | :n | 切換到下一個檔案 :N | 切換到上一個檔案 :w | 儲存 :wq | 儲存當前檔案並退出 :q | 退出 :q! | 強行退出且不儲存 :sp | 分屏顯示(ctrl+w+上下切屏) :r 檔案路徑 | read檔案到當前檔案所在游標的下一行 :w 檔案路徑 | 另存為 :s/舊/新/ | 新替換舊的內容,游標所在行的第一個匹配 :s/舊/新/g | 新替換舊的內容,游標所在行的所有內容匹配 :%s/舊/新/ | 新替換舊,所有行的第一個匹配 :%s/舊/新/g | 新替換舊,所有行的所有內容 :n,ms/舊/新/g | 替換第n到m行的所有內容 :set nu | 顯示行號 :set nonu | 不顯示行號 :set paste | 貼