九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
最好的Vim入門(mén)教程

盡管網(wǎng)上有成打的Vim在線教程,但是要么艱深晦澀,要么太過(guò)膚淺。本教程的目標(biāo)讓每個(gè)階段都有斬獲,從理解它的哲學(xué)(將和你終身相伴)到超越現(xiàn)在編輯技巧,成為其中的牛人。

簡(jiǎn)單來(lái)說(shuō),本教程的學(xué)習(xí)方式將使你終身受益。

為什么選擇vim

我相信大多數(shù)人可能由于以下三點(diǎn)原因而使用vim:

1、vim無(wú)所不在。學(xué)習(xí)vim你無(wú)需擔(dān)心到了其他平臺(tái)需要學(xué)習(xí)新編輯器。

2、可擴(kuò)展性。你可以只用它來(lái)編輯配置文件,也可以將它當(dāng)做你的開(kāi)發(fā)平臺(tái)。

3、功能強(qiáng)大。它的工作方式與自然語(yǔ)言類(lèi)似。即使一開(kāi)始你對(duì)vim一無(wú)所知,經(jīng)過(guò)一段時(shí)間的使用學(xué)習(xí),很快也會(huì)成為牛人。

一句話,我相信一旦你開(kāi)始學(xué)習(xí),你會(huì)覺(jué)得就像掌握母語(yǔ)還有基礎(chǔ)數(shù)學(xué)這些基本技能一樣,也能自然而然地掌握vim。好了,在了解這些知識(shí)之后,讓我們正式開(kāi)始vim技術(shù)的學(xué)習(xí)吧。

Approach

Kana大神說(shuō)過(guò),對(duì)vim的掌握有五個(gè)層次:

  • 層次0: 對(duì)vim一無(wú)所知
  • 層次1: 了解vim的基本使用
  • 層次2: 知道可視模式
  • 層次3: 知道多種移動(dòng)動(dòng)作
  • 層次4: 不再需要可視模式

對(duì)此我并不了解,不過(guò)我認(rèn)為這種觀點(diǎn)值得我們注意。畢竟,kana是vim大神。在本教程中,我將通過(guò)下面四個(gè)主要模塊來(lái)向你展示vim。

  1. 基礎(chǔ)介紹:這部分基礎(chǔ)介紹能快速建立起你對(duì)vim的正確認(rèn)知。
  2. 具體操作: 這塊是干貨。做好準(zhǔn)備來(lái)享用吧。
  3. 進(jìn)階: 這部分我會(huì)教你怎樣成為vim牛人。
  4. 常見(jiàn)問(wèn)題: 這里會(huì)講述一些常見(jiàn)問(wèn)題解決技巧。

換句話說(shuō),如果你已經(jīng)對(duì)vim有所了解的話,建議你從具體操作這部分開(kāi)始。如果你熟練掌握這部分的話,就直接進(jìn)入進(jìn)階開(kāi)始學(xué)功夫。假如你看這篇教程是為了某個(gè)具體問(wèn)題,那么請(qǐng)進(jìn)入常見(jiàn)問(wèn)題章節(jié)。

所以呢,建立vim世界觀,vim基本操作,高手進(jìn)階以及常見(jiàn)問(wèn)題——這幾部分任君挑選。

配置

我曾說(shuō)過(guò),不希望這是一本超級(jí)vim配置手冊(cè),網(wǎng)上已經(jīng)有很多這類(lèi)教程了。本教程的目的在于強(qiáng)化你對(duì)vim的理解,幫助你熟練掌握這個(gè)工具。不過(guò)我們也會(huì)稍微介紹一些基本的配置。

首先,我建議你安裝(幾乎)自我管理的vim。我就曾試過(guò)Janus(vim的發(fā)行版),但是我無(wú)法確定它究竟在做什么,這讓我感到很挫敗。我偏好的配置就像vim自身一樣,簡(jiǎn)單而優(yōu)雅。

為了達(dá)到這個(gè)目的,我直接將用戶主目錄下的.vim目錄和.vimrc作為配置文件。

A few key ~/.vimrc changes

./vimrc修改常用鍵

首先呢,我覺(jué)得使用<Esc>鍵來(lái)退出插入模式實(shí)在是太老土了。Vim關(guān)注的是效率,如果不是特殊情況,手指盡量不要離開(kāi)鍵盤(pán)中間排。而這種ESC操作實(shí)在是沒(méi)效率,所以不要用這個(gè)。

inoremap jk <ESC>

【注意: 有些人喜歡將<ESC>映射為jj,但是我覺(jué)得映射為jk可能更自然一點(diǎn)】

修改leader鍵

反斜杠也同樣存在這種問(wèn)題,所以就像其它指導(dǎo)文檔推薦的那樣,我也喜歡將引導(dǎo)鍵重映射為逗號(hào)(,)。

let mapleader = “,”

通過(guò)這樣的配置,可以簡(jiǎn)化我們接下來(lái)的命令執(zhí)行,比如執(zhí)行映射的縮寫(xiě)命令時(shí),只需右手中指往下一格就可以輕松輸入逗號(hào),而不需要向上再向右去遠(yuǎn)遠(yuǎn)地按反斜杠鍵。

重映射CAPSLOCK

大寫(xiě)鍵不在vim的配置文件中,不過(guò)這個(gè)鍵的位置比較好,而它的默認(rèn)功能我們又常常用不上。對(duì)我來(lái)說(shuō),CAPSLOCK鍵沒(méi)啥用處,所以我將它映射為Ctrl鍵(從操作系統(tǒng)層面來(lái)設(shè)置)。這樣如果我要執(zhí)行Ctrl-XX操作時(shí)只需將左小指左移就可以了。

此外,推薦其他幾項(xiàng)基礎(chǔ)設(shè)置,這樣使用更加方便。

filetype plugin indent on

syntax on

set encoding=utf-8

要知道,優(yōu)化vimrc文件是一個(gè)非常值得花時(shí)間去研究的問(wèn)題,這里說(shuō)的幾個(gè)建議僅僅是皮毛。推薦查看我的設(shè)置或者閱讀這幾篇引用文章。

使用Pathogen管理插件

【請(qǐng)注意:如果你不熟悉或者并不喜歡插件,可以跳過(guò)這一節(jié)。等你下次想通了再來(lái)看看?!?/p>

遠(yuǎn)離Janus

