黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

一些不起眼但非常有用的 Vim 命令

系統(tǒng) 2205 0

如果我的 關(guān)于這個(gè)話題的最新帖子 沒 有提醒到你的話,那我明確地說,我是一個(gè) Vim 的粉絲。所以在你們中的某些人向我扔石頭之前,我先向你們展示一系列“鮮為人知的 Vim 命令”。我的意思是,一些你可能以前沒有碰到過的命令,但可能對(duì)你來說很有用。作為第二免責(zé)聲明,我不知道哪些命令是你可能知道的,以及哪些是對(duì)你來說有 用的。因此這些命令實(shí)際上是一些相對(duì)少見,但很可能很有用的 Vim 命令。

一些不起眼但非常有用的 Vim 命令

?

保存文件并退出

說起來有些慚愧,我也是最近才學(xué)到這個(gè)命令

      :x
    

?

和下面的命令是等價(jià)的:

      :wq
    

?

都是保存當(dāng)前文件并退出。

(譯者注:這兩個(gè)命令實(shí)際上并不完全等價(jià),當(dāng)文件被修改時(shí)兩個(gè)命令時(shí)相同的。但如果未被修改,使用 :x 不會(huì)更改文件的修改時(shí)間,而使用 :wq 會(huì)改變文件的修改時(shí)間。)

?

基本計(jì)算器

在插入模式下,你可以使用 Ctrl+r 鍵然后輸入 =,再輸入一個(gè)簡(jiǎn)單的算式。按 Enter 鍵,計(jì)算結(jié)果就會(huì)插入到文件中。例如,嘗試輸入:

      Ctrl+r '=2+2' ENTER
    

?

一些不起眼但非常有用的 Vim 命令

然后計(jì)算結(jié)果“4 ”會(huì)被插入到文件中。

?

查找重復(fù)的連續(xù)的單詞

當(dāng)你很快地打字時(shí),很有可能會(huì)連續(xù)輸入同一個(gè)單詞兩次,就像 this this。這種錯(cuò)誤可能騙過任何一個(gè)人,即使是你自己重新閱讀一遍也不可避免。幸運(yùn)的是,有一個(gè)簡(jiǎn)單的正則表達(dá)式可以用來預(yù)防這個(gè)錯(cuò)誤。使用搜索命令(默認(rèn)時(shí) /)然后輸入:

      \(\<\w\+\>\)\_s*\1
    

?

這會(huì)顯示所有重復(fù)的單詞。要達(dá)到最好的效果,不要忘記把下面的命令:

      set hlsearch
    

?

放到你的 .vimrc 文件中高亮所有的匹配。

一些不起眼但非常有用的 Vim 命令

?

縮寫

一個(gè)很可能是最令人印象深刻的竅門是你可以在 Vim 中定義縮寫,它可以實(shí)時(shí)地把你輸入的東西替換為另外的東西。語法格式如下:

      :ab [縮寫][要替換的文字]
    

?

一個(gè)通用的例子是:

      :ab asap as soon as possible
    

?

會(huì)把你輸入的 “asap” 替換為 “as soon as possible”。

?

在你忘記用 root 方式打開文件時(shí)的文件保存

這可能是一個(gè)在論壇中一直受歡迎的命令。每當(dāng)你打開一個(gè)你沒有寫入權(quán)限的文件(比如系統(tǒng)配置文件)并做了一些修改,Vim 無法通過普通的 “:w” 命令來保存。

你不需要重新以 root 方式打開文件再進(jìn)行修改,只需要運(yùn)行:

      :w !sudo tee %
    

?

這會(huì)直接以 root 方式保存。

?

實(shí)時(shí)加密文本

如果你不想讓別人看懂你的屏幕上的內(nèi)容,你可以使用一個(gè)內(nèi)置的選項(xiàng),通過下面的命令使用 ROT13 來對(duì)文本進(jìn)行編碼:

      ggVGg?
    

?

一些不起眼但非常有用的 Vim 命令

gg 把光標(biāo)移動(dòng)到 Vim 緩沖區(qū)的第一行,V 進(jìn)入可視模式,G 把光標(biāo)移動(dòng)到緩沖區(qū)的最后一行。因此,ggVG 使可視模式覆蓋這個(gè)當(dāng)前緩沖區(qū)。最后 g? 使用 ROT13 對(duì)整個(gè)區(qū)域進(jìn)行編碼。

注意它可以被映射到一個(gè)最常使用的鍵。它對(duì)字母符號(hào)也可以很好地工作。要對(duì)它進(jìn)行撤銷,最好的方法就是使用撤銷命令:u。

?

自動(dòng)補(bǔ)全

這是另外一個(gè)令我感到慚愧的功能,但我發(fā)現(xiàn)周圍很多人并不知道。Vim 默認(rèn)有自動(dòng)補(bǔ)全的功能。的確這個(gè)功能是很基本的,并且可以通過插件來增強(qiáng),但它也很有幫助。方法很簡(jiǎn)單。Vim 嘗試通過已經(jīng)輸入的單詞來預(yù)測(cè)單詞的結(jié)尾。比如當(dāng)你在同一個(gè)文件中第二次輸入 “compiler” 時(shí),僅僅輸入 “com” 然后保持在插入模式,按 Ctrl+n 鍵就可以看到 Vim 為你補(bǔ)全了單詞。很簡(jiǎn)單,但也很有用。

