国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

vim 入坑指南

zhou_you / 1940人閱讀

摘要:助記符上的所有定義的快捷鍵都是有一定的意義的,在這里我先把常用的一些列出來(lái)。我剛開始學(xué)的時(shí)候,還不知道有那些助記符,基本完全靠死記硬背,我就是用一張紙,然后把命令手寫抄到紙上,放在我的電腦旁,忘了就馬上拿來(lái)看看,別說(shuō),效果還挺好的。

個(gè)人站點(diǎn):桃園
0. 前言 0.1 簡(jiǎn)介

vim 被譽(yù)為『編輯器之神』,與之同時(shí)代的 emacs 被譽(yù)為『神之編輯器』。可以看得出 vim 在編輯器的地位是很高的,得益于 vim 的指法,敲起代碼來(lái)如行云流水。特別膜拜創(chuàng)始人創(chuàng)始出這么方便的敲代碼的指法,這篇文章就是來(lái)帶你入坑 vim 指法操作。

0.2 前端的我為什么要學(xué)習(xí) vim

在當(dāng)今前端開發(fā)工具百花齊放的時(shí)代(VS Code、Sublime、Atom 以及 IDE Webstorm),我為什么還要介紹 20 多年前開發(fā)的一個(gè)老古董呢?在這里我想說(shuō)的是出身雖然老,但是所帶來(lái)的價(jià)值并沒(méi)有減,一旦習(xí)慣了 vim 的指法之后,你會(huì)覺(jué)得不用 vim 操作寫代碼會(huì)覺(jué)得很不習(xí)慣,甚至不知道怎么操作。然而用在支持 vim 指法的編輯上寫代碼你會(huì)覺(jué)得如行云流水,如果再配個(gè)機(jī)械鍵盤,簡(jiǎn)直是享受,特別符合極客的風(fēng)格。

一旦學(xué)會(huì)了 vim 的指法,會(huì)讓你終身受益,至少在你敲代碼的年代會(huì)收益,毫無(wú)夸張, 它會(huì)讓你擺脫煩人的,在敲代碼的時(shí)候頻繁的移動(dòng)鼠標(biāo),這也是 vim 的設(shè)計(jì)理念之一 -- 脫離鼠標(biāo)。

0.3 文章適用讀者

本篇文章比較適合前端開發(fā)者,因?yàn)槲乙仓皇怯?vim 在前端領(lǐng)域做過(guò)一些開發(fā),其他領(lǐng)域我沒(méi)有發(fā)言權(quán)。

0.4 Q&A

Q:你推薦 vim 是要我們完全放棄以前的編輯器而投入 vim 的懷抱嗎?

A:當(dāng)然不是。首先 vim 的學(xué)習(xí)成本還是很高的,因?yàn)樗綍r(shí)我們用的編輯器敲代碼的方式根本不同,因?yàn)樗遣挥檬髽?biāo)的,純鍵盤操作。你想想如果你在你的 vs code 上不用鼠標(biāo)操作,你上下左右全靠方向鍵,那敲代碼的速度得有多慢。而且初學(xué)者想把 vim 打造成一個(gè)自己的 IDE 還是很有難度的。所以我這里推薦的是,不管是你的 vs code、sublime等,裝一個(gè) vim 插件。我在 vs code 上試過(guò),很爽,只不過(guò)現(xiàn)在投身到 emacs 的懷抱了。

雖然我用 emacs 了,我還是會(huì)裝 vim 插件(Evil)。如果有興趣,下次可以推薦一下 spacemacs 。

開題說(shuō)了這么多,就是想吸引一下大家,覺(jué)得 vim 的指法是值得去學(xué)習(xí)的,接下來(lái)進(jìn)入正題。

1 助記符

vim 上的所有定義的快捷鍵都是有一定的意義的,在這里我先把常用的一些列出來(lái)。

1.1 正則表達(dá)式相關(guān)

$ : 移動(dòng)光標(biāo)到行尾

^ : 移動(dòng)光標(biāo)到當(dāng)前行的第一個(gè)字母位置。

1.2 移動(dòng)類(motion)