對(duì)我來(lái)說(shuō),Janus最能吸引我的地方在于它的插件管理,不過(guò)我可以通過(guò)Pathogen來(lái)實(shí)現(xiàn)?;旧希ㄟ^(guò)以下幾步就可以了:

  1. 安裝Pathogen
  2. 將你需要的插件git clone 克隆到~/.vim/bundle
  3. 在配置文件~/.vimrc中添加execute pathogen#infect()

利用github來(lái)實(shí)現(xiàn)備份和可移植性

為了備份vim設(shè)置,我將整個(gè)~/.vim目錄通過(guò)git庫(kù)保存在這里。這樣即便我新裝了系統(tǒng),也可以很方便的使用git clone https://github.com/danielmiessler/vim獲取我的偏好設(shè)置。

也許你也會(huì)喜歡這樣做。

簡(jiǎn)單一步clone之后,將~/.vimrc軟連接到~/.vim/vimrc就可以了。

Vim即語(yǔ)言

Vim最成功的閃光點(diǎn)莫過(guò)于一旦你開(kāi)始使用它,它就會(huì)讓你欲罷不能。Vim就像語(yǔ)言一樣,擁有名詞、動(dòng)詞、副詞等屬性。

雖然我的這種說(shuō)法從技術(shù)層面可能并不準(zhǔn)確,但是卻能幫助你更好地理解vim的工作機(jī)制。重申一次,本教程的目的不是為了取代其他教程或幫助手冊(cè)——而是為了幫助你理解其他這些文檔晦澀難懂的部分。

動(dòng)詞

所謂動(dòng)詞指的是我們執(zhí)行的動(dòng)作,這些動(dòng)作可以施加在名詞之上??梢钥纯聪旅鎺讉€(gè)常見(jiàn)的動(dòng)作:

  • d: 刪除
  • c: 修改
  • y: 拖拉(拷貝)
  • v: 可視化選擇 (V for line vs. character)

修飾語(yǔ)

定語(yǔ)用在名詞之前,表明以哪種方式來(lái)執(zhí)行動(dòng)作。幾個(gè)例子:

  • i: 內(nèi)部
  • a: 周?chē)?/li>
  • NUM: 數(shù)字 (e.g.: 1, 2, 10)
  • t: 查找到指定字符,并跳轉(zhuǎn)到這個(gè)字符的前面
  • f: 查找到指定字符,并跳轉(zhuǎn)到字符所處的位置
  • /: 查找字符串 (literal or regex)

名詞

在英語(yǔ)中,名詞用來(lái)表示你所操作的對(duì)象。它們都是客體。在vim中也是這樣。下面列出vim中的名詞:

  • w: 單詞
  • s: 句子
  • ): 句子 (另一種操作方式)
  • p: 段落
  • }: 段落 (另一種操作方式)
  • t: 標(biāo)簽 ( HTML/XML)
  • b: 塊 (編程語(yǔ)言)

Nouns as motion

同樣,你也可以將名詞視為移動(dòng)動(dòng)作,這意味著你可以用名詞表示在文本的跳轉(zhuǎn)范圍。我們可以在“移動(dòng)”章節(jié)中看到例子說(shuō)明。

使用vim語(yǔ)言來(lái)組成語(yǔ)句(命令)

好了,現(xiàn)在我們有句子的不同組成部分,該怎樣將這幾部分組成完整的句子呢?就像英語(yǔ)一樣,憑感覺(jué)將動(dòng)詞、修飾語(yǔ)和名詞組合起來(lái)。

對(duì)于下面這些符號(hào),根據(jù)顏色的不同來(lái)區(qū)分句子的不同組成部分:

刪除兩個(gè)單詞

d2w

修改所在的句子(刪除當(dāng)前句子并進(jìn)入插入模式)

cis

拷貝當(dāng)前所在的段落

yip

修改當(dāng)前光標(biāo)所在位置到下一個(gè)括號(hào)之間的文本內(nèi)容

ct<

記住,這里的“目標(biāo)”是尖括號(hào),除此之外還可以是任意字符。從語(yǔ)法上來(lái)說(shuō),使用單個(gè)字母”t”來(lái)表示這個(gè)向前查找的“目標(biāo)”,這樣我就可以使用“dt.”表示刪除當(dāng)前位置到下一個(gè)句號(hào)之間的內(nèi)容,”yt;”表示拷貝當(dāng)前位置到下一個(gè)分號(hào)之間的內(nèi)容。

看起來(lái)多漂亮!當(dāng)編輯文本時(shí)采用這樣的思維方式可以使得操作更加優(yōu)雅,符合我們的直覺(jué)思維,而且就像其他語(yǔ)言一樣,熟能生巧。

具體操作

現(xiàn)在,在了解這些基本操作后,讓我們結(jié)合具體操作來(lái)更進(jìn)一步學(xué)習(xí)。

處理文件

一些對(duì)文件的基本操作。

  • Vi file :使用vim打開(kāi)要編輯的文件
  • :w :保存修改
  • :q! : 退出vim,后面加感嘆號(hào)表示不保存修改強(qiáng)制退出
  • :wq: 保存修改并退出
  • :saveas ~/some/path/: 將文件保存到其他位置

【注意:相比較:wq 我更喜歡使用ZZ,因?yàn)槲矣X(jué)得不需要輸入冒號(hào)我覺(jué)得會(huì)快一點(diǎn)。也可以使用:x】

  • ZZ: 同:wq

查找文本

對(duì)于任意一款編輯器,查找文本都是最基本需求。Vim擁有很強(qiáng)大的文本搜索功能,這一節(jié)將著重討論vim的文本搜索。

搜索字符串

Vim中最基本也是最強(qiáng)大的搜索方式是”/”命令,在窗口最底端輸入你需要查找的字符串并回車(chē)就可以了。

查找include字符串

/include<CR>

查找結(jié)果如下所示,所以匹配結(jié)果都被高亮顯示:

搜索完成后,輸入”n”依次向下查找,或者”N”向上查找。如果想要逆向查找字符串也可以使用”?”來(lái)代替”/”.

跳轉(zhuǎn)到指定字符

Vim有一招特別酷,不管你在哪兒,都能查找特定字符并直接跳轉(zhuǎn)過(guò)去。比如說(shuō),我正在編輯HTML文件,

向前查找并直接跳轉(zhuǎn)到<字符

f<

