Linux系统VIM编辑器管理(2)
VI/VIM模式概述
在 Linux 的世界中,絕大部分的配置文件都是以 ASCII 的純文本形態存在,因此利用簡單的文字編輯軟件就能夠修改設定了,與微軟的 Windows 系統不同的是,如果你用慣了 Microsoft Word 或 Corel Wordperfect 的話,那么除了 X window 里面的圖形接口編輯程序,用起來尚可應付外,在 Linux 的文本模式下,會覺得文書編輯程序都沒有窗口接口來的直觀與方便.
VIM 有哪些特點呢 ?
1.所有的 Unix Like 系統都會內建 VIM 文本編輯器,其他的文書編輯器則不一定會存在.
2.很多個別軟件的編輯接口都會主動呼叫 VIM (例如未來會談到的 crontab, visudo, edquota 等指令)
3.VIM 具有程序編輯的能力,可以主動的以字體顏色辨別語法的正確性,方便程序設計.
4.因為VIM程序簡單,并可自定義按鍵,從而編輯速度相當快速,在程序設計領域大有作為.
那么什么是 VIM 呢 ?
其實你可以將VIM視作VI的升級版,VIM可以用顏色或底線等方式來顯示一些特殊的信息,簡單的來說VI是老式的字處理器,不過功能已經很齊全了,但是還是有可以進步的地方.VIM則可以說是程序開發者的一項很好用的工具,就連VIM的官方網站自己也說VIM是一個『程序開發工具』而不是文字處理軟件,因為VIM里面加入了很多額外的功能,例如支持正規表示法的搜尋架構、多檔案編輯、區塊復制等等.這對于我們在 Linux 上面進行一些配置文件的編輯時,是很好的一項功能.
那 VIM 的工作模式有哪些呢 ?
基本上VI/VIM共分為三種模式,分別是命令模式,輸入模式,末行模式.
命令模式:
以 VI/VIM 打開一個文件就直接進入命令模式(這是默認的模式),在這個模式中,你可以使用『上下左右』按鍵來移動光標,你可以使用『刪除字符』或『刪除整行』來處理文件內容,也可以使用『復制、貼上』來處理你的文件數據.
編輯模式:
在輸入模式中可以進行刪除、復制、貼上等等的動作,但是卻無法編輯文件內容的,要等到你按下『i, I, o, O, a, A, r, R』等任何一個字母之后才會進入編輯模式,注意,通常在 Linux 中,按下這些按鍵時,在畫面的左下方會出現『 INSERT 或 REPLACE 』的字樣,此時才可以進行編輯.而如果要回到一般模式時,則必須要按下『Esc』這個按鍵即可退出編輯模式.
末行模式:
在一般模式當中,輸入『 : / ? 』三個中的任何一個按鈕,就可以將光標移動到最底下那一行,在這個模式當中,可以提供你『搜尋資料』的動作,而讀取、存盤、大量取代字符、離開 VI/VIM、顯示行號等等的動作則是在此模式中達成的.
VI/VIM模式按鍵
◆命令模式◆
以 VI/VIM 打開一個文件就直接進入命令模式(這是默認的模式),在這個模式中,你可以使用『上下左右』按鍵來移動光標,你可以使用『刪除字符』或『刪除整行』來處理文件內容,也可以使用『復制、貼上』來處理你的文件數據.
| 光標方向移動 | ↑ ↓ ← → | 上、下、左、右 |
| 字母移動 | H j k l | 上、下、左、右 |
| 翻頁 | Page Down或Ctrl+F(大) | 向下翻動一整頁內容 |
| Page Up或Ctrl+B(大) | 向上翻動一整頁內容 | |
| 行內快速跳轉 | Home鍵或“^”、數字“00” | 跳轉至行首 |
| End鍵或“$”鍵 | 跳轉到行尾 | |
| 行間快速跳轉 | 1G或者gg | 跳轉到文件的首行 |
| G | 跳轉到文件的末尾行 | |
| #G | 跳轉到文件中的第#行 | |
| 刪除 | x或Del | 刪除光標處的單個字符 |
| dd | 刪除當前光標所在行 | |
| #dd | 刪除從光標處開始的#行內容 | |
| d^ (d shift+6) | 刪除當前光標之前到行首的所有字符(不包含光標) | |
| d$ | 刪除當前光標處到行尾的所有字符(包含光標) | |
| 復制 | yy | 復制當前行整行的內容到剪貼板 |
| #yy | 復制從光標處開始的#行內容 | |
| 粘貼 | p | 將緩沖區中的內容粘貼到光標位置處之后(下一行) |
| P(大) | 粘貼到光標位置處之前(上一行) | |
| 替換 | r | 替換光標所在字符 |
| R | 從光標出開始替換,按ESC鍵結束 | |
| /word | /word | 從上而下在文件中查找字符串“word” |
| ?word | ?word | 從下而上在文件中查找字符串“word” |
| n | n | 定位下一個匹配的被查找字符串 |
| N | N | 定位上一個匹配的被查找字符串 |
| u | u | 按一次取消最近的一次操作,多次重復按u鍵,恢復已進行的多步操作 |
| U | U | 用于取消對當前行所做的所有編輯 |
| Shift+zz或者ZZ | Shift+zz(小)或者ZZ | 保存當前的文件內容并退出vi編輯器 |
◆編輯模式◆
在輸入模式中可以進行刪除、復制、貼上等等的動作,但是卻無法編輯文件內容的,要等到你按下『i, I, o, O, a, A, r, R』等任何一個字母之后才會進入編輯模式,注意,通常在 Linux 中,按下這些按鍵時,在畫面的左下方會出現『 INSERT 或 REPLACE 』的字樣,此時才可以進行編輯.而如果要回到一般模式時,則必須要按下『Esc』這個按鍵即可退出編輯模式.
| 光標后插入 | a | 在光標所在字符后插入 |
| 光標行尾插入 | A | 在光標所在行尾插入 |
| 光標前插入 | i | 在光標所在字符前插入 |
| 光標后插入 | I | 在光標所在行行首插入 |
| 光標下插入 | o | 在光標下插入新行 |
| 光標上插入 | O | 在光標上插入新行 |
◆末行模式◆
在一般模式當中,輸入『 : / ? 』三個中的任何一個按鈕,就可以將光標移動到最底下那一行,在這個模式當中,可以提供你『搜尋資料』的動作,而讀取、存盤、大量取代字符、離開 VI/VIM、顯示行號等等的動作則是在此模式中達成的.
| 保存文件 | :w | 保存所做操作 |
| :w /root/newfile | 另存為其它文件 | |
| 退出vi | :q | 未修改退出 |
| :q! | 放棄對文件內容的修改,并退出vi | |
| :wq | 保存文件退出 | |
| 刪除多行文件 | :n,nd | 刪除從n-n的行 |
| :e ~/install.log | 打開新的文件進行編輯 | |
| :r /etc/filesystems | 在當前文件中讀入其他文件內容 | |
| :!命令 | 直接執行命令打印到屏幕上 | |
| :r!命令 | 導入命令結果到光標所在處 | |
| 行號顯示 | set nu | 在編輯器中顯示行號 |
| :set nonu | 取消編輯器中的行號顯示 | |
| 顏色開關 | :syntax off | 關閉顏色顯示 |
| :syntax on | 開啟顏色顯示 | |
| 正則替換 | :s /old/new/ | 將當前行中查找到的第一個字符“old” 串替換為“new” |
| :s /old/new/g | 將當前行中查找到的所有字符串“old” 替換為“new” | |
| :#,#s /old/new/g | 在行號“#,#”范圍內替換所有的字符串“old”為“new” | |
| :% s /old/new/g | 在整個文件范圍內替換所有的字符串“old”為“new” | |
| :s /old/new/cg | 在替換命令末尾加入c命令,將對每個替換動作提示用戶進行確認 |
VI/VIM拓展功能
◆VIM快捷命令◆
實例1:使用VIM配置快捷鍵,當輸入Ctrl+p快捷鍵時,執行在行首添加#號.
#^P 不能手動輸入,需要執行ctrl+V+P 來定義或者ctrl+V,然后ctrl+P.:map ^P I#<esc>此時在指定行按下Ctrl+p 既可以實現在開頭添加注釋.實例2:使用VIM配置快捷鍵,當輸入Ctrl+b快捷鍵時,執行調到行首,并刪除一個字符.
#^P 不能手動輸入,需要執行ctrl+V+b 來定義或者ctrl+V,然后ctrl+b.:map ^B ^x此時在指定行按下Ctrl+b 既可以實現在開頭刪除一個字符.實例3:使用VIM配置快捷鍵,當輸入ab快捷鍵時,將myweb替換成mkdirs.com.
:ab myweb mkdirs.com◆VIM塊選擇命令◆
塊選擇命令,可以實現批量的選擇一塊數據進行操作.
| 參 數 | 說 明 |
|:---- -----:|:--------------------------:|
| v | 字符選擇,光標經過的地方反白|
| V | 行選擇,光標經過的地方反白 |
| Ctrl+v | 塊選擇,一次選擇一個格 |
| shift+v | 行選擇,一次選擇一行數據 |
| y | 將反白的地方復制起來 |
| d | 將反白的地方刪除 |
◆VIM多窗口編輯◆
sp命令,可以編輯多窗口,我們可以實現多窗口之間的編輯和切換功能.
| :sp filename | 在VIM中打開一個新窗口 |
| Ctrl+w+j | 切換到上一個窗口 |
| Ctrl+w+k | 切換到下一個窗口 |
◆VIM環境變量配置◆
VIM常用環境變量的說明,和常用參數的配置.
| :set nu | 設置與取消編號 |
| :set nonu | |
| :set hlsearch | 設置與取消高亮字體 |
| :set nohlsearch | |
| :set backup | 是否自動備份 |
| :set nobackup | |
| :set cursorline | 給指定行添加下劃線 |
| :set all | 顯示所有環境變量 |
| :set | 顯示與系統默認值不同的參數 |
| :syntax on | 開啟語法高亮 |
| :set bg=dark | 字體高亮顯示 |
| :set bg=light | 字體低亮度顯示 |
實例1:通過寫入配置文件 ./vimrc實現配置文件的永久生效,在這里永久添加一個下劃線.
[root@localhost ~]# vim .vimrc [root@localhost ~]# cat .vimrc set cursorline轉載于:https://www.cnblogs.com/LyShark/p/10221779.html
總結
以上是生活随笔為你收集整理的Linux系统VIM编辑器管理(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: thinkphp中URL传参数的几种方式
- 下一篇: 01XC-1: 动态规划