菜鳥眼中的vim 編譯器

Vi(Visual Interface) 是一種文本編輯器衰腌,常見的文本編譯器有ASCII編碼飞傀,UNICODE編碼等涝涤。Vim即vi improved :是vi的增強(qiáng)版,vim是模式化的編輯沪摄。

vim在工作中有3種模式:

-編輯模式:也叫命令模式,:默認(rèn)模式,移動光標(biāo)杨拐,剪切/粘貼文本祈餐;

-插入模式:在文本文件當(dāng)中進(jìn)行輸入內(nèi)容;

-末行模式:vim內(nèi)置的命令接口哄陶,執(zhí)行vim的內(nèi)置命令帆阳,保存,退出等

如下圖所示:

文字解釋三者之間的模式轉(zhuǎn)換:

命令–>插入:

i: 在當(dāng)前光標(biāo)所在字符的前面屋吨,轉(zhuǎn)為輸入模式蜒谤;

I:在當(dāng)前光標(biāo)所在行的行首,轉(zhuǎn)換為輸入模式

A:在當(dāng)前光標(biāo)所在行的行尾至扰,轉(zhuǎn)換為輸入模式

a: 在當(dāng)前光標(biāo)所在字符的后面鳍徽,轉(zhuǎn)為輸入模式;

o: 在當(dāng)前光標(biāo)所在行的下方敢课,新建一行阶祭,并轉(zhuǎn)為輸入模式;

O:在當(dāng)前光標(biāo)所在行的上方直秆,新建一行濒募,并轉(zhuǎn)為輸入模式;

插入–>命令:

ESC

命令–>擴(kuò)展:

:

擴(kuò)展–>命令:

ESC圾结,Enter

注意:插入模式和擴(kuò)展命令模式之間不能直接切換萨咳。

EX:使用Esc2次或enter回到命令模式,將沒有:

q退出

q!強(qiáng)制退出

w保存

wq或x保存并退出

wq!或x!當(dāng)文件對當(dāng)前用戶權(quán)限為read-only時疫稿,可以強(qiáng)制保存并退出(僅限r(nóng)oot和當(dāng)前文件的owner)

打開文件

vim +# :打開文件培他,直接讓光標(biāo)處于第#行的行首

vim +:打開文件,定位至最后一行遗座,默認(rèn)行尾

vim +/PATTERN : 打開文件舀凛,直接讓光標(biāo)處于第一個PATTERN匹配到的行的行首

–b file 二進(jìn)制方式打開文件

–d file1 file2… 比較多個文件

-m file 只讀打開文件

ex file 或 vim –e 直接進(jìn)入ex模式

如果該文件存在,文件被打開并顯示內(nèi)容

如果該文件不存在途蒋,當(dāng)編輯后第一次存盤時創(chuàng)建它

關(guān)閉文件

1猛遍、擴(kuò)展模式關(guān)閉文件

:q 退出

:wq 保存并退出

:q! 不保存并退出

:w 保存

:w! 強(qiáng)行保存

:wq! 強(qiáng)行保存退出

2号坡、命令模式下退出

ZZ: 保存并退出

ZQ:不保存退出

移動光標(biāo)(編輯模式)

1懊烤、逐字符移動:

h: 左

l: 右

j: 下

k: 上

#h: 表示移動#個字符

2、以單詞為單位移動

w: 移至下一個單詞的詞首

e: 跳至當(dāng)前或下一個單詞的詞尾

b: 跳至當(dāng)前或前一個單詞的詞首

#w: 表示移動#個單詞

3宽堆、行內(nèi)跳轉(zhuǎn):

0: 絕對行首

^: 行首的第一個非空白字符

$: 絕對行尾

4腌紧、行間跳轉(zhuǎn)

#G:跳轉(zhuǎn)至第#行

gg: 第一行

G:最后一行

5、當(dāng)前頁跳轉(zhuǎn):

H:頁首 M:頁中間行 L:頁底

## vim編輯命令 ##

1畜隶、翻屏

Ctrl+f: 向下翻一屏

Ctrl+b: 向上翻一屏

Ctrl+d: 向下翻半屏

Ctrl+u: 向上翻半屏

2壁肋、刪除單個字符

x: 刪除光標(biāo)所在處的單個字符

#x: 刪除光標(biāo)處起始的#個字符

xp: 交換光標(biāo)所在處的字符及其后面字符的位置

刪除命令: d

d命令跟跳轉(zhuǎn)命令組合使用

d$: 刪除到行尾

d^:刪除到非空行首

