VIM簡介
vim是一款類似於vi的功能強大的文本編輯器且對比於傳統的vi編輯器得到了很大的功能上的提升,在類Unix系統中得到了廣泛的使用。通過簡單的配置,就可以完成強大的學習。
如果你的操作系統(類Unix系統)上沒有vim編輯器,請先安裝它!,以ubuntu操作系統為例:
-
安裝vim
sudo aptitude install -y vim
VIM的基本使用
-
使用vim打開文件
-
使用vim打開一個文件
sudo vim /etc/passwd
-
精確定位到要編輯文件的行數
sudo vim +18 /etc/passwd
-
使用vim一次性打開多個文件
sudo vim -O /etc/passwd /etc/group
這樣vim可以打開兩個文件,光標默認在最左邊的窗口中,可以直接編輯里面的內容。使用Ctrl + W 可以切換到另外一個窗口(切換之前需要保存寫入的內容)。
-
-
配置vim(可在vim配置文件vimrc中寫入)
-
顯示行號
: set nu
-
自動縮進
: set ai
-
語法高亮顯示
: syntax on
-
-
VIM 中執行SHELL命令
:! gcc -o hello hello.c
-
定義快捷鍵
進入vim配置文件
sudo vim /etc/vim/vimrc
在vimrc文件中編輯配置
noremap <F6> :set nu noremap <F7> :set ai noremap <F8> :syntax on
-
高效配置
filetype on # 啟用文件類型偵測 set encoding=cp936 # 指定當前字符編碼為 Windows 簡體中文 set tabstop=4 # 設置 Tab 鍵為4個空格 set mouse=a # 在終端中使用鼠標 set ignorecase # 查找時忽略大小寫 set helplang=cn # 在安裝完中文幫助文檔后設置幫助文檔的語言 help user # 查閱中文手冊 help user_num(范圍:01-32) # num可以直接定位到章節 help tag # tag為手冊名稱
個人使用的vim配置
: set nu
: set ai
: syntax on
: filetype on
set tabstop=4
set mouse=a
set ignorecase
vi工作模式
vi有三種基本工作模式:命令模式、文本輸入模式、末行模式。
vi 工作模式
2.1 命令模式
任何時候,不管用戶處於何種模式,只要按一下ESC鍵,即可使Vi進入命令模式;我們在shell環境(提示符為$)下輸入啟動Vi命令,進入編輯器時,也是處於該模式下。在該模式下,用戶可以輸入各種合法的Vi命令,用於管理自己的文檔。此時從鍵盤上輸入的任何字符都被當做編輯命令來解釋,若輸入的字符是合法的Vi命令,則Vi在接受用戶命令之后完成相應的動作。但需注意的是,所輸入的命令並不在屏幕上顯示出來。若輸入的字符不是Vi的合法命令,Vi會響鈴報警。
2.2 編輯模式
在命令模式下輸入插入命令i(當前位置插入)、a(當前位置后一位置插入) 、o(下一行插入)可以進入文本輸入模式。在該模式下,用戶輸入的任何字符都被vi當做文件內容保存起來,並將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按鍵ESC即可。
2.3 末行模式
在命令模式下,用戶按“:”鍵即可進入末行模式下,此時Vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個“:”作為末行模式的提示符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩沖區的內容寫到文件中等)。末行命令執行完后,Vi自動回到命令模式。
如果要從命令模式轉換到編輯模式,可以鍵入命令a或者i;如果需要從文本模式返回,則按Esc鍵即可。在命令模式下輸入“:”即可切換到末行模式,然后輸入命令。
3. vi基本操作
3.1進入編輯模式
命令 | 含義 |
---|---|
i和I | i在光標前插入,I在行首插入 |
a和A | a在光標后插入,A在行末插入 |
o和O | o在光標所在行下一行插入,O在光標所在行上一行插入 |
3.2 移動光標
命令 | 含義 |
---|---|
h | 光標向左移動 |
j | 光標向下移動 |
k | 光標向上移動 |
l | 光標向右移動 |
H、M、L | 光標移動到到可見屏幕第一行(H)、中間行(M)、最后一行(L) |
^和$ | ^移動到行首,$移動到行末 |
G和gg | G文檔最后一行,gg文檔第一行 |
ctrl+f、ctrl+b | 向前翻屏、向后翻屏 |
ctrl+d、ctrl+u | 向前半屛、向后半屛 |
{ 和 } | {向上移動一段,}向后移動一段 |
w和b | 向前移動一個單詞,向后移動一個單詞 |
3.3 刪除命令
命令 | 含義 |
---|---|
X和x | x刪除光標后一個字符,X刪除光標前一個字符,包含光標位置字符 |
dd和 n dd | dd刪除所在行,5 dd刪除指定行數 |
d0和D | d0刪除光標前本行所有內容,D刪除光標后本行所有內容,包含光標位置字符 |
dw | 刪除光標所在位置的字,包含光表所在位置字符 |
3.4 撤銷命令
命令 | 含義 |
---|---|
u | 一步一步撤銷 |
ctrl + r | 反撤銷 |
3.5 重復命令
命令 | 含義 |
---|---|
. | 重復執行上一次操作的命令 |
3.6 復制粘貼
命令 | 含義 |
---|---|
yy | 和 n yy 和y$ y^ yy復制當前行,5 yy復制5行 |
p | 在光標所在位置向下新開一行粘貼 |
3.7 選擇文本
命令 | 含義 |
---|---|
v 和 V | v選擇單個字符,V選擇整行 |
<<和>> | 選擇文本之后,向左縮進,向右縮進 |
3.8 查找替換
命令 | 含義 |
---|---|
命令模式下,r和R | r替換當前字符,R替換光標后的字符 |
末行模式下,/ + str | n查找下一個,N查找前一個 |
末行模式下,%s/abc/123/g | 將文件中所有abc替換為123 |
末行模式下,1, 10s/abc/123/g | 將第一行至第10行之間的abc替換成123 |
VIM 編輯器進階
-
隨時可查閱的 VIM 手冊
http://soruceforge.net/projects/vimdoc/files/vimcdoc/vimcdoc-1.9.0.tar.gz/download
-
使用vim插件
vim插件官網:https://www.vim.org/scripts/script.php?script_id=273
插件一般安裝步驟(以TagList插件為例):
-
解壓縮包
sudo unzip taglist_46.zip
-
將xxx.vim復制到/etc/vim/plugin目錄下
cd plugin sudo cp -rf taglist.vim /etc/vim/plugin
-
重啟VIM后輸入如下命令
:Tlist
-