vim 操作

VIM是什么,為什么要用

vim是什么

vim是一個(gè)文本編輯器,跟windows上notepad是一類編輯文本的工具

為什么要用

在Linux命令行界面下有很多文本編輯器,如Emacs壹堰、nano摊溶、vi等爬骤,vim就是一個(gè)加強(qiáng)了的vi編輯器,提供了語法作色莫换、可視化操作霞玄、兼容vi等特性。有些類UNIX上不一定就裝有vim 拉岁,有時(shí)vim命令打開的也有可能是vi編輯器坷剧,只是設(shè)置了別名

  • 在很多類unix 的操作系統(tǒng)中系統(tǒng)編輯配置文件或文本會(huì)自動(dòng)調(diào)用vi編輯器
  • vim 提供了語法高亮,語法作色能方便文本編輯喊暖、腳本編輯
  • 可以做到不用鼠標(biāo)進(jìn)行文本編輯惫企,如多行復(fù)制,多行刪除(b格較高)
  • ……

vim的三種模式

  • 編輯模式
  • 輸入模式
  • 末行模式
編輯模式

通常鍵入鍵盤值被理解成一個(gè)操作; 如: dd(刪除行)、y(復(fù)制整行)

輸入模式

通常鍵盤的鍵入直接理解成文本

末行模式

通常打頭開始等待用戶鍵入操作

模式之間相互切換

輸入模式下不能直接進(jìn)入末行模式

  • 編輯 --> 輸入

i:在當(dāng)前光標(biāo)所在字符前面狞尔,轉(zhuǎn)為輸入模式
a:在當(dāng)前光標(biāo)所在字符后面丛版,轉(zhuǎn)為輸入模式
o:在當(dāng)前光標(biāo)所在行下新建一行,轉(zhuǎn)為輸入模式
I:在當(dāng)前光標(biāo)所行的行首偏序,轉(zhuǎn)為輸入模式
A:在當(dāng)前光標(biāo)所行的行尾页畦,轉(zhuǎn)為輸入模式
O:在當(dāng)前光標(biāo)所在行上新建一行,轉(zhuǎn)為輸入模式

  • 輸入 --> 編輯

ESC

  • 編輯 --> 末行

  • 末行 --> 編輯

ESC鍵(一次不管用多按一次)

打開文件

vim /PATH/TO/FILE
vim +# /PATH/TO/FILE
  打開文件處在第#行(#表示數(shù)字)
vim + /PATH/TO/FILE
  打開文件滯留在最后一行
vim +/PATTERN /PATH/TO/FILE
  打開文件研儒,停留在第一次被PATTERN匹配之后

打開文件后默認(rèn)處于編輯模式

關(guān)閉文件

  1. 末行模式下關(guān)閉文件
  • w:保存文件
  • q:退出
  • q!:強(qiáng)行退出
  • wq:保存并退出
  • w!:強(qiáng)行保存
  • x:保存退出
  1. 編輯模式下關(guān)閉文件
  • ZZ:保存退出

移動(dòng)光標(biāo)

編輯模式下

  1. 逐字符移動(dòng)
  • h:左
  • l:右
  • j:下
  • k:上

#h:表示向左移動(dòng)多個(gè)字符(#為數(shù)字)

  1. 按單詞為單位移動(dòng)
  • w:移至下一個(gè)單詞的詞首
  • e:跳至當(dāng)前或下一個(gè)單詞的詞尾
  • b:跳至當(dāng)前或前一個(gè)單詞的詞首

#w:移動(dòng)#個(gè)單詞(#為數(shù)字)

  1. 行內(nèi)跳轉(zhuǎn)
  • 0:絕對(duì)行首
  • ^:行首第一個(gè)非空白字符
  • $:絕對(duì)行尾
  1. 行間跳轉(zhuǎn)
  • #G:跳至第#行(#表示數(shù)字)
  • G:最后一行

在末行模式下豫缨,可直接給出行號(hào)

翻屏

[ CTRL ] + [ f ]:向下翻一屏
[ CTRL ] + [ b ]:向上翻一屏
[ CTRL ] + [ d ]:向下翻半屏
[ CTRL ] + [ u ]:向上翻半屏  

刪除字符或行

  • x:刪除光標(biāo)所在處的單個(gè)字符
  • #x: 刪除光標(biāo)所在處向后#單個(gè)字符(#為數(shù)字)
  • d:刪除命令(通常跟跳轉(zhuǎn)命令組合使用)
    • 如: #dw、#de殉摔、#db州胳。表示光標(biāo)所在位置往后或往前刪除幾個(gè)單詞
    • dd:刪除當(dāng)前光標(biāo)所在行
    • #dd:刪除包括當(dāng)前光標(biāo)所在行內(nèi)的#行(#表示數(shù)字)
    • 末行模式下:startLine(開始行號(hào)),endLine(結(jié)束行號(hào))d
      • .:表示當(dāng)前行
      • $:末行
      • +#:向下#
        如:0,$d 表示刪除全篇內(nèi)容逸月,0表示首行栓撞,$表示末行,d表示刪除

復(fù)制 & 黏貼 & 修改 & 替換 & 撤銷