h(左)、l(右)、j(上)、k(下)、f(front)、b(back)、u(up)

1.3 操作類(operator)

d(delete)、i(insert)、a(append)、c(change)、y(copy)、p(paste)

1.4 一般的縮寫

w(word)、s(sentence)

2 理解 vim 中三種常用模式

vim 里面有好幾種模式,但是因?yàn)槲疫@里介紹的是在目前的編輯器里面裝 插件,所以像命令模式這種用來(lái)保存文件、退出文件的就不介紹了。

Nomal mode(默認(rèn)模式,因?yàn)槭褂迷撃J綀?chǎng)景最多,所有定為默認(rèn)模式)。

Insert mode (插入模式--少用,用了它 vim 就成 「啞巴」了)。

Visual mode(可視模式,取名叫光標(biāo)模式或者選擇模式可能還比較好理解)

2.1 三種模式之間的轉(zhuǎn)換關(guān)系

3 教程篇

當(dāng)我們記住上面的助記符之后,我們就可以像寫英文短語(yǔ)一樣操作了。

vim 快捷鍵語(yǔ)法:operator[motion],例如 刪兩個(gè)單詞就是 
d2w,operator 和 motion 我已經(jīng)在前面給出來(lái)一些了。
3.1 移動(dòng)光標(biāo) 3.1.1 最基本的 h、j、k、l

最基本的上下左右移動(dòng)(跟鍵盤上下左右的鍵盤效果相同,但是往往方向鍵在鍵盤的右下方,離主鍵盤區(qū)較遠(yuǎn),這個(gè)也相對(duì)比較有優(yōu)勢(shì)):

h:光標(biāo)向左移動(dòng)

j:光標(biāo)向下移動(dòng)

k:光標(biāo)向上移動(dòng)

l:光標(biāo)向右移動(dòng)

移動(dòng)屬于 motion,所以在前面加上「count」就可以移動(dòng)多行了,比如向上移動(dòng) 10 行,就可以 10k。往往編輯器會(huì)有行號(hào),定位需要做個(gè)加減法,如果采用的是相對(duì)行號(hào),用這個(gè)就比較方便。不懂相對(duì)行號(hào)的同學(xué)看下圖就懂了。

3.1.2 快速移動(dòng)