?

比較兩個(gè)文件的不同

你們中的大多數(shù)很可能都知道 vimdiff 命令,它可以使用分離模式打開 Vim 并比較兩個(gè)文件的不同。語法如下:

      $ vimdiff [文件1][文件2]
    

?

但同樣的結(jié)果也可以通過下面的 Vim 命令來獲得:

      :diffthis
    

?

首先在 Vim 中打開原始文件。然后使用分離模式帶來第二個(gè)文件:

      :vsp [文件2]
    

?

最后在第一個(gè)緩沖區(qū)里輸入:

      :diffthis
    

?

通過 Ctrl+w 來切換緩沖區(qū)并再次輸入:

      :diffthis
    

?

這樣兩個(gè)文件中不同的部分就會(huì)被高亮。

(譯者注:可以直接在一個(gè)緩沖區(qū)里使用命令 :windo diffthis,而不用輸入 :diffthis 兩次)

要停止比較,使用:

      :diffoff
    

?

按時(shí)間回退文件

Vim 會(huì)記錄文件的更改,你很容易可以回退到之前某個(gè)時(shí)間。該命令是相當(dāng)直觀的。比如:

      :earlier 1m
    

?

會(huì)把文件回退到 1 分鐘以前的狀態(tài)。

注意,你可以使用下面的命令進(jìn)行相反的轉(zhuǎn)換:

      :later
    

?

刪除標(biāo)記內(nèi)部的文字

當(dāng)我開始使用 Vim 時(shí),一件我總是想很方便做的事情是如何輕松的刪除方括號(hào)或圓括號(hào)里的內(nèi)容。轉(zhuǎn)到開始的標(biāo)記,然后使用下面的語法:

      di[標(biāo)記]
    

?

比如,把光標(biāo)放在開始的圓括號(hào)上,使用下面的命令來刪除圓括號(hào)內(nèi)的文字:

      di(
    

?

如果是方括號(hào)或者是引號(hào),則使用:

      di{
    

?

和:

      di"
    

?

刪除指定標(biāo)記前的內(nèi)容

和刪除標(biāo)記內(nèi)部有些相似,但目的不同。命令如下:

      dt[標(biāo)記]
    

?

會(huì)刪除所有光標(biāo)和標(biāo)記之間的內(nèi)容(保持標(biāo)記不動(dòng)),如果在同一行有這個(gè)標(biāo)記的話。例如

      dt.
    

?

會(huì)刪除至句子的末尾,但保持 ‘.’ 不動(dòng)。

?

把 Vim 變?yōu)槭M(jìn)制編輯器

這不是我最喜歡的竅門,但有時(shí)會(huì)很有趣。你可以把 Vim 和 xxd 功能連起來來把文件轉(zhuǎn)換為十六進(jìn)制模式。命令如下:

      :%!xxd
    

?

一些不起眼但非常有用的 Vim 命令

類似的,你可以通過下面的命令恢復(fù)原來的狀態(tài):

      :%!xxd -r
    

?

把光標(biāo)下的文字置于屏幕中央

我們所要做的事情如標(biāo)題所示。如果你想強(qiáng)制滾動(dòng)屏幕來把光標(biāo)下的文字置于屏幕的中央,在可視模式中使用命令(譯者注:在普通模式中也可以):

      zz
    

?

跳到上一個(gè)/下一個(gè)位置

當(dāng)你編輯一個(gè)很大的文件時(shí),經(jīng)常要做的事是在某處進(jìn)行修改,然后跳到另外一處。如果你想跳回之前修改的地方,使用命令:

      Ctrl+o
    

?

來回到之前修改的地方

類似的:

      Ctrl+i
    

?

會(huì)回退上面的跳動(dòng)。

?

把當(dāng)前文件轉(zhuǎn)化為網(wǎng)頁(yè)

這會(huì)生成一個(gè) HTML 文件來顯示文本,并在分開的窗口顯示源代碼:

      :%TOhtml
    

?

(譯者注:原文是 :%Tohtml,但在我的電腦上是 :%TOhtml)

很基本但很不錯(cuò)。

總的來說,這一系列命令是在我讀了許多論壇主題和 Vim Tips wiki (如果你想學(xué)習(xí)更多關(guān)于編輯器的知識(shí),我非常推薦這篇文章) 之后收集起來的。

如果你還知道哪些非常有用但你認(rèn)為大多數(shù)人并不知道的命令,可以隨意在評(píng)論中分享出來。就像引言中所說的,一個(gè)“鮮為人知但很有用的”命令也許只是你自己的看法,但分享出來總是好的。


via: http://xmodulo.com/useful-vim-commands.html

作者: Adrien Brochard 譯者: wangjiezhe 校對(duì): wxy

本文由 LCTT 原創(chuàng)翻譯, Linux中國(guó) 榮譽(yù)推出

一些不起眼但非常有用的 Vim 命令


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論