向前查找并跳轉(zhuǎn)到<的前一個(gè)字符

t<

你可以這么理解,第一種找出目標(biāo)(f),直接定位到查找對(duì)象;第二種到達(dá)目標(biāo)(t),向著目標(biāo)對(duì)象前進(jìn),定位到目標(biāo)的前面。

比較怪異的一點(diǎn)是,可以將它們作為命令中的名詞。就比如剛才我在編輯這句時(shí):

修改到下一個(gè)”<”之間的內(nèi)容

ct<

對(duì)任意字符都可以這么做,比如說(shuō),句號(hào),尖括號(hào),圓括號(hào),普通字母等等。這樣你就可以查找文本并跳轉(zhuǎn),或者你知道具體位置并直接跳轉(zhuǎn)。

【注意:當(dāng)你搜索指定字符時(shí),可以使用分號(hào)跳轉(zhuǎn)到下一處——不管是t搜索還是f搜索。逗號(hào)可以用來(lái)反向跳轉(zhuǎn)到上一處?!?/p>

搜索總結(jié)

  • /{string}: 搜索字符串
  • t : 跳轉(zhuǎn)到某一字符前
  • F : 跳轉(zhuǎn)到某一字符處
  • *:搜索當(dāng)前光標(biāo)位置單詞的其他實(shí)例
  • n : 搜索完成后,跳轉(zhuǎn)到下一個(gè)匹配實(shí)例
  • N :搜索完成后,跳轉(zhuǎn)到上一條匹配實(shí)例
  • ; : 跳轉(zhuǎn)到指定字符時(shí),使用分號(hào)跳轉(zhuǎn)到下一實(shí)例
  • , :跳轉(zhuǎn)到指定字符時(shí),使用逗號(hào)跳轉(zhuǎn)到上一實(shí)例

游走于文本中

提高編輯效率至關(guān)重要的一點(diǎn)是:在文本內(nèi)的自由移動(dòng)跳轉(zhuǎn)。對(duì)vim來(lái)說(shuō),充分利用我們上文所說(shuō)的vim語(yǔ)言的基本準(zhǔn)則,就可以既簡(jiǎn)單又優(yōu)雅地做到。首先,介紹基礎(chǔ)概念。

基本移動(dòng)動(dòng)作

我們從鍵盤(pán)中間排開(kāi)始介紹。受過(guò)訓(xùn)練的打字員一般都習(xí)慣將右手指放在jkl;這幾個(gè)鍵上,就讓我們從這里開(kāi)始使用vim。

  • j : 向下移動(dòng)一行
  • k :向上移動(dòng)一行
  • h :向左移動(dòng)一個(gè)字符
  • l :向右移動(dòng)一個(gè)字符

剛開(kāi)始可能使用得不太習(xí)慣,不過(guò)只需幾分鐘的練習(xí)之后,就會(huì)習(xí)慣成自然,你甚至?xí)胍趙ord文檔里面也這樣用(順便說(shuō)一下,word文檔不支持)。

總結(jié)起來(lái)就是:右手食指和中指用來(lái)上移下移,右手食指和無(wú)名指用來(lái)左移右移。

行內(nèi)移動(dòng)

你可以在當(dāng)前行內(nèi)自由的移動(dòng)。

  • 0: 移動(dòng)到行首
  • $: 移動(dòng)到行末
  • ^: 移動(dòng)到行首非空字符
  • t”: 跳轉(zhuǎn)到下一個(gè)引號(hào)前
  • f”: 跳轉(zhuǎn)到下一個(gè)引號(hào)處

【注意: 逗號(hào)和分號(hào)會(huì)重復(fù)之前的t和f跳轉(zhuǎn)】

按單詞移動(dòng)

除了按行和字符移動(dòng)外,還可以按單詞移動(dòng):

  • w: 先前移動(dòng)一個(gè)單詞
  • b: 向后移動(dòng)一個(gè)單詞
  • e: 移動(dòng)到當(dāng)前單詞末尾

當(dāng)使用大寫(xiě)字母時(shí),vim會(huì)忽略掉單詞間的分隔符,這樣原本被分隔符隔開(kāi)的多個(gè)單詞會(huì)因此被視為一個(gè)大單詞。

  • W: 向前移動(dòng)一個(gè)大單詞
  • B: 向后移動(dòng)一個(gè)大單詞

這種大寫(xiě)命令的優(yōu)勢(shì)在我們實(shí)際工作中會(huì)頻繁地碰到。

按句子或段落移動(dòng)

  • ):向前移動(dòng)一條句子
  • }: 向前移動(dòng)一個(gè)段落

在屏幕間移動(dòng)

  • H:向上移動(dòng)一屏
  • M:移動(dòng)到屏幕中間
  • L:移動(dòng)到屏幕底端
  • gg: 移動(dòng)到文件頂端
  • G:移動(dòng)到文件結(jié)尾
  • ^U: 向上移動(dòng)半屏
  • ^D: 向下移動(dòng)半屏
  • ^F: 下一頁(yè)
  • ^B: 上一頁(yè)

來(lái)回跳轉(zhuǎn)

在普通模式下,可以在兩點(diǎn)間來(lái)回跳轉(zhuǎn),這在實(shí)際操作中非常有用。

  • Ctrl-i: 跳轉(zhuǎn)到之前所在的位置
  • Ctrl-o: 跳回你實(shí)際的位置

其他動(dòng)作

  • :$line_numberH: 移動(dòng)到指定行號(hào)
  • M: 移動(dòng)到屏幕中間
  • L: 移動(dòng)到屏幕底端
  • ^E: 向上滾動(dòng)一行
  • ^Y: 向下滾動(dòng)一行
  • ^U: 向上移動(dòng)半屏
  • ^D: 向下移動(dòng)半屏
  • ^F: 向下移動(dòng)一頁(yè)
  • ^B: 向上移動(dòng)一頁(yè)

現(xiàn)在將所以移動(dòng)動(dòng)作總結(jié)到一起:

