Vim是Vi 的加強版本,它沒有菜單。只有命令。 www.vim.orgvim
官方教材:vimbookthis
插入spa
ablog |
在當前光標後插入文本ci |
A文檔 |
在本行行尾插入文本字符串 |
iget |
在光標前插入文本string |
Iit |
在本行行首插入文本 |
o |
在光標下插入新行 |
O |
在光標上插入新行 |
h |
左移一個字符 |
j |
下移一個字符 |
k |
下移一個字符 |
I |
右移一個字符 |
$ |
移動至當前行的行尾 |
0 |
移動至當前行的行首(數字零) |
H |
移動屏幕上端 |
M |
移動至屏幕中央 |
L |
移動屏幕下端 |
Gg |
到整個文件的第一行 |
G |
到整個文件的最後一行 |
nG |
到第n行,例如5G 到整個文件的第5行 |
:n |
到第n行 |
刪除
x |
刪除光標所在處字符 |
nx |
刪除光標所在處n個字符 |
dd |
刪除光標所在行 |
ndd |
刪除n行,例如:5dd 刪除5行 |
dG |
刪除光標所在處到末尾的內容 |
D |
刪除從光標所在處到行尾 |
:n1,n2d |
刪除指定範圍的行,表示刪除從n1行開始至n2行。例如:8,20d 表示刪除從第8行至第20行的內容 |
複製和粘貼
yy,Y |
複製當前行 |
nyy,nY |
複製當前行如下的n行 |
dd |
剪切當前行(先刪除再粘貼) |
ndd |
剪切當前行如下n行 |
p |
將內容粘貼在當前光標所在行的下一行(小寫) |
P |
將內容粘貼在當前光標所在行的上一行(大寫) |
D |
刪除從光標所在處到當前行的行尾 |
:n1,n2d |
刪除指定範圍的行,表示刪除從n1行開始至n2行。例如:8,20d 表示刪除從第8行至第20行的內容 |
替換和取消
r |
替換光標所在處的字符 |
R |
從光標所在處開始替換字符,按ESC結束。 例如:this is a test document 假如當前光標在a處,你在命令模式下輸入了R。則你開始輸入的內容都會把a test document給替換掉 |
u |
取消上一步操做 |
搜索和替換
/string |
/表示從文檔從前日後查找string 當按n的時候就會跳轉到字符在一個出現的地方,當按N的時候,會向上跳轉到上次出現的地方 開啓搜索時忽略大小寫 :set ic 關閉搜索時忽略大小寫 :set noic |
n |
從前日後查詢字符出現的位置 |
N |
從後往前查找字符出現的位置 |
:%s/old/new/g |
全文替換指定字符串,old表示要替換的字符。new表示要替換成的字符 例如,將文檔中全部123字符替換爲789 :%s/123/789/g |
:n1,n2s/old/new/g |
在必定範圍內替換指定字符串,跟全文相似。只不過在必定範圍。n1和n2表示在某必定行內。 例如:將第10行至12行中的789替換成007字符 :10,12s/789/007/g 也能夠把:10,12s/789/007/g後面的g改成c字符(:10,12s/789/007/c),會出現確認信息提示你是否要替換(相似Windows中的:你肯定要刪除嗎?) replace with 007 (y/n/a/q/l/^E/^Y)? y:替換 n:不替換 a:替換全部 q:取消替換 |
保存和退出
:w |
只保存不退出 |
:w a.txt |
保存至a.txt文件(另存爲) |
:q |
只退出 |
:q! |
退出不保存 |
:wq |
退出並保存 |
:wq! |
強行退出並保存(只針對於文件的全部者或者root才能這樣作) |
ZZ |
退出並保存(等同於:wq) |
其餘技巧
導入文件 |
:r 文件名 例1:將hello文件的內容導入到當前光標所在處 :r hello |
導入命令執行結果 |
:r !命令 例2:將系統當前時間導入到當前光標處 :r !date |
在vi中執行命令 |
:! 命令 例如:正在vi編輯某個文件的時候,想查看/root/test目錄下有哪些內容,能夠執行以下命令 :! ls /root/test 此時屏幕將會出現test目錄中的內容,會提示你按任意鍵回到vi編輯中 Press ENTER or type command to continue |
定義快捷鍵 |
:map 快捷鍵 觸發命令 例1:無論光標在當前行的任意位置,當按下ctrl+b的時候。將行首的#註釋給刪除掉。 命令以下 :map ^b 0x 例2:無論光標在當前行的任意位置,當按下ctr+p的時候。給行首添加#註釋 :map ^P I#<ESC>
(^表示是ctrl鍵)^b是經過ctrl+v+b或者ctrl+v ctrl+b給按出來的。若是是經過ctrl按出來的^的話,顯示的是這樣 ^p是綠色的 |
取消快捷鍵 |
:unmap 快捷鍵 例如:取消ctrl+b的快捷鍵 :unmap ^b |
連續行註釋 |
:n1,n2s/^/#/g :n1,n2s/^/#//g :n1,n2s/^/\/\//g 例1:在5到10行行首添加# 命令以下 :5,10s/^/#/g ^表示回到行首 例2:取消5到10行行首的# :5,10s/^#//g 例3:在5到10行行首添加// :5,10s/^/\/\//g 其中\表示轉義字符,\/\/不是字母W而是\和/ |
替換 |
:ab abc abc@163.com 表示當你輸入abc的時候,會自動轉換爲abc@163.com 例1:若是你在vi中常常輸入一串字符,而又不想定義快捷鍵。可使用ab的方式。假如,你常常輸入abc@163.com。則能夠像下面這樣 :ab abc@163.com 這條命令會在你在vi中輸入abc時,回車或者空格時,abc字符將會變成abc@163.com |
配置VI
vi的配置文件在每一個用戶的home目錄下的.vimrc文件,若是想每一個用戶都生效,則修改/etc/vimrc文件
沒有這個文件的話,能夠新建一個,注意權限問題
例如vi /root/.vimrc文件,輸入以下簡單配置
syntax on
set nu
set autoindent
在使用vim的時候有語法高亮,可是使用vi的時候沒有語法高亮的解決辦法?
設置vim的別名爲vi便可:alias vi=vim