粘貼命令

  • p:如果刪除或復(fù)制的為整行內(nèi)容碗硬,則粘貼至光標(biāo)所在行的上方瓤湘;如果刪除或復(fù)制的為非整行內(nèi)容,則粘貼至光標(biāo)所在字符的前面
  • P:如果刪除或復(fù)制的為整行內(nèi)容恩尾,則粘貼至光標(biāo)所在行的下方弛说;如果刪除或復(fù)制的為非整行內(nèi)容,則粘貼至光標(biāo)所在字符的后面

復(fù)制命令

  • 用法跟d刪除命令一樣

修改命令

  • 用法跟d刪除命令一樣

替換命令

  • r:單個(gè)字符替換
  • R:進(jìn)入替換模式

撤銷編輯操作

  • u:撤銷前一次的編輯操作
    連續(xù)u命令可撤銷此前n次操作
  • #u:撤銷#次操作(#表示數(shù)字)

重復(fù)前一次編輯操作 . 符號(hào)
可視化模式
v:按字符選取
V:按矩形行選取

查找并替換

查找

  • /PATTERN翰意、?PATTERN
    PATTERN表示模式或者是正則
    n:(/PATTERN 下一個(gè)匹配結(jié)果木人; ?PATTERN 上一個(gè)匹配結(jié)果)
    N:(/PATTERN上一個(gè)匹配結(jié)果; ?PATTERN 下一個(gè)匹配結(jié)果)

查找并替換
在末行模式下使用s命令

  StartLine,EndLines@PATTERN@STRING@修飾符
如:0,$s@^root$@ROOT@g
從第0行到最后一行將小寫的root替換成大寫的ROOT
修飾符: g 全局; i 忽略大小寫
%: 表示全文
&:引用模式匹配到的串

窗口文件操作

打開多個(gè)文件
vim FILE1 FIEL2 ...
如果需要進(jìn)行文件切換在末行模式下執(zhí)行

next :下一個(gè)文件
prev :上一個(gè)文件
last :最后一個(gè)文件
first:第一個(gè)文件

末行模式執(zhí)行qa退出此次打開所有文件

分屏顯示內(nèi)容

[ CTRL ] + w,s:水平拆分
[ CTRL ] + w,v:垂直拆分

在窗口間切換光標(biāo)
    [ CTRL ] + w,方向光標(biāo)
    
qa:關(guān)閉所有

分窗口編輯多個(gè)文件

vim -o : 水平分割顯示
vim -O : 垂直分割顯示

將當(dāng)前文件中的部分內(nèi)容另存為另外一個(gè)文件

末行模式下使用命令
:w
:StartLine,EndLinew /PATH/TO/FILE

將另一個(gè)文件的的內(nèi)容填充在當(dāng)前文件中

末行模式下使用命令
:r /PATH/TO/FIEL

跟shell交互
:! COMMAND冀偶,COMMAND為要執(zhí)行的命令

高級(jí)話題

  1. 顯示或取消顯示行號(hào)
:set number 顯示
:set nu  簡寫
:set nonu   取消
  1. 顯示忽略或區(qū)分字母大小寫
:set ignorecass 忽略
:set ic  簡寫忽略大小寫開啟
:set noic 關(guān)閉忽略
  1. 設(shè)定自動(dòng)縮進(jìn)
:set autoindent 開啟
:set ai  簡寫醒第;同上
:set noai 關(guān)閉
  1. 查找到的文本高亮顯示或取消
:set hlsearch   開啟
:set nohlsearch 關(guān)閉
  1. 語法作色
:syntax on  開啟
:syntax off 關(guān)閉

vim配置文件

  • /etc/vimrc 全局vim配置文件
  • ~/.vimrc 自定義vim配置文件
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市进鸠,隨后出現(xiàn)的幾起案子稠曼,更是在濱河造成了極大的恐慌,老刑警劉巖客年,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件霞幅,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡量瓜,警方通過查閱死者的電腦和手機(jī)司恳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绍傲,“玉大人扔傅,你說我怎么就攤上這事。” “怎么了铅鲤?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長枫弟。 經(jīng)常有香客問我邢享,道長,這世上最難降的妖魔是什么淡诗? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任骇塘,我火速辦了婚禮,結(jié)果婚禮上韩容,老公的妹妹穿的比我還像新娘款违。我一直安慰自己,他們只是感情好群凶,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布插爹。 她就那樣靜靜地躺著,像睡著了一般请梢。 火紅的嫁衣襯著肌膚如雪赠尾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天毅弧,我揣著相機(jī)與錄音气嫁,去河邊找鬼。 笑死够坐,一個(gè)胖子當(dāng)著我的面吹牛寸宵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播元咙,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼梯影,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了蛾坯?” 一聲冷哼從身側(cè)響起光酣,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎脉课,沒想到半個(gè)月后救军,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡倘零,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年唱遭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呈驶。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拷泽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情司致,我是刑警寧澤拆吆,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站脂矫,受9級(jí)特大地震影響枣耀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜庭再,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一捞奕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拄轻,春花似錦颅围、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至斧抱,卻和暖如春一疯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背夺姑。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工墩邀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盏浙。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓眉睹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親废膘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子竹海,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345