d0:刪除到行首

dw:刪除下一個單詞的詞首

de:刪除跳至當(dāng)前或下一個單詞的詞尾

db:刪除跳至當(dāng)前或前一個單詞的詞首

dd: 刪除當(dāng)前光標(biāo)所在行

dd: 刪除包括當(dāng)前光標(biāo)所在行在內(nèi)的#行号胚;

粘貼命令 p

p: 如果刪除或復(fù)制為整行內(nèi)容,則粘貼至光標(biāo)所在行的下方浸遗,如果復(fù)制或刪除的內(nèi)容為非整行猫胁,則粘貼至光標(biāo)所在字符的后面

P: 如果刪除或復(fù)制為整行內(nèi)容,則粘貼至光標(biāo)所在行的上方跛锌,如果復(fù)制或刪除的內(nèi)容為非整行弃秆,則粘貼至光標(biāo)所在字符的前面

復(fù)制命令 y

用法同d命令

#yy: 復(fù)制多行

Y: 復(fù)制整行

修改:先刪除內(nèi)容,再轉(zhuǎn)換為輸入模式

c: 用法同d命令

cc:刪除當(dāng)前行并輸入新內(nèi)容

C:刪除當(dāng)前光標(biāo)到行尾髓帽,并切換成插入模式

撤消編輯操作 u

u:撤消前一次的編輯操作

#u: 直接撤消最近#次編輯操作

連續(xù)u命令可撤消此前的n次編輯操作

撤消最近一次撤消操作:Ctrl+r

## 擴(kuò)展模式 ##

1菠赚、內(nèi)容界定

.: 表示當(dāng)前行

:最后一行.,-1 當(dāng)前行到倒數(shù)第二行

# 具體第#行,例如2表示第2行

+#: 從左側(cè)#表示的起始行氢卡,加上右側(cè)#表示的行數(shù) 如:2,+3 表示2到5行

##:從左側(cè)#表示起始行锈至,到右側(cè)#表示結(jié)尾行

% 全文, 相當(dāng)于1,$

2、查找

/PATTERN 從當(dāng)前光標(biāo)所在處向文件尾部查找

?PATTERN 從當(dāng)前光標(biāo)所在處向文件首部查找

n 與命令同方向

N 與命令反方向

查找并替換

在末行模式下使用s命令

格式:s/要查找的內(nèi)容/替換為的內(nèi)容/修飾符

修飾符:

i: 忽略大小寫

g: 全局替換译秦;默認(rèn)情況下峡捡,每一行只替換第一次出現(xiàn)

gc:全局替換,每次替換前詢問

查找替換中的分隔符/可替換為其它字符筑悴,例如

s@/etc@/var@g

s#/boot#/#i

多文件模式

使用vim編輯多個文件

vim FILE1 FILE2 FILE3

:next 切換至下一個文件

:prev 切換至前一個文件

:last 切換至最后一個文件

:first 切換至第一個文件

:q退出當(dāng)前文件

:wall 保存所有

:qall 退出所有

:wqall保存所有文件并退出

## 多窗口模式 ##

分屏顯示一個文件

Ctrl+w, s: 水平拆分窗口

Ctrl+w, v: 垂直拆分窗口

在窗口間切換光標(biāo):

Ctrl+w, ARROW(h,j,k,l或方向鍵)

:qa 關(guān)閉所有窗口

分窗口編輯多個文件

vim -o : 水平分割顯示

vim -O : 垂直分割顯示

q 能退出多窗口模式

/pat1/,/pat2/

從第一次被pat1模式匹配到的行開始们拙,一直到第一次被

pat2匹配到的行結(jié)束

#,/pat/ :從第#行開始到第一次匹配到pat為止

/pat/,$:從第一次匹配到pat到最后一行

使用方式:后跟一個編輯命令

d(刪除)

y(復(fù)制)

w file: 將范圍內(nèi)的行另存至指定文件中

r file:在指定位置插入指定文件中的所有內(nèi)容

高級話題

1阁吝、顯示或取消顯示行號

:set nu

:set nonu

nu = number

2砚婆、顯示忽略或區(qū)分字符大小寫

:set ic

:set noic

ic = ignorecase

3、設(shè)定自動縮進(jìn)

:set ai

:set noai

ai = autoindent

4突勇、查找到的文本高亮顯示或取消

:set hlsearch

:set nohlsearch

5装盯、語法高亮

:syntax on

:syntax off

注意:特性當(dāng)前有效,如果想要永久有效需修改配置文件

配置文件定義:

