Vim模式
正常模式(按Esc或Ctrl-[進入) 左下角顯示文件名或為空
插入模式(按i ,I, a, A, o或者O進入) 左下角顯示--INSERT--
可視模式(按v,V或者Ctrl-v進入) 左下角顯示--VISUAL--
命令模式(按:進入)
打開文件
打開單個文件
vim file
同時打開多個文件
vim file1 file2..
在vim窗口中打開一個新文件
:e [file]
放棄修改如迟,打開一個新文件
:e! [file]
放棄修改厉亏,重新打開文件
:e!
打開遠程文件箍鼓,比如ftp或者共享文件
:e ftp://xxx.xxx.xxx.xxx/filefile1
:e \sharedrive\filefile1
以只讀形式打開文件,但是仍然可以使用 :wq! 寫入
vim -R file
強制性關閉修改功能,無法使用 :wq! 寫入
vim -M file
移動命令
h 左移一個字符
l 右移一個字符
k 上移一行
j 下移一行
10h 左移10個字符
10l 右移10個字符
10k 上移10行
10j 下移10行
w 向前移動一個單詞,光標停在單詞首部,這里的單詞是以字母猜年、數(shù)字抡锈、下劃線或點組成
W 向前移動一個單詞,光標停在單詞首部乔外,這里的單詞為非空白字符
e床三,同w,只不過是光標停在單詞尾部
b 向后移動一個單詞袁稽,光標停在單詞首部勿璃,這里的單詞是以字母、數(shù)字推汽、下劃線或點組成
B 向后移動一個單詞,光標停在單詞首部歧沪,這里的單詞為非空白字符
fx 找到光標后第一個為x的字符
3fx 找到光標后第三個為x的字符
F 同f歹撒,反向查找
^ 移動到本行第一個非空白字符上
0 移動到本行第一個字符上(可以是空格)
$ 移動到行尾
3$ 移動到下面3行的行尾
:10 跳到第10行
10G 跳到第10行
( 移動到句首
) 移動到句尾
句是以空白行為分隔符的段落
gg 移動到文件頭
G 移動到文件尾
Ctrl - e 向下滾動一行
Ctrl - y 向上滾動一行
Ctrl - d 向下滾動半屏
Ctrl - u 向上滾動半屏
Ctrl - f 向下滾動一屏
Ctrl - b 向上滾動一屏
zz命令會把當前行置為屏幕正中央,
zt命令會把當前行置于屏幕頂端
zb則把當前行置于屏幕底端.
標記跳轉:
mx 诊胞,將光標處標記為 x暖夭,使用 'x 進行跳轉
:marks 可以查看所有的標記
:delm!可以刪除所有的標記
:delm x 刪除x標記
Ctrl-o 即可返回上一次的位置
插入命令
i 在當前位置生前插入
I 在當前行首插入
a 在當前位置后插入
A 在當前行尾插入
o 在當前行之后插入一行
O 在當前行之前插入一行
查找命令
/text 查找text撵孤,按n健查找下一個迈着,按N健查找前一個。
?text 查找text邪码,反向查找裕菠,按n健查找下一個,按N健查找前一個闭专。
/和?后指出正則表達式奴潘,如:
/\w 查找單詞
/\d 查找數(shù)字
* 向后(下)尋找游標所在處的單詞
# 向前(上)尋找游標所在處的單詞
:set ignorecase 忽略大小寫的查找
:set noignorecase 不忽略大小寫的查找
替換命令
~ 反轉游標字母大小寫
r<字母> 將當前字符替換為所寫字母
R<字母><字母>... 連續(xù)替換字母
cc 替換整行(就是刪除當前行,并在下一行插入)
cw 替換一個單詞(就是刪除一個單詞影钉,就進入插入模式)画髓,前提是游標處于單詞第一個字母(可用b定位)
C (大寫C)替換至行尾(和D有所區(qū)別,D是刪除(剪切)至行尾平委,C是刪除至行位并進入插入模式)
:s/old/new/ 用new替換old奈虾,替換當前行的第一個匹配
:s/old/new/g 用new替換old,替換當前行的所有匹配
:%s/old/new/ 用new替換old廉赔,替換所有行的第一個匹配
:%s/old/new/g 用new替換old肉微,替換整個文件的所有匹配
撤銷與重做
u 撤銷(Undo)
U 撤銷對整行的操作
Ctrl - r 重做(Redo),即撤銷的撤銷昂勉。
刪除命令
x 刪除當前字符
3x 刪除當前字符3次
X 刪除當前字符的前一個字符浪册。
3X 刪除當前光標向前三個字符
D 刪除當前字符至行尾,等于d$
d$ 刪除當前字符至行尾
d^ 刪除當前字符之前至行首
dw 刪除當前字符到單詞尾
daw 刪除當前字符所在單詞
dd 刪除當前行
dj 刪除下一行
dk 刪除上一行
dgg 刪除當前行至文檔首部
dG 刪除當前行至文檔尾部
10d 刪除當前行開始的10行岗照。
:1,10d 刪除1-10行
:11,$d 刪除11行及以后所有的行
:1,$d 刪除所有行
J 刪除兩行之間的空行村象,實際上是合并兩行笆环。
復制粘貼
普通模式中使用y復制
yy 復制游標所在的整行(3yy表示復制3行)
y^ 復制至行首,或y0厚者。不含光標所在處字符躁劣。
y$ 復制至行尾。含光標所在處字符库菲。
yw 復制一個單詞账忘。
y2w 復制兩個單詞。
yG 復制至文本末熙宇。
ygg 復制至文本開頭鳖擒。
p(小寫):代表粘貼至光標后(下邊,右邊)
P(大寫):代表粘貼至光標前(上邊烫止,左邊)
退出保存
:wq 保存并退出
:q! 強制退出并忽略所有更改
:e! 放棄所有修改蒋荚,并打開原來文件。
:sav(eas) new_file 把當前內容寫到新文件并退出原文件馆蠕,當前編輯文件為新文件
期升,且這次的編輯不會保存到原文件
:f(ile) new_file 跟saveas的區(qū)別是不保存到新文件,需要手動保存
:w new_file 把當前內容寫到新文件互躬,當前編輯文件為原文件
排版功能
縮進
:set shiftwidth? 查看縮進值
:set shiftwidth=4 設置縮進值為4
:set tabstop=4
:set softtabstop=4
:set expandtab
>> 向右縮進
<< 取消縮進
排版
:ce 居中
:le 靠左
:ri 靠右
注釋命令
多行注釋
進入命令行模式播赁,按ctrl - v進入 visual block模式,然后按j, 或者k選中多行吼渡,把需要注釋的行標記起來
按大寫字母I容为,再插入注釋符,例如#
按esc鍵就會全部注釋了
取消多行注釋
進入命令行模式诞吱,按ctrl - v進入 visual block模式舟奠,按字母l橫向選中列的個數(shù),例如 // 需要選中2列
按字母j房维,或者k選中注釋符號
按d鍵就可全部刪除注釋
用替換命令添加/刪除注釋
:1,10 s/^/#/g 注釋第1-10行
:1,10 s/^#//g 刪除1-10行的注釋
:1,$ s/^/#/g 注釋整個文檔
:%s/^/#/g 注釋整個文檔
:1,$ s/^#//g 刪除整個文檔的注釋
:%s/^#//g 刪除整個文檔的注釋
區(qū)域選擇
要進行區(qū)域選擇沼瘫,要先進入可視模式
v 以字符為單位,上下左右選擇
V 以行為單位咙俩,上下選擇
Ctrl-v 塊模式耿戚,起點到終點的一塊長方形
選擇后可進行操作
d 剪切/刪除
y 復制
v后可以加范圍,如:
vG 選擇當前至文件末尾
ggvG 選擇全文
v2 選擇2行
窗口控制
新建窗口
打開兩個文件分屬兩個窗口
vim -o file1 file2
假設現(xiàn)在已經打開了file1
:sp file2 開啟一個橫向的窗口阿趁,編輯file2
:vsp file2 開啟一個豎向的窗口膜蛔,編輯file2
需要注意:內容同步,但是游標位置是獨立的
Ctrl-w s 將當前窗口分成水平窗口
Ctrl-w v 將當前窗口分成豎直窗口
Ctrl-w q 等同:q 結束分割出來的視窗脖阵。
Ctrl-w q! 等同:q! 結束分割出來的視窗皂股。
Ctrl-w o 打開一個視窗并且隱藏之前的所有視窗
窗口切換:
Ctrl-w h 切換到左邊窗口
Ctrl-w l 切換到右邊窗口
Ctrl-w j 切換到下邊窗口
Ctrl-w k 切換到上邊窗口
特別說明:全屏模式下
:n 切換下一個窗口
:N 切換上一個窗口
:bp 切換上一個窗口
Ctrl-w J 將當前視窗移至最下面
Ctrl-w K 將當前視窗移最上面
Ctrl-w H 將當前視窗移至最左邊
Ctrl-w L 將當前視窗移至最右邊
Ctrl-ww 按順序切換窗口
調整尺寸
Ctrl-w + 增加窗口高度
Ctrl-w - 減少窗口高度
:only 關閉所有窗口,只保留當前窗口(前提:其他窗口內容有改變的話都要先保存)
:only! 關閉所有窗口命黔,只保留當前窗口
:qall 放棄所有操作并退出
:wall 保存所有呜呐,
:wqall 保存所有并退出就斤。
文檔加密
vim -x file_name
然后輸入密碼:
確認密碼:
如果不修改內容也要保存,不然密碼設定不會生效蘑辑。
錄制宏
按q鍵加任意字母開始錄制洋机,再按q鍵結束錄制(這意味著vim中的宏不可嵌套),使用的時候@加宏名洋魂,比如qx...q錄制名為x的宏绷旗,@x使用這個宏。
執(zhí)行命令
:!command
比如列出當前目錄下文件
:!ls
:suspend或Ctrl - Z 掛起vim副砍,回到shell衔肢,按fg可以返回vim。
幫助命令
在Unix/Linux系統(tǒng)上
$ vimtutor
普通模式下
按F1
命令行模式下
:help 顯示整個幫助
:help i 顯示i的幫助
配置命令
顯示當前設定
:set顯示所有修改過的配置
:set all 顯示所有的設定值
:set option? 顯示option的設定值
:set nooption 取消當期設定值
:ver 顯示vim的所有信息(包括版本和參數(shù)等)
:set background=dark或light址晕,設置背景風格
:set number 顯示行號
:set shiftwidth=4 設置縮進值為4
:set tabstop=8 設置tab鍵8列寬
:set softtabstop=4 設置輸入tab時占4列寬
以上兩項設置膀懈,按一次tab用4個空格占用4列寬,再按一次tab占用8列寬并轉換為一個tab而不是8個空格谨垃,除非
:set expandtab 把tab占用的列寬轉換為空格
:set autoindent 設置自動縮進
:set autowrite 設置自動存檔,默認未打開
:set backup 設置自動備份硼控,默認未打開
:set cindent(cin) 設置C語言風格縮進
:set ff=unix 修改文件dos文件為unix
:set ignorecase 忽略大小寫的查找
:set noignorecase 不忽略大小寫的查找
:set paste insert模式下刘陶,如果粘貼過來的東西格式亂了,粘貼前請使用這個命令牢撼,粘貼后:set
nopaste恢復原來設置
:set ruler 設置右下角顯示狀態(tài)
:scriptnames 查看vim腳本文件的位置匙隔,比如.vimrc文件,語法文件及plugin等熏版。
:set listchars=tab:>-,trail:- tab 顯示為>-纷责,行尾空格顯示為-
:syntax enable 執(zhí)行$VIMRUNTIME/syntax/syntax.vim并保持當前配色
:syntax on 執(zhí)行$VIMRUNTIME/syntax/syntax.vim不保持當前配色
:syntax off 執(zhí)行$VIMRUNTIME/syntax/nosyntax.vim
:syntax clear 清除已定義的語法規(guī)則
:syntax 列出已經定義的語法項