vim基本常用操作

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 列出已經定義的語法項

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市撼短,隨后出現(xiàn)的幾起案子再膳,更是在濱河造成了極大的恐慌,老刑警劉巖曲横,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喂柒,死亡現(xiàn)場離奇詭異,居然都是意外死亡禾嫉,警方通過查閱死者的電腦和手機灾杰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來熙参,“玉大人艳吠,你說我怎么就攤上這事∧跻” “怎么了昭娩?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵凛篙,是天一觀的道長。 經常有香客問我题禀,道長鞋诗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任迈嘹,我火速辦了婚禮削彬,結果婚禮上,老公的妹妹穿的比我還像新娘秀仲。我一直安慰自己融痛,他們只是感情好,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布神僵。 她就那樣靜靜地躺著雁刷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪保礼。 梳的紋絲不亂的頭發(fā)上沛励,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音炮障,去河邊找鬼目派。 笑死,一個胖子當著我的面吹牛胁赢,可吹牛的內容都是我干的企蹭。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼智末,長吁一口氣:“原來是場噩夢啊……” “哼谅摄!你這毒婦竟也來了?” 一聲冷哼從身側響起系馆,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤送漠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后它呀,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體螺男,經...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年纵穿,在試婚紗的時候發(fā)現(xiàn)自己被綠了下隧。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡谓媒,死狀恐怖淆院,靈堂內的尸體忽然破棺而出邻邮,到底是詐尸還是另有隱情嗜桌,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站窄赋,受9級特大地震影響紧显,放射性物質發(fā)生泄漏撇他。R本人自食惡果不足惜逛裤,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望启涯。 院中可真熱鬧贬堵,春花似錦、人聲如沸结洼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽松忍。三九已至蒸殿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鸣峭,已是汗流浹背宏所。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留摊溶,地道東北人楣铁。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像更扁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子赫冬,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內容