移動(dòng)命令總結(jié)

  • j: move down one line
  • k: move up one line
  • h: move left one character
  • l: move right one character
  • 0: move to the beginning of the line
  • $: move to the end of the line
  • w: move forward one word
  • b: move back one word
  • e: move to the end of your word
  • ): move forward one sentence
  • }: move forward one paragraph
  • :line_number: move to a given line number
  • H: move to the top of the screen
  • M: move to the middle of the screen
  • L: move to the bottom of the screen
  • ^E: scroll up one line
  • ^Y: scroll down one line
  • gg: go to the top of the file
  • G: go to the bottom of the file
  • ^U: move up half a page
  • ^D: move down half a page
  • ^F: move down a page
  • ^B: move up a page
  • Ctrl-i: jump to your previous navigation location
  • Ctrl-o: jump back to where you were

【注意:前面說(shuō)過(guò)我將CAPSLOCK鍵映射到Ctrl,所有這些基于Ctrl的命令,我都可以用CASLOCK來(lái)代替】

修改文本

好了,了解一堆在文本中移動(dòng)的命令后,我們可以開(kāi)始學(xué)習(xí)對(duì)文本的修改了。需要記住這一點(diǎn):這些移動(dòng)命令會(huì)一直陪伴著我們——它們是vim語(yǔ)言的一部分(它們是上文提到的修飾語(yǔ))。

Understanding modes

首先我們要弄清楚模式的概念。剛開(kāi)始說(shuō)到模式可能有點(diǎn)違反我們的直覺(jué),不過(guò)一旦習(xí)慣之后就會(huì)使用得非常的自然。很多vim指南都從介紹模式開(kāi)始,不過(guò)我發(fā)現(xiàn)如果直接從模式開(kāi)始有點(diǎn)不好理解,從普通模式與插入模式之間的切換入手會(huì)好一點(diǎn)。

  • 從普通模式開(kāi)始。對(duì)新手來(lái)說(shuō)vim最讓人郁悶一點(diǎn)莫過(guò)于打開(kāi)文檔卻不能直接編輯。其實(shí),你也可以輸入一些個(gè)東西,不過(guò)如果你真這么做的話你的文檔可能會(huì)變得一團(tuán)糟。
  • 普通模式也叫命令行模式,因?yàn)橥ǔT谶@個(gè)模式下輸入vim命令。這些命令可以是移動(dòng)、刪除或者其他操作,之后進(jìn)入插入模式。
  • 插入模式下可以直接對(duì)文件進(jìn)行修改,有很多種方式可以從普通模式切換到插入模式。不過(guò)不用擔(dān)心,雖然方式多樣,只要多加練習(xí)就可以熟練使用了。
  • 可視化模式下可以選擇文本。這個(gè)模式看起來(lái)與普通模式非常像,不過(guò)這個(gè)模式下移動(dòng)操作會(huì)改變高亮選擇的區(qū)域。你可以逐行選擇也可以逐字符選擇,不管哪種選擇模式下,移動(dòng)操作都會(huì)高亮選擇更多的文本內(nèi)容。
  • 選中之后,可視化模式的優(yōu)勢(shì)就體現(xiàn)出來(lái)了,我們可以對(duì)選中的全部文本做操作,大大提高了效率。
  • Ex模式下,光標(biāo)處于屏幕最下方,冒號(hào)后可以輸入命令。具體內(nèi)容在后面做介紹?,F(xiàn)在只需要知道在這種模式下可以運(yùn)行一些命令行任務(wù)就可以了。

除了上面介紹的模式外vim還有一些其他的模式,不過(guò)本教程不做介紹因?yàn)樗鼈儾皇鞘滓蝿?wù)。

記住vim語(yǔ)言

現(xiàn)在讓我們一起回憶vim語(yǔ)言: 動(dòng)詞、修飾符、名詞。假設(shè)我們從普通模式開(kāi)始,現(xiàn)在想要切換到插入模式下修改文本。

動(dòng)詞可以實(shí)現(xiàn)這種切換,并且有好幾種選擇。我們可以修改(c),插入(i),或者追加(a),還有其他變種。

基礎(chǔ)修改/插入命令

讓我們從這幾個(gè)可選命令開(kāi)始。

  • i : 從當(dāng)前光標(biāo)位置之前插入
  • a : 從當(dāng)前光標(biāo)位置之后插入
  • I :從當(dāng)前行開(kāi)始位置插入
  • A :從當(dāng)前行行末插入
  • o : 在當(dāng)前行下新增一行,并從新行插入
  • O :在當(dāng)前行上新增一行,并從新行插入
  • r : 替換當(dāng)前光標(biāo)所在字符
  • R :替換當(dāng)前光標(biāo)的字符,并一直向后替換(替換模式)
  • cm:修改文本,其中m表示移動(dòng)的動(dòng)作,比如,一個(gè)單詞,一句或者一個(gè)段落。
  • C :修改當(dāng)前所在行
  • ct?: 修改問(wèn)號(hào)前的這條問(wèn)句內(nèi)容
  • s:替換當(dāng)前字符
  • S: 替換整行

修改句子

cis

移動(dòng)到行首并進(jìn)入插入模式

I

在當(dāng)前光標(biāo)位置之后進(jìn)入插入模式

a

從上面例子可知,有多種方式可以進(jìn)入插入模式輸入文本。還有一些簡(jiǎn)寫(xiě)來(lái)執(zhí)行多條操作,比如說(shuō)刪除并進(jìn)入刪除模式。

刪除從光標(biāo)所在位置開(kāi)始到行末的所有內(nèi)容,并進(jìn)入插入模式

C

刪除當(dāng)前行并進(jìn)入插入模式

S

修改大小寫(xiě)

可以通過(guò)波浪符來(lái)變更大小寫(xiě)。就像你猜想的那種方式工作:不管你光標(biāo)所在字符還是可視模式下選擇的文本都可以。

格式化文本

Vim還可以快速格式化文本,比如格式化一整段文本,使用下面這個(gè)命令就可以很容易實(shí)現(xiàn):

格式化當(dāng)前段落

gq ap

gp根據(jù)預(yù)設(shè)的文本寬度testwidth以及參數(shù)指定的文本范圍來(lái)工作,這意味著對(duì)于你指定的任意范圍的文本,gp都可以自動(dòng)校準(zhǔn)寬度,使得文檔看起來(lái)干凈又整潔。

【注意: ap表示文本對(duì)象”整個(gè)段落”的覆蓋范圍】

刪除文本

在了解怎樣修改文本后,接下來(lái)看看怎樣直接刪除文本??赡苣阋呀?jīng)知道了,跟前面差不多——只不過(guò)實(shí)現(xiàn)的動(dòng)作不同罷了。

