色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Vim使用技巧總結(jié)

馬哥Linux運(yùn)維 ? 來(lái)源:未知 ? 作者:胡薇 ? 2018-06-06 09:20 ? 次閱讀

轉(zhuǎn)眼上vim的“賊船”有一年多了。從PHP到C,都在用。想要真正用vim于日常的編碼工作,必然需要一些插件的支持。不過(guò)本文并不打算總結(jié)插件,筆者認(rèn)為 vim 的兩個(gè)精髓:組合和重復(fù)跟插件也沒(méi)有什么關(guān)系。

命令模式應(yīng)該是常態(tài)

在大多數(shù)編輯器中,相信大家都喜歡敲幾個(gè)單詞就 “保存(ctrl+s)” 一下。而在 vim 中,保存是:w,而且需要在命令模式下進(jìn)行。因此,往往要按Esc:w多達(dá)三個(gè)鍵才能保存。很多初學(xué)者十分詬病這個(gè)設(shè)計(jì)。事實(shí)上,經(jīng)常使用Esc切換到命令模式才是 vimer 需要練就的第一個(gè)重要的反射行為。可以毫不夸張的說(shuō),只要你不在輸入文字,就應(yīng)該切換在命令模式下,命令模式應(yīng)該是常態(tài)!

HJKL 讓右手歇歇,畢竟右手 “很累”

這是 vim 中的光標(biāo)上下左右的移動(dòng),剛開(kāi)始使用 vim 的同學(xué)可能覺(jué)得這并沒(méi)有什么卵用,我用鍵盤(pán)上的上下左右就可以了!我們知道,vim 的大部分快捷鍵需要在命令模式下完成,而且 HJKL 也是需要在命令模式下才生效的,如果你經(jīng)常在插入模式下工作,當(dāng)然不會(huì)去用 HJKL。然而,當(dāng)你真正開(kāi)始更多的使用命令模式的時(shí)候,你會(huì)懶到不想把右手挪到 “上下左右” 那兒去,這個(gè)時(shí)候 HJKL 成為無(wú)需思考的反射行為。HJKL 的好處就是減少了右手的位移距離。畢竟右手還有很多 “事情” 要做。

讓你的操作可重復(fù)

我們來(lái)舉個(gè)例子,假設(shè)如下文本

onetwo three four five six

我希望改成

"one","two","four","five","six"

首先光標(biāo)定位在該行的行首,可使用^。然后鍵入f?(?表示空格),此時(shí)光標(biāo)定位在 one 和 two 之間的空格處,然后鍵入c?","(修改空格,進(jìn)入插入模式,然后增加","):

one","two three four five six

接著按;.,光標(biāo)將先查找下一個(gè)空格,即重復(fù)f?,這個(gè)空格位于 two 和 three 之間,然后.可以重復(fù)上一次的修改操作,即c?",":

one","two","three four five six

接著重復(fù)按若干次;.即可完成所有中間字符的修改:

one","two","three","four","five","six

最后應(yīng)用I和A,添加開(kāi)始和最后的雙引號(hào)就可以了。

通過(guò)這個(gè)例子,vimer 必須要領(lǐng)會(huì)的一個(gè)精髓是:讓你的操作可重復(fù)!!。如果上面的例子,我們用l或者->來(lái)定位空格的話,由于 one、two、three 這些單詞的長(zhǎng)度是不確定的,我們無(wú)法事先知道需要按多少次l,所以l定位是不可重復(fù)的。而通過(guò)f可以重復(fù)我們的查找操作,從而精確的定位到空格。另外,如果我們通過(guò)xi","代替c?","也是不可重復(fù)的,因?yàn)閤i","表示先刪除空格,然后進(jìn)入插入模式后鍵入",",這樣就是兩次分開(kāi)的修改操作,而最近的操作變成了 “進(jìn)入插入模式后鍵入","”,如果通過(guò).重復(fù)這個(gè)操作,是無(wú)法刪除空格的。

