一、初次見(jiàn)面,你好vim
1、vim的基本概念
Vim
是從vi
發(fā)展出來(lái)的一個(gè)文本編輯器。代碼補(bǔ)全、編譯及錯(cuò)誤跳轉(zhuǎn)等方便編程的功能特別豐富,在程序員中被廣泛使用,和【Emacs】并列成為類Unix系統(tǒng)用戶最喜歡的文本編輯器
- 對(duì)于vim來(lái)說(shuō),不同的是vim是vi的升級(jí)版本,它不僅兼容vi的所有指令,而且
還有一些新的特性在里面。例如語(yǔ)法加亮,可視化操作不僅可以在終端運(yùn)行,也可以運(yùn)行于Windows、MacoOS - vim是一款 多模式的編輯器,它有著各種各樣的模式。例如【命令模式】【插入模式】【底行模式】【可視模式】【替換模式】等等12種模式,在本文中我將會(huì)詳細(xì)介紹這幾種模式,介紹每種模式的用法和差別,以及它們之間是如何進(jìn)行切換的
- 對(duì)于vim這款編輯器來(lái)說(shuō),它不同于其他編輯器的地方在于你可以僅使用鍵盤中的主鍵盤區(qū),基本可以完成絕大多數(shù)的操作,當(dāng)你進(jìn)入vim后,默認(rèn)便是命令模式,從此刻開(kāi)始你主鍵盤上的所有按鍵就被賦予了各種功能,在本文中我也會(huì)介紹絕大多數(shù)的功能按鍵
2、IDE與編輯器的區(qū)別
對(duì)于vim來(lái)說(shuō),大家一定要了解,它僅僅就是一款編輯器,從文章標(biāo)題應(yīng)該就可以看出
- 但是vim和我們?nèi)粘T趯?xiě)C/C++代碼的時(shí)候使用的VS2019可不一樣,VS2019叫做IDE【Integrated Development Environment】,是一個(gè)集成開(kāi)發(fā)環(huán)境, 用這一個(gè)軟件解決你在開(kāi)發(fā)過(guò)程中從開(kāi)始寫(xiě)代碼–>調(diào)試代碼–>編譯、鏈接、運(yùn)行代碼全部這些步驟
- 其實(shí)對(duì)于這些步驟來(lái)說(shuō),它們的功能都是獨(dú)立的,只是有很多軟件將它們都集成在了一起使得對(duì)于開(kāi)發(fā)者來(lái)說(shuō)可以更加高效地進(jìn)行開(kāi)發(fā)工作,但是我們要明白其中的原理
- 在Linux中,我們將對(duì)這三種功能進(jìn)行一個(gè)拆分,也就是將【代碼編輯】【調(diào)試觀察】【編譯運(yùn)行】這三者分開(kāi),交由不同的軟件進(jìn)行操作
- vim —— 負(fù)責(zé)代碼的編輯和維護(hù)工作
- gdb —— 符合負(fù)責(zé)代碼的調(diào)試工作
- gcc/g++ —— 負(fù)責(zé)代碼的編譯運(yùn)行工作
3、vim中的五種常見(jiàn)模式介紹
上見(jiàn)面講到了在vim下的五種模式,我們馬上來(lái)了解一下
- 正常/普通/命令模式【Normal mode】
控制屏幕光標(biāo)的移動(dòng),字符、字或行的刪除,移動(dòng)復(fù)制某區(qū)段及進(jìn)入Insert mode下,或者到 last line mode。在此模式下無(wú)法進(jìn)行代碼編輯
- 插入模式【Insert mode】
只有在Insert mode下,才可以做文字輸入,按「ESC」鍵可回到命令行模式。該模式是我們后面用的最頻繁的編輯模式
- 末行模式【Last line mode】
文件保存或退出,也可以進(jìn)行文件替換,找字符串,列出行號(hào)等操作。 在命令模式下,shift+: 即可進(jìn)入該模式。要查看你的所有模式:打開(kāi)vim,底行模式直接輸入
- 可視模式【Visual mode】
在正常模式按下v, V, Ctrl + v,可以進(jìn)入可視模式??梢暷J街械牟僮饔悬c(diǎn)像拿鼠標(biāo)進(jìn)行操作,選擇文本的時(shí)候有一種鼠標(biāo)選擇的即視感,有時(shí)候會(huì)很方便
- 替換模式【Replace mode】
在正常模式按下R,可以進(jìn)入可視模式。對(duì)于替換模式而言其實(shí)并沒(méi)有那么常用,因?yàn)樵诿钅J街芯涂梢灾苯舆M(jìn)行替換,也就是按下【r】鍵,然后直接對(duì)當(dāng)前光標(biāo)所在字符進(jìn)行替換即可。但是每次只可替換一次或者批量替換,在【替換模式】中可連續(xù)替換,更加方便
二、初出茅廬,vim基本操作
- 【紙上得來(lái)終覺(jué)淺,絕知此事要躬行】?聽(tīng)我講了這么多,相信你對(duì)vim應(yīng)該是有一個(gè)初步了解了,但是呢是騾子是馬??,總要拉出來(lái)溜溜才知道,接下去讓我們正式進(jìn)入【vim】的學(xué)習(xí)
1、安裝vim,進(jìn)入vim
可能有些同學(xué)系統(tǒng)中并沒(méi)有安裝過(guò)vim,下面是安裝命令。如果是買的云服務(wù)器那就不需要了,本身就是帶有的
sudo yum -y install vim //普通用戶
yum -y install vim //超級(jí)用戶
- 首先我們先來(lái)看看vim的初始進(jìn)入界面,直接輸入
vim
即可,它就是一條命令
- 當(dāng)前這只是顯示了一下
vim
的編輯界面,可以看到左上角的【No Name】,并沒(méi)有對(duì)任何一個(gè)文本在進(jìn)行操作?,F(xiàn)在我們創(chuàng)建一個(gè)文本進(jìn)行操作
- 然后我們就可以通過(guò)vim進(jìn)入這個(gè)代碼代碼文件中進(jìn)行編輯了
2、vim中的模式切換??
在上一小節(jié)中,我們雖然進(jìn)入了vim中,但是我在開(kāi)頭就說(shuō)了,對(duì)于vim而言存在多種模式,并不是所有模式都可以進(jìn)行代碼編輯的
- 當(dāng)我們一進(jìn)入vim的時(shí)候,便是【命令模式】,上面說(shuō)到了在這個(gè)模式下無(wú)法對(duì)文本去進(jìn)行編輯,只能對(duì)當(dāng)前的文本/代碼進(jìn)行一些基本的操作
- 想要從命令模式切換為其他模式,就要按下對(duì)應(yīng)的功能鍵,以下是vim中常見(jiàn)的5種模式
- 我分別來(lái)一一演示一下
【插入模式】
【末行模式】
【可視模式】
【替換模式】
注意事項(xiàng)
1. 如果你不知道自己在什么模式下,無(wú)腦Esc
2. 退出的時(shí)候,一般都時(shí)先保存,再退出【wq,write and quit】
3. vim操作中,不要用鼠標(biāo)和鼠標(biāo)的滑輪
三、初露鋒芒,vim指令集
對(duì)于大部分的指令來(lái)說(shuō),都在在【命令模式】下進(jìn)行的,【末行模式】少許讓我們走近vim的指令集,真正了解vim的魅力所在??
1、??命令模式指令集??
?移動(dòng)光標(biāo)
- vim可以直接用鍵盤上↑↓←→來(lái)進(jìn)行移動(dòng)移動(dòng),但正規(guī)的vim是用小寫(xiě)英文字母「h」、「j」、「k」、「l」,分別控制光標(biāo)左、下、上、右移一格.
- 按「 $ 」:移動(dòng)到光標(biāo)所在行的“行尾”【
shift + 4
】 - 按「^」:移動(dòng)到光標(biāo)所在行的“行首”【
shift + 6
】 - 按「w」:光標(biāo)跳到下個(gè)字的開(kāi)頭
- 按「b」:光標(biāo)回到上個(gè)字的開(kāi)頭
- 按「e」:光標(biāo)跳到下個(gè)字的字尾
- 按「#l」:光標(biāo)移到該行的第#個(gè)位置,如:5l,56l
- 按[gg]:進(jìn)入到文本開(kāi)始
- 按[G]:進(jìn)入文本末端【
shift + g
】 - 按
「ctrl」+「b」
:屏幕往“后”(上)移動(dòng)一頁(yè) - 按
「ctrl」+「f」
:屏幕往“前”(下)移動(dòng)一頁(yè) - 按
「ctrl」+「u」
:屏幕往“后”(上)移動(dòng)半頁(yè) - 按
「ctrl」+「d」
:屏幕往“前”(下)移動(dòng)半頁(yè)
?復(fù)制粘貼
- 「yw」:將光標(biāo)所在之處到當(dāng)前字尾的字符復(fù)制到緩沖區(qū)中。
- 「#yw」:復(fù)制#個(gè)字到緩沖區(qū)
- 「yy」:復(fù)制光標(biāo)所在行到緩沖區(qū)。
- 「#yy」:例如,「5yy」表示拷貝從光標(biāo)所在的該行“往下數(shù)”5行文字【包括光標(biāo)所在行】
- 「p」:將緩沖區(qū)內(nèi)的字符貼到光標(biāo)所在位置這一行的下一行。
- 「#p」:例如,「5p」表示拷貝從光標(biāo)所在的該行“往下數(shù)”5行文字?!景ü鈽?biāo)所在行】
?注意:所有與“y”有關(guān)的復(fù)制命令都必須與“p”配合才能完成復(fù)制與粘貼功能?。
?刪除
- 「x / #x」:刪除光標(biāo)所在位置的一個(gè)字符或#個(gè)字符,包括自己【左側(cè) ——> 右側(cè)】
- 「X / #X」:刪除光標(biāo)所在位置的一個(gè)字符或#個(gè)字符,包括自己【左側(cè) ——> 右側(cè)】
- 「#x」:例如,「6x」表示刪除光標(biāo)所在位置的“后面”6個(gè)字符【包含自己在內(nèi)】
- 「#X」:例如,「20X」表示刪除光標(biāo)所在位置的“前面”20個(gè)字符【不包含自己在內(nèi)】
- 「dd」:刪除光標(biāo)所在行
- 「#dd」:刪除光標(biāo)所在行開(kāi)始向下#行【包括當(dāng)前行】
- 執(zhí)行「p / #p」就可以達(dá)到裁剪的效果
- 若是只進(jìn)行「dd / #dd」的話就只進(jìn)行刪除行的操作了
?撤銷
- 「u」:如果您誤執(zhí)行一個(gè)命令,可以馬上按下「u」,回到上一個(gè)操作。按多次“u”可以執(zhí)行多次復(fù)原?!鞠喈?dāng)于Windows下的ctrl + z】
-
「ctrl + r」
: 撤銷的恢復(fù)【相當(dāng)于Windows下的ctrl + y】
??只要沒(méi)有wq保存并退出,只是w保存的話,可以無(wú)限【u】和【ctrl + r】??
?替換
- 「r」:替換光標(biāo)所在處的字符
- 「R」:替換光標(biāo)所到之處的字符,直到按下「ESC」鍵為止【相當(dāng)于替換模式】
?大小寫(xiě)切換
- ~【shift + `】
2、??插入模式指令集??
所謂插入模式,就是你可以在這個(gè)模式下對(duì)文本/代碼做增刪修改的操作,因此不存在指令集一說(shuō)
但是插入模式也被分為好幾種,也就是從命令模式按下【特定鍵】即可進(jìn)入不同插入模式
-
【命令模式】 ===》 【插入模式】 從目前光標(biāo)所在位置的開(kāi)始輸入文字【i】
- 使用
shift + i
進(jìn)入可以使光標(biāo)快速切換到當(dāng)前行行首
- 使用
-
【命令模式】 ===》 【插入模式】 從目前光標(biāo)所在位置的下一個(gè)位置開(kāi)始輸入文字【a】
- 使用
shift + a
進(jìn)入可以使光標(biāo)快速切換到當(dāng)前行行尾
- 使用
-
【命令模式】 ===》 【插入模式】 新起一行,從行首開(kāi)始輸入文字【o】
- 使用
shift + o
進(jìn)入可以使光標(biāo)快速切換到上一行行首
- 使用
3、??末行模式指令集??
- 末行模式也存在不少指令集,我們來(lái)瞧瞧看??
在使用末行模式之前,請(qǐng)記住先按「ESC」鍵確定您已經(jīng)處于正常模式,再按「:」冒號(hào)即可進(jìn)入末行模式
?調(diào)出和去掉行號(hào)
-
「set nu / set nonu」
—— 代碼前的行號(hào)
?跳到文件中的某一行
-
「:行號(hào)」
—— 例如:15
,然后按下Enter回車鍵,即可立馬跳轉(zhuǎn)到15行的第一個(gè)字符位置
?查找字符
-
「/關(guān)鍵字」
—— 先按「/」鍵,再輸入您想尋找的字符,如果第一次找的關(guān)鍵字不是您想要的,可以一直按「n」
會(huì)往后尋找到您要的關(guān)鍵字為止 -
「?關(guān)鍵字」
—— :先按「?」鍵,再輸入您想尋找的字符,如果第一次找的關(guān)鍵字不是您想要的,可以一直按「n」
會(huì)往前尋找到您要的關(guān)鍵字為止
對(duì)于「/」
查找和「?」
查找存在向前和向后的區(qū)別,我們通過(guò)動(dòng)圖來(lái)看看
?替換字符
-
「%s/替換前的字符串/替換后的字符串/g」
—— %s可以看成是C語(yǔ)言中字符串的格式聲明符,g代表[global]整體的
對(duì)于替換字符這一塊有很多的寫(xiě)法,就不一一列舉,有興趣可以看看——>VIM中常用的替換模式總結(jié)
?保存及退出vim
-
「q」
—— 直接退出 -
「q!」
—— 強(qiáng)制退出 -
「w」
—— 保存 -
「wq」
—— 保存并退出 -
「wq!」
—— 保存并強(qiáng)制退出
若修改文件這沒(méi)無(wú)權(quán)限無(wú)法退出、若是系統(tǒng)的重要配置文件會(huì)進(jìn)行提示
?不退出vim進(jìn)行相關(guān)指令操作
-
「! + 指令」
—— 在任何指令前加個(gè)【!】即可(注意和強(qiáng)制退出要進(jìn)行區(qū)分)- Press ENTER or type command to continue【按任意鍵繼續(xù)】
?分屏編寫(xiě)工程
- [vs 文件名] —— 創(chuàng)建文件
- [ctrl + ww] —— 切換光標(biāo)到不同的界面
- [q!] —— 強(qiáng)制退出當(dāng)前光標(biāo)所在文件,不保存
- [wq] —— 保存并退出當(dāng)前文件
在vim分屏模式下,光標(biāo)在哪里,我們就在編寫(xiě)哪一個(gè)文件
以上就是使用分屏模式編輯代碼,這在我們以后使用Linux寫(xiě)代碼的時(shí)候經(jīng)常會(huì)用到,要牢牢掌握
4、??可視模式指令集??
在可視模式下,比較常用的一條指令就是多行注釋
,放在這里將是因?yàn)樗浜稀久钅J健亢汀镜仔心J健恳黄鹗褂?/p>
- 多行注釋
修正一下,是Shift + i
- 取消多行注釋
5、??替換模式指令集??
R命令(shift + r)讓你一步到位進(jìn)入替換模式:對(duì)于需要替換多個(gè)字符,更好的方案是直接進(jìn)入替換模式。按下大寫(xiě)的R鍵,屏幕左下角出現(xiàn)REPLACE
字樣,說(shuō)明你已經(jīng)處于替換模式。此時(shí)輸入字符可以連續(xù)替換光標(biāo)及其后邊的內(nèi)容。
【注意】:退格鍵(Backspace)的作用
- 若是該字符在替換模式中被解釋為如果左邊的內(nèi)容被替換過(guò),則恢復(fù)到原來(lái)的樣子;
- 若是沒(méi)有被替換過(guò),則簡(jiǎn)單的向左移動(dòng)。修改完畢后,按下Esc鍵回到普通模式
四、初探內(nèi)核,vim配置
1、自定義配置
- 有關(guān)vim的配置是各用戶獨(dú)立的,因?yàn)檫@取決于每個(gè)用戶家目錄下的一個(gè)配置文件
.vimrc
- 所以在配置自己的vim時(shí),是不會(huì)影響其他用戶的
我們可以來(lái)看看這個(gè)配置文件,你可以直接vim ~/.vimrc
進(jìn)入,也可以像我一樣一步步找
- 這些是我之前已經(jīng)配置好的,你如果是第一次進(jìn)去的話就是空白的什么也沒(méi)有
- 有關(guān)vim的一些配置可以參考一下這篇文章 ——> .vimrc文件配置
- 你可以根據(jù)自己的喜好去配置vim,打造一個(gè)專屬于自己的編輯器
2、自動(dòng)化配置
當(dāng)然,你肯定會(huì)任何這么一條條去配置不是要累死人了,那樣的好你可以選擇自動(dòng)化配置,只需要打上一條命令即可
- 這是某位大神為了方便小白們繞過(guò)繁瑣的vim配置而專門設(shè)計(jì)的一個(gè)自動(dòng)化配置鏈接,可以在gitee上搜索
vimforcpp
便可以找到
- 因?yàn)槲业膙im已經(jīng)配置好了,我們可以新建一個(gè)用戶來(lái)進(jìn)行配置
- 輸入
root
的密碼后就可以進(jìn)行安裝配置了
注意:因?yàn)檫@是從gitee上面拿過(guò)來(lái)的,所以需要你的系統(tǒng)中裝有g(shù)it才行
① 使用
git --version
查看自己的系統(tǒng)中是否有安裝git② 沒(méi)安裝的話使用
yum install -y git
稍等一會(huì)就可以安裝好了
- 很快就可以配置好了,接下去手動(dòng)敲一下這句命令是你的家目錄底下產(chǎn)生一個(gè)
.bashrc
的文件讓vim的配置生效即可
- 來(lái)到家目錄觀察一下就可以看到配置完成了,然后再進(jìn)去
.vimrc
這個(gè)配置文件看看
- 可以看到進(jìn)去后配置就看到自動(dòng)化配置就完成了
五、總結(jié)與提煉
再看完本文之后相信你對(duì)vim一定有了一定程度的了解,我們趕緊來(lái)總結(jié)一下吧??
- 在一開(kāi)始,我們初步認(rèn)識(shí)了vim這款強(qiáng)大的編輯器,并且先見(jiàn)了見(jiàn)vim中常見(jiàn)的五種編輯模式
- 接著,就開(kāi)始對(duì)vim進(jìn)行一些操作,知道了如何相互切換vim之間的各種模式,做到了來(lái)去自如
- 最后,要真正在vim中開(kāi)始寫(xiě)代碼了,但是發(fā)現(xiàn)并沒(méi)有那么容易,需要熟悉vim中各種模式的命令,我們分別學(xué)習(xí)了
命令模式
、插入模式
、末行模式
、可視模式
、替換模式
這五種常用的模式中所包含的一些命令集,我也針對(duì)性地做了一些GIF動(dòng)圖幫助大家去理解,不過(guò)最終還是要靠你自己去勤加練習(xí)才可以熟練使用vim這款編輯器
下面是幾篇有關(guān)vim的文章,可供閱讀學(xué)習(xí)
一、簡(jiǎn)明VIM練級(jí)攻略
二、給程序員的VIM速查卡
三、Vim從入門到牛逼(vim from zero to hero)
以上就是本文所有介紹的所有內(nèi)容,如果覺(jué)得還可以記得給個(gè)三連哦??????文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-803352.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-803352.html
到了這里,關(guān)于Linux | 人生苦短,我用Vim【最受歡迎的編輯器】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!