/etc/vimrc 針對所有用戶

~/.vimrc 針對當(dāng)前用戶

課堂練習(xí)

1甲馋、復(fù)制/etc/profile至/tmp/目錄埂奈,用查找替換命令刪除/tmp/profile文件中的行首的空白字符

%s/^[[:blank:]]+//g

思路:

查找內(nèi)容為空白字符為首要加^,替換內(nèi)容為空白,g表示全局替換定躏。

2账磺、復(fù)制/etc/rc.d/init.d/functions文件至/tmp目錄,用查找替換命令為/tmp/functions的每行開頭為空白字符的行的行首添加一個#號

%s/^[[:spacge:]]/# /g

或%s/^([[:space:]])/#\1/g

或%s/^[[:space:]]/#&/

思路:第二種方法使用了后向引用痊远,\1表示引用[[:space:]],#號后都為空白字符垮抗。第三種方法中&相當(dāng)于前面的空白字符。

3碧聪、復(fù)制/etc/rc.d/init.d/functions文件至/tmp目錄冒版,替換/tmp/functions文件中的/etc/sysconfig/init為/var/log

%s/\/etc/sysconfig/init/\/viar/log/gi

思路:這里的\表示轉(zhuǎn)義,gi表示全局替換矾削,忽略大小寫

4壤玫、刪除/tmp/functions文件中所有以#開頭豁护,且#后面至少有一個空白字符的行的行首的#號

%s/^#[[:space:]]{1,}//g

思路:\{1,\}表示匹配前面命令至少1次哼凯,查找內(nèi)容為:^#[[:space:]]\{1,\}欲间,替換內(nèi)容:要刪除所以為空。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末断部,一起剝皮案震驚了整個濱河市猎贴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蝴光,老刑警劉巖她渴,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蔑祟,居然都是意外死亡趁耗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進(jìn)店門疆虚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來苛败,“玉大人,你說我怎么就攤上這事径簿“涨” “怎么了?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵篇亭,是天一觀的道長缠捌。 經(jīng)常有香客問我,道長译蒂,這世上最難降的妖魔是什么曼月? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮柔昼,結(jié)果婚禮上哑芹,老公的妹妹穿的比我還像新娘。我一直安慰自己岳锁,他們只是感情好绩衷,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般俏蛮。 火紅的嫁衣襯著肌膚如雪插龄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天招盲,我揣著相機(jī)與錄音,去河邊找鬼嘉冒。 笑死曹货,一個胖子當(dāng)著我的面吹牛咆繁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播顶籽,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼玩般,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了礼饱?” 一聲冷哼從身側(cè)響起坏为,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎镊绪,沒想到半個月后匀伏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蝴韭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年够颠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片榄鉴。...
    茶點(diǎn)故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡履磨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出牢硅,到底是詐尸還是另有隱情蹬耘,我是刑警寧澤,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布减余,位于F島的核電站综苔,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏位岔。R本人自食惡果不足惜如筛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抒抬。 院中可真熱鬧杨刨,春花似錦、人聲如沸擦剑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惠勒。三九已至赚抡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纠屋,已是汗流浹背涂臣。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留售担,地道東北人赁遗。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓署辉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親岩四。 傳聞我的和親對象是個殘疾皇子哭尝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Ubuntu的發(fā)音 Ubuntu末捣,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音创橄。了解發(fā)音是有意...
    螢火蟲de夢閱讀 99,274評論 9 467
  • 命令歷史 以:和/開頭的命令都有歷史紀(jì)錄箩做,可以首先鍵入:或/然后按上下箭頭來選擇某個歷史命令。 啟動vim 在命令...
    im螞蟻閱讀 30,751評論 3 48
  • Vim幾句話介紹Vim是Unix系統(tǒng)上的文本編輯軟件(你該不會不知道什么是文本編輯軟件吧M孜贰)邦邦,在windows上也...
    何必遠(yuǎn)方閱讀 3,144評論 0 3
  • Day2,色調(diào)對比的圖案醉蚁。練習(xí)三個圖樣燃辖,并完成一幅禪繞畫作品。 禪繞畫最大的特點(diǎn)就是用簡單的黑白表現(xiàn)豐富的內(nèi)容网棍!因...
    愛芮閱讀 859評論 0 2
  • 下午四點(diǎn)鐘黔龟,一個陌生電話打入,工作原因我一般不拒接任何陌生電話滥玷。一看是從家里打來的氏身,接起來是我媽的聲音,哦惑畴,差...
    做自己一僑閱讀 521評論 0 0