這需要大量的實(shí)踐和練習(xí),才能改掉鼠標(biāo)流的思維定式。一般來(lái)說(shuō),盡量多用f、c、r是不錯(cuò)的選擇。另外,盡可能的利用A、a、o、O來(lái)進(jìn)入插入模式,而不是每次通過(guò)i進(jìn)入插入模式。

高效移動(dòng)

光標(biāo)移動(dòng)效率是 vim 程序員達(dá)到甚至超過(guò)鼠標(biāo)流程序員的關(guān)鍵技能。vim 中的移動(dòng)光標(biāo)的方式有很多,我來(lái)舉幾個(gè)我實(shí)際使用過(guò)程中應(yīng)用比較頻繁的技巧:

set relativenumber(顯示相對(duì)行號(hào))。我無(wú)意間發(fā)現(xiàn)的一個(gè)十分實(shí)用的技巧,比set number顯示行號(hào)更好用。通過(guò)這個(gè)設(shè)置,行號(hào)的顯示會(huì)根據(jù)當(dāng)前的光標(biāo)的相對(duì)位置顯示成偏移數(shù),并動(dòng)態(tài)變化。這個(gè)好處是,可以利用數(shù)字+j數(shù)字+k來(lái)進(jìn)行多行跳轉(zhuǎn),因?yàn)槭蔷幾g行數(shù),所以數(shù)字不會(huì)太大。否則就算要向下移動(dòng) 10 行,我們可能也需要用138gg。

w、e、b:按照單詞進(jìn)行前后光標(biāo)跳轉(zhuǎn),也可以組合數(shù)字進(jìn)行跳轉(zhuǎn),不過(guò)以我的經(jīng)驗(yàn),與其去算要跳多少個(gè)單詞,不如多按幾次吧。

I、A:移動(dòng)到行首或行末的第一個(gè)字符處,并進(jìn)入插入模式。

H、M、L:光標(biāo)分別跳轉(zhuǎn)到可視區(qū)域的最上面、中間、最下面。

Ctrl+D、Ctrl+U:有時(shí),需要看的文本不在可視區(qū)域,通過(guò)這些組合進(jìn)行上下翻頁(yè)。

^、$、0:光標(biāo)移動(dòng)到行首和行尾(0 是絕對(duì)行首)。不過(guò)因?yàn)閊和$都需要同時(shí)按住 shift,而且數(shù)字鍵我們往往難以盲打,所以我一般直接使用I+Esc、A+Esc。

%:移動(dòng)到與當(dāng)前括號(hào)匹配的括號(hào)處。

gj、gk:有時(shí)可視區(qū)域不夠?qū)挘恍械淖址泻芏啵瑢?dǎo)致了 wrap。那么通過(guò) jk 是無(wú)法直觀的定位到同一物理行,卻不在同一個(gè)可視行里的位置,此時(shí)需要gj和gk。

f、F:通過(guò)上面的例子,我們知道,f是 find 的意思,可以在一行內(nèi)查找某個(gè)字符出現(xiàn)的位置,并直接跳轉(zhuǎn)過(guò)去。比如f<可以從當(dāng)前光標(biāo)開(kāi)始向右,找到第一個(gè)<,并移動(dòng)過(guò)去。F 是向左查找。

;:重復(fù)上一次的f查找操作

.:重復(fù)上一次的修改操作,跟;可以說(shuō)是好基友,經(jīng)常用來(lái)實(shí)現(xiàn)一些簡(jiǎn)單的重復(fù)操作,比錄制宏要簡(jiǎn)單很多。經(jīng)常有意識(shí)的使用這種簡(jiǎn)單重復(fù),是 vimer 編輯思路進(jìn)階的分水嶺。

高效修改

vim 的另一個(gè)優(yōu)勢(shì)是高效修改。在 vim 下修改就要改掉傳統(tǒng)鼠標(biāo)流的思維方式,切忌提到修改就按i。有很多高效的修改辦法,而且這些辦法往往是可重復(fù)的。下面舉一些我常用的例子:

r:替換模式,替換當(dāng)前光標(biāo)所在位置的一個(gè)字符。雖然你同樣可以i進(jìn)入插入模式,然后刪掉那個(gè)字符,再輸入需要的字符,但這種操作是鼠標(biāo)流思維方式。替換是一個(gè)可重復(fù)操作,多用沒(méi)壞處。

cw:change word可以刪除從當(dāng)前位置到一個(gè)單詞的結(jié)尾,并進(jìn)入插入模式。這種操作常用于修改一個(gè)變量。比如對(duì)于:int count=0;希望把count改成cnt,那么當(dāng)光標(biāo)位于c字符處的時(shí)候,按cw可直接刪除count,并進(jìn)入插入模式。然后直接繼續(xù)輸入cnt即可。

caw:change a word可以刪除當(dāng)前光標(biāo)所在位置的單詞。對(duì)于int count=0;的例子,如果此時(shí)光標(biāo)在count中間某處,比如u處,直接鍵入caw可以達(dá)到同樣的效果。所以caw更強(qiáng)大一些。

c$、c^:舉一反三,可以猜到c$是從當(dāng)前位置刪除到行尾,并進(jìn)入插入模式。

ci":change inside "可以用于修改當(dāng)前位置附近,在相同配對(duì)的"中的內(nèi)容。比如對(duì)于const char *str="hello world";。當(dāng)在雙引號(hào)中間的任意位置鍵入ci"可以直接清空字符串,并繼續(xù)輸入新的希望的字符串。