基本刪除命令

  • x: 刪除當(dāng)前光標(biāo)的字符
  • X:刪除當(dāng)前光標(biāo)的前一個(gè)字符
  • dm: 根據(jù)定義的m來(lái)確定刪除范圍,一個(gè)單詞或者一句話或者一個(gè)段落。
  • dd: 刪除當(dāng)前行
  • dt. : 刪除當(dāng)前位置到下一個(gè)句號(hào)之間的所有內(nèi)容
  • D: 刪除當(dāng)前光標(biāo)位置到本行末的所有內(nèi)容(對(duì)比上面的C,D不會(huì)進(jìn)入插入模式)
  • J: 將上下兩行合并(刪除兩行之間的換行符)

足夠簡(jiǎn)單吧?

撤銷(xiāo)與重做

如果一個(gè)編輯器連撤銷(xiāo)和重做的功能都沒(méi)有,你肯定不會(huì)用它。vim就像我們前面注意到的那樣,盡其所能讓我們更順手地操作,撤銷(xiāo)與重做也不例外。

  • u: 撤銷(xiāo)上一個(gè)動(dòng)作
  • Ctrl-r: 重做上一個(gè)動(dòng)作

【注意:記得將CAPSLOCK鍵映射為Ctrl,這樣你才能更方便快速的使用組合鍵?!?/p>

這兩個(gè)動(dòng)作都可以重復(fù)操作,你可以一直撤銷(xiāo)啊撤銷(xiāo)回到最初保存點(diǎn),也可以一直重做啊重做到撤銷(xiāo)前的狀態(tài)。

重復(fù)動(dòng)作

Vim所有命令中最強(qiáng)大的那個(gè)莫過(guò)于點(diǎn)命令,聽(tīng)起來(lái)有點(diǎn)奇怪是不是?解釋一下,通過(guò)“.”這個(gè)小點(diǎn)可以讓你做一些很棒的事情——重復(fù)之前你的任何一個(gè)操作。

使用“.”來(lái)重復(fù)上一次操作

你所做的許多操作可能都有重復(fù)的價(jià)值。比如進(jìn)入插入模式添加一些文本內(nèi)容。你只需執(zhí)行一次,然后一直執(zhí)行點(diǎn)命令來(lái)重復(fù)就可以了。請(qǐng)看下面的例子。

刪除一個(gè)單詞

dw

緊接著執(zhí)行,再刪除5個(gè)單詞

5.

多么給力! 如果結(jié)合可視化模式,發(fā)揮的能力更讓你大開(kāi)眼界。

復(fù)制與粘貼

快速拷貝與粘貼文本同樣也是文本編輯器的必備功能,vim當(dāng)然也是這方面的高手。

【注意:除了點(diǎn)命令外,&也是一種強(qiáng)大的重復(fù)命令,用于重復(fù)ex模式下的上一條命令(還記得ex模式嗎?)】

拷貝文本

Vim的拷貝與大家預(yù)期的方式可能略有不同??截惷畈皇谴蠹伊舷氲腸。不知你還記不記得,上文提到c表示“修改”,已經(jīng)被占用了。Vim用拉取來(lái)表示拷貝,簡(jiǎn)寫(xiě)為y。

  • y: 拷貝選中內(nèi)容
  • yy: 拷貝當(dāng)前行

記住,這種拷貝動(dòng)作與你熟悉的那種拷貝并無(wú)不同——你只是在目的處復(fù)制了一份而已。

剪切文本

剪切很簡(jiǎn)單:跟刪除操作差不多。所以呢,剪切實(shí)質(zhì)上就是將刪除的內(nèi)容挪到緩沖區(qū),然后將這段刪除的內(nèi)容再粘貼就可以了。

粘貼文本

粘貼跟我們想的一樣——使用p命令。所以呢,如果你執(zhí)行dd命令刪除了一行,你可以用p粘貼回去。

有一點(diǎn)要記?。赫迟N的起始位置從你當(dāng)前光標(biāo)位置之后開(kāi)始,根據(jù)你拷貝的內(nèi)容,你要么粘貼字符或單詞,要么粘貼行或列。如果想撤銷(xiāo)粘貼,使用通用撤銷(xiāo)命令“u”就可以了。

拷貝復(fù)制命令總結(jié)

  • 從當(dāng)前行拷貝到下一個(gè)命令(名詞)
  • 拷貝當(dāng)前行的快捷鍵
  • 在當(dāng)前光標(biāo)所在行下一行黏貼拷貝或者刪除的內(nèi)容
  • 在當(dāng)前光標(biāo)所在行前一行黏貼拷貝或者刪除的內(nèi)容

交換兩行的位置

ddp

使用這條命令可以很快速的交換兩行的位置。第一部分刪除你所在的行,第二部分將它粘貼回之前所在位置的下面。(ps:文章中用的是above,但是實(shí)際上拷貝回下方位置)

拼寫(xiě)檢查

如果沒(méi)有拼寫(xiě)檢查的話,感覺(jué)會(huì)很糟糕,還好vim這方面做得很好。當(dāng)然我們需要先在配置文件中配置拼寫(xiě)檢查選項(xiàng)。

在~/.vimrc的某個(gè)位置中添加

找出拼寫(xiě)錯(cuò)誤

如果在配置文件中設(shè)置了拼寫(xiě)檢查的選項(xiàng),那么拼錯(cuò)的單詞會(huì)自動(dòng)添加下劃線。你也可以手動(dòng)輸入:set spell和:set nospell來(lái)啟用或禁用。

不管怎么說(shuō),一旦開(kāi)啟了拼寫(xiě)檢查,如果存在拼寫(xiě)錯(cuò)誤的話,你就可以使用以下命令來(lái)跳轉(zhuǎn):

跳轉(zhuǎn)到下一處拼寫(xiě)錯(cuò)誤

]s

跳轉(zhuǎn)到上一處拼寫(xiě)錯(cuò)誤

[s

若光標(biāo)處是錯(cuò)誤單詞,給出修改建議

z=

將識(shí)別的錯(cuò)誤單詞標(biāo)記正確

zg

將vim視為正確的單詞標(biāo)記為錯(cuò)誤單詞

zw

我習(xí)慣在~/.vimrc中添加一些拼寫(xiě)相關(guān)的簡(jiǎn)寫(xiě)命令。首先就是讓修正拼寫(xiě)錯(cuò)誤的命令變得簡(jiǎn)單:

將拼寫(xiě)修正標(biāo)記為<leader>f

在某些情況下,比如說(shuō)我需要?jiǎng)?chuàng)造性的拼寫(xiě)一些單詞時(shí),我會(huì)使用下面的命令來(lái)取消拼寫(xiě)檢查。想要重新打開(kāi)拼寫(xiě)檢查只要再執(zhí)行一次這個(gè)命令就可以了。