w:光標(biāo)往前移動(dòng)一個(gè)詞
b:光標(biāo)向后移動(dòng)一個(gè)詞
0:移動(dòng)光標(biāo)到當(dāng)前行首
^:移動(dòng)光標(biāo)到當(dāng)前行的第一個(gè)字母位置(注意與 0 的區(qū)別)
$:移動(dòng)光標(biāo)到行尾
fx:移動(dòng)光標(biāo)到當(dāng)前行的下一個(gè) x 處(x為任意字母)
tx:和上面一個(gè)命令類似,移動(dòng)到 x 的左邊一個(gè)位置
):移動(dòng)光標(biāo)到下一個(gè)句子
( :移動(dòng)光標(biāo)到上一個(gè)句子
{:移動(dòng)光標(biāo)到上一段
}:移動(dòng)光標(biāo)到下一段

3.1.3 快速定位

在剛才介紹了通過(guò)相對(duì)行號(hào)來(lái)進(jìn)行移動(dòng)到行的光標(biāo),還有采用絕對(duì)定位來(lái)移動(dòng)的。那就是 gg。
語(yǔ)法: [num]gg

2gg : 光標(biāo)移動(dòng)到第 2 行

gg: 光標(biāo)移動(dòng)到文件首部

G:移動(dòng)到文件胃部

H:移動(dòng)到屏幕上面

M:移動(dòng)到屏幕中間

L:移動(dòng)到屏幕下面

書簽功能:這個(gè)功能也是很方便,很少有編輯器有的功能,多帶帶列出來(lái)講,強(qiáng)烈推薦。

m:給當(dāng)前行加入書簽,x 為任意字母(m 是 mark )

` : 單引號(hào)加上剛才 m 之后的字母,就會(huì)調(diào)整到剛才標(biāo)記的那一行

3.1.3 屏幕滾動(dòng)

Ctrl + b:向上移動(dòng)一屏(Foward首字母小寫)
Ctrl + f:向下移動(dòng)一屏(Backward首字母小寫)
Ctrl + d:向下滾動(dòng)半屏內(nèi)容(Down首字母小寫)
Ctrl + u:向上滾動(dòng)半屏內(nèi)容(Up首字母小寫)

3.2 剪切、復(fù)制、粘貼

d[n]w:剪切后面 n 個(gè)單詞的內(nèi)容,dw 是剪切當(dāng)前單詞

[n]dd:剪切n行的內(nèi)容, dd 為剪切當(dāng)前行

D:剪切光標(biāo)后到行尾的內(nèi)容

yy/Y:復(fù)制當(dāng)前行的內(nèi)容

p:粘貼到光標(biāo)后

P:粘貼到光標(biāo)前

在 normal 模式下是沒(méi)有刪除操作的,d 這種刪除也是剪切。

以上全是 normal 模式
3.3 編輯模式

在前面也說(shuō)了,進(jìn)入編輯模式也就變成了「啞巴」vim 了,就跟一般的編輯器沒(méi)什么區(qū)別了。很多人就知道用 i 可以進(jìn)入,還有很多命令可以讓你聰明的進(jìn)入。

i:在光標(biāo)處插入(insert首字母小寫)

I:在行首插入(insert首字母大寫)

a:在光標(biāo)處后一個(gè)字符插入(append首字母小寫)

A:在行尾插入(append首字母大寫)

o:在上一行插入

O:在下一行插入

s:清除當(dāng)前字符并進(jìn)入插入模式

cc/S:清除當(dāng)前行并進(jìn)入插入模式

cw: 清除當(dāng)前單詞并進(jìn)入插入模式

3.4 可視模式

要是前面都學(xué)會(huì)了,可視模式就比較簡(jiǎn)單了,而且你將會(huì)經(jīng)常用到這個(gè)模式。我會(huì)把這個(gè)模式稱做「選擇模式」,接下來(lái)我們就來(lái)探索一下是如果選擇的。

其實(shí)也就兩個(gè)關(guān)鍵的點(diǎn):v(字符選擇)、V(行選擇)

3.4.1 v(小寫 v)

在 normal 模式下,按一下 v,然后可以按 l,重復(fù)按 l,你會(huì)發(fā)現(xiàn)右邊的在一直被選中(高亮的部分)。同樣的操作,按了 v,然后再練習(xí)一下按 h、j、k。

選中的目的是什么呢?就是為了進(jìn)行一些編輯操作,比如刪除 d (實(shí)質(zhì)是剪切)、復(fù)制 y。

小提示,常常選中之后用 c 也是比較好的選擇哦,剪切并進(jìn)入插入模式。
3.4.2 V(大寫 V)

V 就是選中行,也很簡(jiǎn)單。按了 V 之后,然后按 j、k,就可以上下選擇行了,然后一次性刪除 d、復(fù)制 y,就比較方便。

3.5 組合操作

這個(gè)功能就比較強(qiáng)悍了,很適用,強(qiáng)烈推薦。
先來(lái)記公式:operator + i|a + scope

operator 就是我們前面提到的插入(c)、剪切(d)、復(fù)制(y)以及選擇(v),i 表示 scope 范圍內(nèi),a 表示包含 scope 標(biāo)簽,scope 就是操作的范圍了。

實(shí)例:
以下如果將 i 換成 a,則會(huì)將符號(hào)也包含進(jìn)去
vib(選中小括號(hào)內(nèi)的內(nèi)容)
viB(選中大括號(hào)內(nèi)的內(nèi)容)
vi"(選中雙引號(hào)內(nèi)的內(nèi)容)
vi"(選中單引號(hào)內(nèi)的內(nèi)容)
vi<(選中尖括號(hào)內(nèi)的內(nèi)容)

3.6 撤回、查找、替換

u: 撤回上次操作(效果跟 command + z 效果一樣)
/|?xxx:表示在整篇文檔中搜索匹配xxx的字符串, / 表示向下查找, ? 表示向上查找.其中xxx可以是正規(guī)表達(dá)式。查找到以后, 再輸入 n 查找下一個(gè)匹配處, 輸入 N 反方向查找.
:%s/original/replacement:檢索第一個(gè) “original” 字符串并將其替換成 “replacement”
:%s/original/replacement/g: 檢索并將所有的 “original” 替換為 “replacement”
:%s/original/replacement/gc:檢索出所有的 “original” 字符串,但在替換成 “replacement” 前,先詢問(wèn)是否替換

這些操作一般編輯器都自帶有很好的快捷鍵,記不住也沒(méi)啥。

4 結(jié)束語(yǔ)

我寫這篇文章的目的不是為了總結(jié)什么知識(shí)點(diǎn)(其實(shí)當(dāng)你 vim 用熟了,這些命令完全形成肌肉記憶了,根本不用記下來(lái)),或者說(shuō)想發(fā)篇文章之類的,僅僅是想給 vim 做一個(gè)宣傳,讓更多的人接觸 vim,讓更多的開發(fā)者在開發(fā)上效率更高。如果你覺(jué)得這篇文章對(duì)你有幫助,請(qǐng)轉(zhuǎn)發(fā)給更多的人讓他們都了解了解。

最后想提醒的就是,對(duì)于這些快捷鍵,死記是很難記完的,根據(jù)我總結(jié)的一些語(yǔ)義話的方式去記,有公式的記公式,可能要快一點(diǎn),然后就是多實(shí)踐,敲多了自己就記住了。我剛開始學(xué)的時(shí)候,還不知道有那些助記符,基本完全靠死記硬背,我就是用一張紙,然后把命令手寫抄到紙上,放在我的電腦旁,忘了就馬上拿來(lái)看看,別說(shuō),效果還挺好的。

祝你們好運(yùn)!

大家好,我是桃翁,我為自己代言!

個(gè)人微信公眾號(hào),以后盡量堅(jiān)持每周一篇干貨

參考文章:
VIM 百度百科
如何用Vim提高開發(fā)效率

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/25006.html

相關(guān)文章

  • HTTP API 設(shè)計(jì)入坑指南(一)

    一、請(qǐng)求方式 1. 請(qǐng)求方式有g(shù)et/post/put/delete/options 2. get和post的區(qū)別: get通常用作獲取數(shù)據(jù),post通常用作提交數(shù)據(jù) get參數(shù)有長(zhǎng)度限制,受限于URL長(zhǎng)度(http協(xié)議對(duì)url長(zhǎng)度不限制,而是服務(wù)器和瀏覽器的配置參數(shù)限制),post無(wú)限制 get冪等,post不冪等(冪等:多次請(qǐng)求,結(jié)果一樣) header里有個(gè)參數(shù)content-length...

    jay_tian 評(píng)論0 收藏0
  • HTTP API 設(shè)計(jì)入坑指南(二)

    摘要:而只需要服務(wù)端生成,客戶端保存,每次請(qǐng)求在頭部中使用攜帶,服務(wù)端認(rèn)證解析就可。如果緩存不清理,驗(yàn)證碼就會(huì)一直有效,不安全。 一、授權(quán) 參考文獻(xiàn):https://blog.risingstack.com/... 1. Basic authentication (最簡(jiǎn)單,適用于沒(méi)有第三方的請(qǐng)求接口中) 客戶端發(fā)送authorization,內(nèi)容為 Basic Base64編碼(usern...

    JayChen 評(píng)論0 收藏0
  • HTTP API 設(shè)計(jì)入坑指南(二)

    摘要:而只需要服務(wù)端生成,客戶端保存,每次請(qǐng)求在頭部中使用攜帶,服務(wù)端認(rèn)證解析就可。如果緩存不清理,驗(yàn)證碼就會(huì)一直有效,不安全。 一、授權(quán) 參考文獻(xiàn):https://blog.risingstack.com/... 1. Basic authentication (最簡(jiǎn)單,適用于沒(méi)有第三方的請(qǐng)求接口中) 客戶端發(fā)送authorization,內(nèi)容為 Basic Base64編碼(usern...

    pingan8787 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<