天天看點

linux vi 中文亂碼_Linux之vim詳解

vim

一、vim使用介紹

介紹

在linux系統中,大部配置設定置檔案都是ASCII的純文字形式存放的,是以我們在修改系統設定的時候使用簡單的文本編輯軟體就可以實作了,如果你使用過windows當中的word的話,那麼你可能會感覺linux字元界面的文本編輯工具并不是太好用,畢竟沒有圖形視窗,看着不會太舒服。但是既然要學習linux,掌握并熟練使用文本編輯工具是必不可少的技能,在linux當中的文本編輯工具有很多,如emacs pico nano joe vi/vim 等等

既然有這麼多文本編輯工具,為什麼要學習vi/vim呢?

為什麼要使用vim?

雖然在linux下的文本編輯器衆多,這些工具都有各自的優點,但是有幾點是其它編輯工具所不能比拟的

1 所有的類Unix系統都内建vi,其它的編輯工具則不一定,而vim相當于是vi的更新版

2 很多軟體的編輯界面都會調用vi,如後面提到的crontab、edquota等

3 vim具有程式編輯能力,可以主動以字型顔色辨別文法的正确性,友善代碼編寫

4 程式簡單,編輯速度非常快

綜上所述這是一個老式的文字處理工具,但是功能很齊全,不僅是文本處理工具,還是一個程式編輯工具,就連官方網站也說vim是一個程式開發工具而不是文字處理軟體,因為它包含了很多額外的功能,如:多檔案編輯,區塊複制等,這些功能讓我們在進行配置檔案修改的時候會更友善。

介紹就到這裡,我們來看一下基本使用

二、基本使用

由于vi/vim是一個全螢幕的文本編輯器,它工作在三種模式下:分别是指令模式、輸入模式和末行模式。可以分别從指令模式切換到輸入模式和末行模式,也可以從末行模式或輸入模式切換到指令模式,但是輸入模式與末行模式之間不能互相切換。

linux vi 中文亂碼_Linux之vim詳解

第一種:指令模式,當我使用“vim myfile”指令打開myfile這個檔案時就處于指令模式,螢幕左下角為檔案名(myfile),1L 表示本檔案有1 行,26C 表示此檔案有26 個字元。1,25表示光标目前位置,在此模式下使用者可以輸入指令來進行檔案存盤、移動光标、删除字元、撤消指令和重複指令等操作,還可以設定編輯環境。

this 
           

第二種:插q入模式,又叫輸入模式。在輸入模式下,螢幕的左下方會出現INSERT (插入)字樣。在輸入狀态下,使用者可以輸入文本的内容。

this 
           

第三種:末行模式。隻要在指令模式下輸入指令“:”即可進入末行模式。在末行模式下,可以進行儲存檔案、退出vi、進行查找和替換等操作。

this 
           

三種模式介紹完了,我們看下vim的使用,這裡面我們還是按照三種模式來對vim的使用進行說明

指令模式可以使用的按鍵說明

光标控制按鍵
linux vi 中文亂碼_Linux之vim詳解

搜尋與替換
linux vi 中文亂碼_Linux之vim詳解
linux vi 中文亂碼_Linux之vim詳解

删除與複制粘貼
linux vi 中文亂碼_Linux之vim詳解
從指令模式進入輸入模式
linux vi 中文亂碼_Linux之vim詳解
從指令模式進入到末行模式
linux vi 中文亂碼_Linux之vim詳解

三、額外功能

區塊選擇
linux vi 中文亂碼_Linux之vim詳解
多檔案編輯
linux vi 中文亂碼_Linux之vim詳解
多視窗編輯
linux vi 中文亂碼_Linux之vim詳解
環境變量與記錄

.viminfo:記錄使用者的行為,之前編輯過的檔案光标在什麼位置,在這個檔案中進行過什麼操作等,自動建立

.vimrc:定義vim的預設設定,如是否顯示行号等,需要手動生成

linux vi 中文亂碼_Linux之vim詳解
密碼設定與取消

加密

vim 
           

取消密碼

1
           
vim插件
1
           
vimdiff&vimtutor

vimdiff:編輯兩個或者更多個檔案并顯示不同

vimtutor:一條神奇的指令

四、使用中的注意事項

由于個别版本的linux預設隻安裝vi,是以你需要額外安裝vim的軟體包,如何安裝軟體包我們會在後續的課程中講解,另外vim在字元界面下不能輸入中文,而在圖形界面下能否輸入中文則取決于系統中是否安裝了中文輸入法

字元差異

由于linux和windows的系統差異,它們針對于檔案的中的一些特殊符号表示方式也是不同的,比如說用來表示換行的符号等,如

[
           

如果這種檔案是從windows拷貝到linux的一本小說的話,基本沒什麼問題,但是如果是一個我們需要執行指定工作的shell腳本就會出現問題,因為linux不認識這種符号的含義,就會導緻shell腳本無法執行。是以此時我們就要對這種檔案進行處理

[
           
linux vi 中文亂碼_Linux之vim詳解