ci(、ci[:舉一反三change inside (change inside [。

cit:這個(gè)比較特殊,可以直接編輯匹配的 xml 標(biāo)簽中的內(nèi)容!經(jīng)常編寫(xiě) html 的童鞋可以熟悉一下。

yi":yank inside "猜猜是啥意思?類(lèi)似ci"只是把編輯操作編程復(fù)制操作,因?yàn)閥是復(fù)制!是不是很強(qiáng)大。

ya":yank around "復(fù)制整個(gè)字符串,包括雙引號(hào)。

yw、yaw、daw、d$…:好了,這些可以” 發(fā)明” 出來(lái)了。

o、O:向下向上增加空行

u、Ctrl+r:undo 和 redo

上面的例子體現(xiàn)了 vim 組合的思想,很多命令可以通過(guò)組合得到不同的效果。

Visual 模式是鼠標(biāo)流后遺癥,不過(guò)也有妙用

v、V、Ctrl+v是 Visual 模式,類(lèi)似用鼠標(biāo)選中一些文本。我在早期使用 vim 時(shí)候,十分喜歡用v,比如要?jiǎng)h除一個(gè)單詞,我往往會(huì)用vwd,試圖用vw選中一個(gè)單詞,然后d刪除。這種方式明顯是鼠標(biāo)流的后遺癥。直到我學(xué)會(huì)上面介紹的一些技巧后,v已經(jīng)很少用了。不過(guò)Ctrl+v是Block Visual模式,類(lèi)似選中列,這個(gè)技巧有時(shí)很有用。比如有如下文本:

onetwothreefour

希望變成

"one, two, three, four"

首先將光標(biāo)定位到 one 的 o 處,Ctrl+v,3j,$,A,,,Esc,V,3j,J。這一套連招下來(lái),出來(lái)了:

one, two, three, four,

如果要合的行數(shù)很多,就比較有優(yōu)勢(shì)了。問(wèn)我怎么知道按3j,上文提到的set relativenumber幫到你。

總結(jié)

在開(kāi)發(fā)效率上,不敢說(shuō) vim 優(yōu)于 IDE,不過(guò) vim 的編輯和修改速度是比鼠標(biāo)快的。使用 vim 的過(guò)程就是自我否定和自動(dòng)重塑的過(guò)程,如果你不斷的學(xué)習(xí)技巧的話,編輯習(xí)慣會(huì)一再被推翻,一再重塑。不斷有新的理解注入到日常的工作中。最終會(huì)形成自己編輯風(fēng)格。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • VIM
    VIM
    +關(guān)注

    關(guān)注

    0

    文章

    134

    瀏覽量

    15293
  • PHP
    PHP
    +關(guān)注

    關(guān)注

    0

    文章

    452

    瀏覽量

    26678

原文標(biāo)題:練了一年再來(lái)總結(jié)的 Vim 使用技巧

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于linux vim命令 總結(jié)(二)

    文件的字符數(shù):w :write的縮寫(xiě):edit(e) 打開(kāi),編輯ZZ保存并退出zz將光標(biāo)所在行移至窗口中間:q退出vim -R file 用只讀模式打開(kāi)file unix中view file等效,通過(guò)w
    發(fā)表于 09-04 10:27

    關(guān)于linux vim命令 總結(jié)(二)

    文件的字符數(shù):w :write的縮寫(xiě):edit(e) 打開(kāi),編輯ZZ保存并退出zz將光標(biāo)所在行移至窗口中間:q退出vim -R file 用只讀模式打開(kāi)file unix中view file等效,通過(guò)w
    發(fā)表于 09-10 10:38

    linux vim命令總結(jié)

    命令的參數(shù) 如 :write !wc 返回當(dāng)前文件的字符數(shù) :w :write的縮寫(xiě) :edit(e) 打開(kāi),編輯 ZZ保存并退出 zz將光標(biāo)所在行移至窗口中間 :q退出 vim -R file 用只讀模式
    發(fā)表于 07-03 00:27

    VIM培訓(xùn)教程

    VIM培訓(xùn)教程.rar VIM的歷史 Bram Moolenaar 在 80 年代末購(gòu)入他的 Amiga 計(jì)算機(jī)時(shí),Amiga 上還沒(méi)有他最常用的編輯器 vi。Bram 從一個(gè)開(kāi)源的 vi 復(fù)制 Stevie 開(kāi)始,開(kāi)發(fā)
    發(fā)表于 03-13 14:14 ?0次下載

    VIM for windows

    VIM for windows Vim目前已經(jīng)有類(lèi)Unix版和Windows版,盡管vim較vi已經(jīng)改良了不少,但是初次使用還是會(huì)一頭霧水,不知如何操作,所以學(xué)習(xí)vim要首先過(guò)2關(guān)。
    發(fā)表于 03-13 14:41 ?30次下載

    VIM高級(jí)技巧

    VIM高級(jí)技巧
    發(fā)表于 10-29 11:06 ?9次下載
    <b class='flag-5'>VIM</b>高級(jí)技巧

    總結(jié)使用 Vim 的過(guò)程中不得不了解的一些指令和注意事項(xiàng)

    Vim 是一個(gè)上古神器,本篇文章主要持續(xù)總結(jié)使用 Vim 的過(guò)程中不得不了解的一些指令和注意事項(xiàng),以及持續(xù)分享一個(gè)前端工作者不得不安裝的一些插件,而關(guān)于 Vim 的簡(jiǎn)介,主題的選擇,以
    的頭像 發(fā)表于 12-27 16:44 ?4821次閱讀

    干貨:兩個(gè)關(guān)于Vim的使用問(wèn)題及小技巧

    最近在使用 VIM 時(shí)遇到兩個(gè)新的問(wèn)題,覺(jué)得還很挺有價(jià)值的。現(xiàn)在將處理方法總結(jié)后,分享給大家。
    的頭像 發(fā)表于 08-31 12:09 ?2924次閱讀
    干貨:兩個(gè)關(guān)于<b class='flag-5'>Vim</b>的使用問(wèn)題及小技巧

    pathogen.vim Vim插件

    ./oschina_soft/vim-pathogen.zip
    發(fā)表于 05-24 10:21 ?0次下載
    pathogen.<b class='flag-5'>vim</b> <b class='flag-5'>Vim</b>插件

    vim-go Vim的Go開(kāi)發(fā)插件

    ./oschina_soft/vim-go.zip
    發(fā)表于 05-24 09:42 ?1次下載
    <b class='flag-5'>vim</b>-go <b class='flag-5'>Vim</b>的Go開(kāi)發(fā)插件

    vim-switchtoinc Vim插件

    ./oschina_soft/vim-switchtoinc.zip
    發(fā)表于 05-24 09:19 ?3次下載
    <b class='flag-5'>vim</b>-switchtoinc <b class='flag-5'>Vim</b>插件

    vim-vala vim的vala擴(kuò)展

    ./oschina_soft/vim-vala.zip
    發(fā)表于 05-24 16:57 ?3次下載
    <b class='flag-5'>vim</b>-vala <b class='flag-5'>vim</b>的vala擴(kuò)展

    Vim之父去世后,Vim項(xiàng)目誰(shuí)來(lái)接管?

    一直以來(lái),Bram Moolenaar 被稱(chēng)為 Vim 項(xiàng)目的 BDFL(Benevolent Dictator For Life,終身仁慈獨(dú)裁者),管理著 Vim 項(xiàng)目的各個(gè)方面,他的去世讓無(wú)數(shù)使用過(guò) Vim 的用戶(hù)感到痛心,
    的頭像 發(fā)表于 08-15 15:07 ?708次閱讀
    <b class='flag-5'>Vim</b>之父去世后,<b class='flag-5'>Vim</b>項(xiàng)目誰(shuí)來(lái)接管?

    Vim指令總結(jié)

    對(duì)于未使用過(guò) Vim 的朋友來(lái)說(shuō),可能還無(wú)法體會(huì)到這種感覺(jué)。由于使用 Vim 有一定的學(xué)習(xí)成本,只有做到非常熟練的程度才能感受到它帶來(lái)的快捷。 這里我就自己日常有使用過(guò)的 Vim 指令做一個(gè)
    的頭像 發(fā)表于 11-01 10:15 ?586次閱讀

    vim編輯器如何使用

    Vim編輯器是一個(gè)功能強(qiáng)大的文本編輯器,它基于Vi進(jìn)行改進(jìn),并增加了許多新特性。Vim編輯器的使用主要涉及其不同的工作模式及相應(yīng)操作。以下是Vim編輯器的基本使用方法: 一、Vim編輯
    的頭像 發(fā)表于 08-30 14:58 ?428次閱讀
    主站蜘蛛池模板: 日韩一区二区三区视频在线观看| cctv网站| 海角社区在线视频播放观看| 日韩一区二区三区精品| 99国产在线视频| 恋老视频 国产国佬| 一区二区三区毛AAAA片特级| 国产亚洲美女在线视频视频| 无遮掩H黄纯肉动漫在线观看星 | 人妻免费久久久久久久了| 2020亚洲 欧美 国产 日韩| 久久精品国产免费播放| 亚洲欧美国产双大乳头| 好吊射视频988gaocom| 亚洲成人一区| 国产色播视频在线观看| 午夜福利理论片在线播放| 国产av免费观看日本| 色综合伊人色综合网站| 公交车轮C关老师| 使劲别停好大好深好爽动态图| 成人网站国产在线视频内射视频| 亲嘴扒胸摸屁股视频免费网站| AV无码国产精品午夜A片麻豆| 暖暖 日本 视频 在线观看免费 | 综合人妻久久一区二区精品| 久久久久久久久人体| 影音先锋av男人资源| 久久免费黄色| 2020无码最新国产在线观看| 蜜桃传媒在线观看入口| 99久久做夜夜爱天天做精品| 免费看亚洲| TUBE69CHINESE学生| 日本A级作爱片金瓶双艳| 达达兔欧美午夜国产亚洲 | 大学生高潮无套内谢视频| 色情内射少妇兽交| 国产久久re6免费热在线| 亚洲精品国偷拍自产在线| 精品亚洲麻豆1区2区3区|