第十章:vim程式編輯器
阿新 • • 發佈:2019-01-03
vi 文字編輯器 vim是高階的vi
一、vi與vim
1.1、為什麼要學vim
- 很多Unix Like都內建了vi + 很多程式編輯軟體都會呼叫vi + vi具有程式編輯能力
- vi 是文字編輯器 vim是高階的vi,可以是一個程式開發工具
- vim很根據副檔名或者檔案內的開頭資訊自動呼叫該程式的語法判別式。
1.2、vi的使用
vi共有三種模式:一般模式、編輯模式、命令列模式
1、一般模式:用vi開啟一個檔案就進入一般模式了(預設的模式)
2、編輯模式
3、命令列模式:一般模式下輸入“: / ?”三個中的一個進入命令韓模式三種模式的轉換關係
- 編輯模式與命令列模式不能直接切換
2.1、簡單執行範例
- 使用vi進入一般模式
1、vi test.txt:新建(開啟)檔案test.txt - i進入編輯模式
- ESC從編輯模式進入一般模式
- 一般模式輸入:wq儲存後離開vi,強制寫入wq!
2.2、按鍵說明
- 一般模式可用的按鍵說明:P278,以下為常用的按鍵
1、ctrl + f == page down、ctrl + b == page up
2、0==home、$ == end
3、G:移動到檔案的最後一行、gg:移動到檔案的第一行
4、/?word:向下(上)查詢關鍵字word,n/N為重複查詢上一次的/?
5、:1,¥s/word1/word2/g(c):全文替換(顯示確認)
6、xX:向後/向前刪除一個字元
7、dd:刪除貫標所在的一行,n(數字)dd,同理yy是複製,nyy
8、pP:在游標的下一行/上一行貼上
9、u:復原前一個操作,即撤銷,Ctrl + r:重複上一個操作 - 一般模式切換到編輯模式
1、i I/a A/o O:進入插入模式
2、r R:進入替換模式 - 一般模式切換到命令列模式
1、:w:寫入(儲存),w!:強制寫入
2、:q:離開vi(不儲存),:q!也不儲存
3、:wq:儲存後離開,:wq!:強制儲存後離開
4、:w 檔名:另存為
2.4、vim的儲存檔案、回覆與開啟時的警告資訊
- 使用vim編輯檔案的時候,會自動建立一個.filename.swp的暫存檔案用於資料恢復。
- 例如在用vim編輯檔案時非法斷電了,在此vi開啟該檔案會有相應的提示資訊:
1、可能有多個使用者同時在編輯該檔案
2、vim直接crash,該問題常見的處理方法為:按R(recover)鍵載入.filename.swp暫存檔案進行資料恢復,恢復後按D(delete)手動刪除該暫存檔案。
3、對暫存檔案的其它操作:
①、O(open read-only):開啟並只讀
②、E(edit anyway):正常開啟該檔案 並且編輯
③、R
④、D
⑤、Q(quit):離開
⑥、A(abort):忽略這個資訊,與Q類似
三、vim的功能
- 大部分的distributions中vi都被vim替代了,alias中vim=vi,即執行vi即是執行vim,vim添加了顏色顯示功能,並且支援很多程式語法
3.1、塊選擇(visual block)
- 對塊進行操作:v字元選擇、V行選擇、Ctrl + v塊選擇、y複製選擇(反白)部分、d刪除
3.2、多文字編輯
- :n、:N、:files:編輯下一個檔案、編輯上一個檔案、列出vim編輯的所有檔案
3.3、多視窗功能
- 將一個檔案切割成多個視窗進行展示:sp filename,如果沒filename則切割開啟的檔案、如果有filename,則多視窗顯示本檔案和filename
- ctrl + w + j/下箭頭(k/上箭頭):(前兩個鍵先按,後一個鍵鬆開前兩個鍵再按)游標移動到下方/上方的視窗。
- ctrl + w + q:結束視窗
3.4、vim環境設定與記錄
- vim會將使用者的相關操作記錄下來(例如有些distribution在查詢字元反白後,下次編輯還會反白 + 游標定位在上一次退出的位置),對應的檔案為~/.viminfo,使用vim會自動產生
- 設定vim編輯器的相關檔案/etc/vimrc,但是不建議修改。
四、vim使用的注意事項
4.1、中文亂碼問題
4.2、Dos與Linux的斷行字元
1、兩者的斷行字元不一樣(換行?),解決方法,進行格式轉換,使用UNIX2dos或dos2UNIX進行轉換。
4.3、語系編碼的轉換
- 語系編碼的轉換,例如將big5編碼轉換成utf8,。可以使用iconv這個命令