Toggle spelling visuals with <leader>s

nnoremap <leader>s :set spell!

替換

Vim的另一個(gè)強(qiáng)大的功能是替換。命令分為三部分,首先指定將要被替換的字符串,之后是替換的新字符串,最后指定替換范圍。

基本設(shè)置為:%s

將每行的foo替換為bar

:%s /foo/bar/g

將當(dāng)前行中的foo替換為bar

:s /foo/bar/g

【注意: 兩個(gè)命令的不同之處在于,單行替換s前少了%】

還有許多其他的選項(xiàng),不過(guò)這些是最基本的。

PS: 前面&命令重復(fù)此類(lèi)操作(:進(jìn)入ex模式后執(zhí)行的命令)

進(jìn)階

太棒了。我們已經(jīng)討論了大部分文本編輯器的基本功能,以及在vim中如何使用這些功能?,F(xiàn)在可以進(jìn)行高級(jí)vim的任務(wù)了——請(qǐng)注意,我說(shuō)的高級(jí)進(jìn)階是對(duì)初學(xué)者而言,不是Kana這樣的大神級(jí)人物。

重復(fù)操作

在稍早之前我們討論了“.”點(diǎn)命令的重復(fù)功能。有些命令適合使用點(diǎn)命令來(lái)重復(fù),有些則不適合,區(qū)分這兩種命令很重要。

通常,如果你想要使用“.”(或者如Drew Neil稱(chēng)之為點(diǎn)命令)實(shí)現(xiàn)命令重復(fù),說(shuō)明你想用點(diǎn)命令緩存的命令來(lái)做比較細(xì)致的操作。

比如說(shuō)你要向若干行行末添加一些內(nèi)容,但是添加的前提是被添加的行包含指定的字符串。你可以使用如下方式來(lái)實(shí)現(xiàn):

搜索字符串

/delinquent

現(xiàn)在,只要你按下“n”鍵都會(huì)跳轉(zhuǎn)到下一個(gè)搜索到的實(shí)例。那么,從第一個(gè)匹配實(shí)例開(kāi)始,我們給它追加文本。

在行末添加文本

A[DO NOT PAY] [Esc]

好,這條命令執(zhí)行完成了。不過(guò)接下來(lái)還有12個(gè)地方需要你來(lái)做。點(diǎn)命令允許我們簡(jiǎn)單地重復(fù)執(zhí)行上一條命令,而且我們還需要保存搜索結(jié)果,可以將這兩條命令結(jié)合起來(lái)。

跳轉(zhuǎn)到下一個(gè)匹配實(shí)例并向行末添加文本

n.

注意,這種方式將動(dòng)作與緩存的命令結(jié)合起來(lái),所以我們能按照預(yù)期地那樣跳轉(zhuǎn)并執(zhí)行命令。

文本對(duì)象

文本對(duì)象很特殊。這些文本對(duì)象的存在使得你可以操作(動(dòng)詞)更加復(fù)雜的對(duì)象(名詞)。比起選中某個(gè)單詞并刪除、跳轉(zhuǎn)到句首并刪除句子等簡(jiǎn)單操作來(lái)說(shuō),不管你在何種文本對(duì)象的區(qū)域內(nèi),你都可以對(duì)它們執(zhí)行這些操作。

說(shuō)是說(shuō)不清,實(shí)踐出真知嘛,我們可以看幾個(gè)例子。

單詞文本對(duì)象

首先來(lái)看基于單詞的對(duì)象

  • iw : 單詞內(nèi)
  • aw :單詞周?chē)?/li>

這些都是目標(biāo)(名詞),所以我們可以對(duì)它們做一些操作,比如說(shuō)刪除、修改等等。

刪除單詞(包括單詞周?chē)目崭瘢?/p>

daw

【注意: 對(duì)象內(nèi)部與對(duì)象周?chē)@兩者之間的區(qū)別在于單詞旁邊是否有空格】

句子文本對(duì)象

  • is: 句子內(nèi)部
  • as: 句子周?chē)?/li>

句子對(duì)象的工作原理與單詞對(duì)象是一致的,想象一下,你敲了一大段句子,敲了一半后悔了想要?jiǎng)h掉。你就可以簡(jiǎn)單的使用下面這條命令,而不用回到句子開(kāi)頭來(lái)申明刪除整行。

修改整條句子

cis

這條命令殺傷力還是挺大的,它會(huì)刪除整條句子并進(jìn)入插入模式等待你輸入新的內(nèi)容。

更多對(duì)象類(lèi)型

還有許多其他的對(duì)象類(lèi)型,我只簡(jiǎn)單的來(lái)介紹一下。

  • 段落 : ip 和ap
  • 單引號(hào) : i’和a’
  • 雙引號(hào): i”和 a”

當(dāng)我編輯代碼或者HTML文件時(shí),時(shí)常會(huì)用到這些命令。關(guān)鍵是如果這些對(duì)象文本存在問(wèn)題,你甚至并不需要處于這些對(duì)象內(nèi)部就可以操作它們;如果光標(biāo)當(dāng)前位置在雙引號(hào)外面(經(jīng)測(cè)試,跟雙引號(hào)處于同一行并在雙引號(hào)前面),只需要輸入ci”就可以刪除雙引號(hào)內(nèi)部的所有內(nèi)容,并將你挪到雙引號(hào)中間進(jìn)入插入模式等待你的輸入。簡(jiǎn)直不要太酷。

對(duì)其他類(lèi)型的某些對(duì)象同樣適用,比如說(shuō)各種括號(hào)(圓括號(hào)、尖括號(hào)、大括號(hào))和標(biāo)簽(html)。

比如說(shuō)編輯HTML鏈接時(shí),URL地址一般在雙引號(hào)之間,鏈接文本在標(biāo)簽中定義;通過(guò)vim這兩條命令可以很方便地修改:ci”(修改URL)和cit(修改鏈接文本)。

文本對(duì)象總結(jié)

