Linux vim 使用
分別是一般模式、編輯模式和命令行模式
一般模式:
以vi打開一個文件就直接進入一般模式了(這是默認的模式)。
可以使用上下左右按鍵來移動光標,可以使用刪除字符或刪除整行來處理文件內容,也可以使用復制、粘貼來處理你的文件數據。
編輯模式:
在一般模式中可以進行刪除、復制、粘貼等的操作,但是卻無法編輯文件的內容,只有當到你按下:i, I, o, O, a, A, r, R等任何一個字母之後才會進入編輯模式。屏幕的左下方會出現INSERT或 REPLACE的字樣,此時才可以進行編輯。而如果要回到一般模式時, 只要按下Esc即可退出編輯模式。
命令行模式:
輸入 : / ? 三個中的任何一個,就可以將光標移動到最底下那一行。在這個模式中,可以提供查找、讀取、存盤、替換字符、離開
一般模式可用的按鈕說明
移動光標
【h、j、k、l】,分別控制光標左、下、上、右移一格
按【ctrl+b】屏幕往"後"移動一頁
按【ctrl+f】屏幕往"前"移動一頁
【n<space>】光標向右移動n個字符
【Home】移動到這一行的最前面字符處
【0】數字 ,同上
【End】 移動到這一行的最後面字符處
【$】字符 ,同上
【w】光標跳到下個字的開頭
【e】光標跳到下個字的字尾
【H】 光標移動到這個屏幕的最上方那一行的第一個字符
【M】 光標移動到這個屏幕的中間那一行的第一個字符
【L】光標移動到這個屏幕的最下方那一行的第一個字符
【G】 移動到這個文件的最後一行
【nG】移動到這個文件的第n行(可配合:set nu)
【gg】 移動到這個文件的第一行,相當於1G
【n<Enter>】光標向下移動n行
查找與替換
【/word】 向光標向下尋找一個名稱為word的字符串
【?word】 向光標向上尋找一個名稱為word的字符串
【n】 代表重復前一個查找的動作?
【N】 與n剛好相反,為【反向】進行行前一個查找動作?
【:n1,n2s/word1/word2/g】 n1與n2為數字,在第n1與n2行之間查找word1 這個字符串,並將該字符串替換為word2
【:1,$s/word1/word2/g】 從第一行到最後一行查找
【:1,$s/word1/word2/gc】 從第一行到最後一行查找word1字符串,並將該字符串替換為word2 ,且在替換前提示用戶確認是否進行替換
刪除、復制與粘貼
【x】 為向後刪除一個字符 (相當於【del】鍵)
【X】 為向前刪除一個字符(相當於【backspace】鍵)
【nx】 連續向後刪除n個字符
【dd】 刪除光標所在行
【ndd】 刪除光標所在的向下n行
【d1G】 刪除光標所在行到第一行的所有數據
【dG】 刪除光標所在到最後一行的所有數據
【d0】 刪除光標所在處,到該行的最前一個字符
【d$】 刪除光標所在處,到該行的最後一個字符
【yy】 復制光標所在的那一行
【nyy】 復制光標所在的向下n列
【y1G】 復制光標所在行到第一行的所有數據
【yG】 復制光標所在行到最後一行的所有數據
【y0】 復制光標所在的那個字符到該行行首的所有數據
【y$】 復制光標所在的那個字符到該行行尾的所有數據
【p】將已復制的數據在光標下一行粘貼上
【P】 則為貼在光標的上一行
【u】 恢復前一個操作
【.】 是重復前一個操作
【:w】 保存編輯的內容
【:w!】強制寫入該文件,但跟你對該文件的權限有關
【:q】 離開vi
【:q!】 不想保存修改強制離開
【:wq】 保存後離開
【:x】 保存後離開
【ZZ】 若文件沒有更動,則不保存離開,若文件已經被更改過,則保存後離開
【:w filename】 將編輯的數據保存成另一個文件(類似另存)
【:r filename】 在編輯的數據中,讀入另一個文件的數據。即將【filename】 這個文件的內容加到光標所在行後面。
【:n1,n2 w filename】 將n1到n2的內容保存成filename這個文件。
【:! command】暫時離開vi 到命令行模式下執行command的顯示結果!例如 【:! ls /home】即可在 vi 當中察看/home底下以ls輸出的文件信息!
【:set nu】 顯示行號
【:set nonu】 與 set nu 相反,為取消行
【v】字符選擇,會將光標經過的地方反白選擇
【V】 行選擇,會將光標經過的行反白選擇
【Ctrl+v】 塊選擇,可以用長方形的方式選擇資料 (提制豎列)
【y】 將反白的地方復制
【d】 將反白的地方刪除
多文件編輯
【vim file1 file2】
【:n】編輯下一個文件
【:N】編輯上一個文件
【:files】列出目前這個vim編輯的所有文件
多窗口功能
有兩個需要對照著看的文件
【:sp filename】開啟一個新窗口,如果有加 filename, 表示在新窗口開啟一個新文件,否則表示兩個窗口為同一個文件內容(同步顯示)。
【ctrl+w+j】
【ctrl+w+↓】按鍵的按法是:先按下 【ctrl】 不放, 再按下 w 後放開所有的按鍵,然後再按下 j (或向下箭頭鍵),則光標可移動到下方的窗口。
【ctrl+w+k】
【ctrl+w+↑】同上,不過光標移動到上面的窗口。
vim的環境設定參數,想要知道目前的設定值,可以在一般模式時輸入【 :set all】來查閱,
:set all "顯示目前所有的環境參數設定值
:set hlsearch "高亮度反白(高亮度搜尋)
:set nohlsearch "取消高亮度反白(高亮度搜尋)
:set backspace=2 "在編輯的時候可隨時用退格鍵刪除 (0、1的時候,只針對剛輸入的字符有效)
:set autoindent "自動縮排
:set noautoindent "取消自動縮排
:set ruler "可顯示最後一行的狀態
:set showmode "左下角那一行的狀態
:set nu "顯示行號
:set nonu "取消行號
:set bg=dark "顯示不同的底×××調
:syntax on "進行語法檢驗,顏色顯示
:syntax off "關閉語法檢驗
了解完上面的內容後,下面我們就能寫一下自己的vim操作環境。
整體vim的設定值一般是置在/etc/vimrc這個文件裏面,不建議大家來修改他。我們在自己的家目錄裏面建立個.vimrc文件,在這裏面寫入自己的內容就能實現了。
[root@yufei ~]# vim ~/.vimrc
內容如下
set hlsearch "高亮度反白
set backspace=2 "可隨時用退格鍵刪除
set autoindent "自動縮排
set ruler "可顯示最後一行的狀態
set showmode "左下角那一行的狀態
set nu "可以在每一行的最前面顯示行號
set bg=dark "顯示不同的底×××調
syntax on "進行語法檢驗,顏色顯示
這個文件的雙引號 (")表示的是註釋
保存退出vim後,在下次使用vim的時候,就會有自己的vim操作環境了。
提醒一點,這個文件中每一行前面加不加“:“效果都是一樣的。
vim的緩存文件、恢復與開啟時的警告信息
當我們在使用vim編輯時,vim會在與被編輯的文件的目錄下,再建立一個名為 .filename.swp的文件。
如果系統因為某些原因斷線了, 導致編輯的文件還沒有保存,這個時候 .filenam.swp 就能夠發會救援的功能了。
例如:
vim man.config
ctrl+z放到後臺執行
我們停止VI的進程
一種方法
ps aux |grep vi
kill -9 n
另外一種方法
jobs
kill -9 %1
我們用ls -l 命令來查看一下目錄裏面,會發現有個.man.config.swp的文件,這個文件就是個緩存的文件
我們再來編輯
vim man.config
這時候會出現一些信息
問題一:可能有其他人或程序同時在編輯這個文件:
問題二:在前一個vim的環境中,可能因為某些不知名原因導致vim中斷 (crashed):
右下角會出現六個命令項,其作用說明如下:
(O)pen Read-Only:打開此文件成為只讀檔, 可以用在你只是想要查閱該文件內容並不想要進行編輯行為時。一般來說,在上課時,如果你是登入到同學的計算機去看他的配置文件, 結果發現其實同學他自己也在編輯時,可以使用這個模式;
(E)dit anyway:還是用正常的方式打開你要編輯的那個文件, 並不會載入暫存盤的內容。如果說兩個人都在編輯這個文件的話,很容易出現互相改變對方的文件等問題。
(R)ecover:就是加載暫存盤的內容,用在你要救回之前未保存的工作。 不過當你救回來並且儲存離開vim後,還是要手動自行刪除那個暫存檔。
(D)elete it:你確定那個暫存檔是無用的!那麽開啟文件前會先將這個暫存盤刪除
(Q)uit:按下 q 就離開vim,不會進行任何動作回到命令提示字符。
(A)bort:忽略這個編輯行為,感覺上與 quit 非常類似!
Linux vim 使用