日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Vim不常见但是很实用的命令技巧

發(fā)布時間:2025/3/21 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vim不常见但是很实用的命令技巧 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

概述

Linux vi/vim

Vim不常見但是很實(shí)用的命令技巧


命令

保存文件并退出

:x

和下面的命令是等價的:

:wq

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

區(qū)別:這兩個命令實(shí)際上并不完全等價,當(dāng)文件被修改時兩個命令時相同的。

但如果未被修改,使用 :x 不會更改文件的修改時間,而使用 :wq 會改變文件的修改時間。


基本計(jì)算器

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

Ctrl+r '=3+6' ENTER

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


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

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

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

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

set hlsearch

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


縮寫

語法格式如下:

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

一個通用的例子是:

:ab asap as soon as possible

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


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

每當(dāng)你打開一個你沒有寫入權(quán)限的文件(比如系統(tǒng)配置文件)并做了一些修改,Vim 無法通過普通的 “:w” 命令來保存。

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

:w !sudo tee %

這會直接以 root 方式保存。

要確保用戶在


自動補(bǔ)全

這里不說插件提供的自動補(bǔ)全,僅僅說Vim 默認(rèn)有自動補(bǔ)全的功能。的確這個功能是很基本的,并且可以通過插件來增強(qiáng),但它也很有幫助。

Vim 嘗試通過已經(jīng)輸入的單詞來預(yù)測單詞的結(jié)尾。比如當(dāng)你在同一個文件中第二次輸入 “xiaogongjiang” 時,僅僅輸入 “x”或者多一些, 然后保持在插入模式,按 Ctrl+n 鍵就可以看到 Vim 為你補(bǔ)全了單詞。很簡單,但也很有用。


比較兩個文件的不同

vimdiff 命令,它可以使用分離模式打開 Vim 并比較兩個文件的不同。語法如下:

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

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

:diffthis

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

:vsp [文件2]

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

:diffthis

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

:diffthis

這樣兩個文件中不同的部分就會被高亮。

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


按時間回退文件

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

:earlier 1m

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

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

:later

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

當(dāng)我開始使用 Vim 時,一件我總是想很方便做的事情是如何輕松的刪除方括號或圓括號里的內(nèi)容。

一般模式下轉(zhuǎn)到開始的標(biāo)記,

然后使用下面的語法:

di[標(biāo)記]

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

di(

如果是方括號或者是引號,則使用:

di{

和:

di"


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

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

dt[標(biāo)記]

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

dt.

會刪除至句子的末尾,但保持 ‘.’ 不動。


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

你可以把 Vim 和 xxd 功能連起來來把文件轉(zhuǎn)換為十六進(jìn)制模式。命令如下:

:%!xxd

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

:%!xxd -r

跳到上一個/下一個位置

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

Ctrl+o

來回到之前修改的地方

類似的:

Ctrl+i

會回退上面的跳動。

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

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

:%TOhtml

總結(jié)

以上是生活随笔為你收集整理的Vim不常见但是很实用的命令技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。