下面列出常見(jiàn)的文本對(duì)象:

  • 單詞: iw 和 aw
  • 句子: is 和 as
  • 段落: ip 和 ap
  • 單引號(hào): i’ 和 a’
  • 雙引號(hào): i” 和 a”
  • 反勾號(hào) : i· 和 a
  • 圓括號(hào): i( 和 a(
  • 方括號(hào): i[ 和a[
  • 大括號(hào): i{ 和a{
  • 標(biāo)簽: it 和at

總的來(lái)說(shuō),我使用最多的是單詞,雙引號(hào)和標(biāo)簽。

進(jìn)入可視化模式

Vim的有許多迷人之處吸引著我們,不過(guò)它們相比較可視化模式的技能來(lái)說(shuō),還是太弱了。

也許可視化模式的最強(qiáng)大之處在于:我們前面學(xué)到的所有的一切命令,通過(guò)結(jié)合可視化模式使用,能力都會(huì)大有提升。這是由于在可視化模式下選中的高亮文本,可以全部作為命令的操作對(duì)象。

首先,學(xué)會(huì)進(jìn)入可視化模式并選擇文本。通過(guò)“v”進(jìn)入可視化模式,有三種選擇。

  • 基于字符選中: v
  • 基于行選中: V
  • 段落選中: Ctrl-v

在容器內(nèi)部選中文本

有時(shí)候你會(huì)處于一段文本中,兩頭被,.({[之類(lèi)的符號(hào)所包圍。你可以使用下面的命令來(lái)選中這部分的內(nèi)容:

選中圓括號(hào)中的內(nèi)容

vi(

選中中括號(hào)之間的內(nèi)容

vi[

你還可以加數(shù)字限定選擇的層數(shù)(比如說(shuō)你處于嵌套層)

選中兩層大括號(hào)之間的所有內(nèi)容

v2i{

【注意: 你也可以使用va來(lái)代替vi。請(qǐng)不要被這些迷惑。它們與我們所知的名詞和動(dòng)詞沒(méi)有什么不同】

基于字符的可視化選擇

從基于字符的可視化開(kāi)始介紹(從普通模式輸入v進(jìn)入可視化模式),在這種模式下你可以選中單個(gè)字符、多個(gè)字符、單詞等等。相比較行選擇模式來(lái)說(shuō),我比較少使用這種模式,不過(guò)只是相對(duì)而言,其實(shí)用的也還是挺多的。

這里最主要的是要理解這一點(diǎn): 處于可視化模式中,你的移動(dòng)動(dòng)作會(huì)修改被高亮選擇的文本。這就意味著,w或)之類(lèi)的動(dòng)作也會(huì)起作用,它們可以擴(kuò)展當(dāng)前高亮選擇的范圍。之后,這部分高亮文本就可以作為命令執(zhí)行的目標(biāo)。

基于行選擇的可視化模式

普通模式下輸入V進(jìn)入這種模式,之后我們會(huì)討論在這種模式下的操作。

基于列選擇的可視化模式

可視化模式中還可以垂直地選擇文本,這對(duì)操作列數(shù)據(jù)來(lái)說(shuō)很給力。

可視化模式下對(duì)選中文本的執(zhí)行動(dòng)作

對(duì)這些文本做什么操作都是你的自由,不過(guò)最普遍的操作是刪除、拷貝和粘貼。想一下你平常用鼠標(biāo)選中一片文本會(huì)做什么操作?

進(jìn)入可視化模式,選中兩個(gè)以上單詞并拷貝

vwwy

拷貝之后你可以在任何你希望的地方輸入p來(lái)粘貼。

或者你可以做一些基于行的操作。

進(jìn)入行選擇模式,刪除幾行文本

Vjjd

你也可以使用文本對(duì)象,不過(guò)這種操作不太安全,最好別做。

可視化模式下選中一整個(gè)段落

vip

可視化模式下選中一整段文本并粘貼到當(dāng)前段落之下。

vipyjjp

不要因?yàn)槊詈荛L(zhǎng)而感到崩潰。要記住,這些命令跟我們平常說(shuō)話是一樣的。你可以沒(méi)有任何困難地、很隨意地念叨:

我想去商店。

這條命令也是一樣的:

拷貝這一段,下移兩行,再粘貼。

將可視化模式與重復(fù)結(jié)合

可視化模式還有一個(gè)很神奇的地方,對(duì)于選中的文本,你可以通過(guò)點(diǎn)命令來(lái)執(zhí)行之前緩存的命令。請(qǐng)看下面這個(gè)例子:

foo
bar
thing
other
yetanother
also

如果想在每行前面都加個(gè)冒號(hào),可以現(xiàn)在第一行foo之前添加,然后可視化模式下選擇之下所有行,執(zhí)行點(diǎn)命令就可以了。

:foo
:bar
:thing
:other
:yetanother
:also

【注意:要想使用這個(gè)功能,必須要在配置文件中添加映射 vnoremap . :norm.<CR>】

BAM!

覺(jué)得這功能沒(méi)有那么酷炫? 那就想象一下: 你有個(gè)六萬(wàn)行的文件,每行都與例子一樣,需要追加個(gè)冒號(hào)。你會(huì)怎么做?

對(duì)整個(gè)文件添加分號(hào)

0i:j0vG.

wut

大大簡(jiǎn)化了我們的操作,大殺器一枚。步驟如下:

  1. 走到第一行行首并插入一個(gè)冒號(hào)(0i:)
  2. 走到下一行定位到行首位置(j0,注意之前是插入模式,需要先回到普通模式)
  3. 選中當(dāng)前行到文件末尾的內(nèi)容(vG)
  4. 給選中的內(nèi)容添加冒號(hào)(.)

這樣對(duì)六萬(wàn)行文件的操作就全部完成了。你甚至不需要去記一些亂七八糟的口訣——就像學(xué)騎單車(chē)會(huì)摔倒一樣,摔著摔著你就會(huì)了。相信我。

使用宏

有些人會(huì)覺(jué)得宏很可怕,其實(shí)不然。宏只用來(lái)完成這樣一件事: 記錄你做的一切,在你需要的時(shí)候幫你再做一次。下面是一個(gè)簡(jiǎn)單總結(jié):

  • qa: 開(kāi)始記錄接下來(lái)要執(zhí)行的動(dòng)作,并命名為a
  • q: 停止記錄
  • @a :將宏代表的動(dòng)作再執(zhí)行一次

很簡(jiǎn)單啊是不是?你可以保存多個(gè)宏,比如說(shuō)宏a、宏b、宏c等等。當(dāng)你需要的時(shí)候執(zhí)行@a或者@c之類(lèi)的就可以了。

什么場(chǎng)景下使用宏?

你可能會(huì)問(wèn):

既然可視化模式與點(diǎn)命令的結(jié)合已經(jīng)這么強(qiáng)大了,我們?yōu)槭裁催€要使用宏呢?

問(wèn)得好,不過(guò)答案挺復(fù)雜。宏可以做你所做的一切,來(lái)看看這樣一個(gè)流程

  1. 在當(dāng)前行搜索“widget”
  2. 找到最后一個(gè)匹配到的單詞并添加–maker
  3. 走到行首并添加一個(gè)分號(hào)
  4. 走到行末再添加一個(gè)點(diǎn)號(hào)
  5. 如果行末有空格則刪除

這么一堆工作,咱們還是假設(shè)文件有六萬(wàn)行,試著在Microsoft word之類(lèi)的工具里完成這些操作,照樣會(huì)讓人感到萬(wàn)分痛苦。

不過(guò)在vim中,這都不算事兒,你只需要把這些動(dòng)作都做一遍(recording模式下),然后對(duì)每一行重新執(zhí)行宏就可以了。

【注意:如果想要對(duì)可視化選中文本執(zhí)行宏的話,可以執(zhí)行:normal @a(或者其他你所定義的宏的名字),這條命令會(huì)臨時(shí)將你切換到普通模式,針對(duì)每一行執(zhí)行宏命令】

技巧

下面我們來(lái)看一些大家經(jīng)常問(wèn)的一些問(wèn)題,總結(jié)出來(lái)節(jié)約大家時(shí)間。

刪除行末空格

根據(jù)打開(kāi)文件的類(lèi)型不同,可能需要你對(duì)回車(chē)符和換行符做一些處理。這里介紹如何刪除行末那些煩人的Ctrl-M字符。

刪除行末的Ctrl-M字符

:%s/s+$//

修改文件類(lèi)型

set ft=unix

set ft=html

set ft=dos

【注意:如果要顯示當(dāng)前文件類(lèi)型,在配置文件中添加:set filetype,或者在vim中直接執(zhí)行這條命令就可以了】

包裝文本

借用Surround插件,我們可以很

  • cs”‘: 將光標(biāo)所在單詞兩邊的雙引號(hào)修改成單引號(hào)
  • cs’<q> :做同樣的事,不同的是將單引號(hào)修改成<q>
  • ds” : 刪除兩邊的的配對(duì)雙引號(hào)
  • ysiw[ :在當(dāng)前單詞兩邊加上中括號(hào)
  • ysiw<em>: 給當(dāng)前單詞(其他文本對(duì)象也可)添加強(qiáng)調(diào)標(biāo)簽?。?!知道我為什么這么激動(dòng)嗎?因?yàn)檫@個(gè)操作可以使用點(diǎn)命令來(lái)重復(fù)!
  • Visual Mode: 可視化模式下,選中任意文本,輸入S。vim會(huì)帶你跳轉(zhuǎn)到窗口最底端。這時(shí)候你可以輸入任何你想給這段文本打上的標(biāo)簽,比如說(shuō)<a href=”/images”> ,回車(chē)試試?

總結(jié)

通過(guò)本教程我希望大家能明白以下兩點(diǎn):

  1. vim 是可以學(xué)會(huì)的
  2. vim 很強(qiáng)大

上面介紹的那些vim基礎(chǔ)用法,即便你只喜歡其中一部分,我想可能也會(huì)加深你對(duì)編輯文本的熱情——這可不是小事。你對(duì)操作的編輯器越熟練,思維也就越發(fā)散,我想這是堪比史詩(shī)級(jí)的大事了。

更為重要的是,這也是為什么要求你得精通你選擇的編輯器。只有精通編輯器,不被編輯器的操作所阻滯,當(dāng)你腦內(nèi)思緒奔騰時(shí),你才能激揚(yáng)文字跟緊思緒跳躍的步伐。

或者,你也可以將這一切都拋開(kāi),成為那些被人所取笑的人——不管怎樣,我希望本教程能對(duì)你有用。

【如果你喜歡這篇文章,可以去我的地盤(pán)看看其他技術(shù)指導(dǎo)文章】

引用

  1. 推薦大家閱讀Drew Neil的這本書(shū)《Practical Vim: Edit Text at the Speed of Thought》這是vim愛(ài)好者必備書(shū)籍。
  2. 強(qiáng)烈推薦《Your Problem with vim is that you don’t grok vi》,它不光對(duì)vim一般用法做了非凡概述,還介紹了一些漂亮的vim技巧。
  3. 如果你還沒(méi)看過(guò)Steve Losh的《Coming Home to Vim》,強(qiáng)烈推薦。
  4. 一定要去看看 Kana 大神的《True Power of Vim》。
  5. 另外還有Drew的 Vimcasts.org. 這兩者都從實(shí)際操作角度讓你認(rèn)識(shí)到vim的強(qiáng)大。
  6. 如果想要vim簡(jiǎn)明命令資源,下載 Vim Quick Reference。
  7. 當(dāng)然不要忘了 Vim Wiki,這也是學(xué)習(xí)vim的重要資源。
  8. 如果你對(duì)vimscript感興趣, 一定去看看Steve Losh的《Learn Vimscript the Hard Way》。這是迄今為止關(guān)于vimscript的最好學(xué)習(xí)資料。
  9. 還有Openvim的《This is a really well done interactive tutorial》。
  10. The help 非常棒,不過(guò)內(nèi)容有點(diǎn)多,如果你真的非常想要學(xué)好Vim的話,那么一定要從頭到尾通讀。

關(guān)于作者: 巽離

坐標(biāo)北京, linux應(yīng)用程序開(kāi)發(fā),家鄉(xiāng)安徽巢湖。 @饕餮巽離

查看巽離的更多文章 ?

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
VIM鍵盤(pán)映射 (Map) [Python俱樂(lè)部]
Vim入門(mén)級(jí)技巧集
vim的visual可視模式
文本編輯工具
文件編輯器 vi
簡(jiǎn)明 Vim 練級(jí)攻略 | 酷殼
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服