Vim使用相對行號的方法

服務器

小編給大家分享一下Vim使用相對行號的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)專注于南木林網(wǎng)站建設(shè)服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供南木林營銷型網(wǎng)站建設(shè),南木林網(wǎng)站制作、南木林網(wǎng)頁設(shè)計、南木林網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務,打造南木林網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供南木林網(wǎng)站排名全網(wǎng)營銷落地服務。

前言

大家都知道,我們使用Vim的一點好處就是,可定制性非常高,如果遇到任何讓自己感到不適的痛點,都可以通過配置甚至開發(fā)一款插件來解決。開始使用Vim一段時間之后,我發(fā)現(xiàn)一個非?!胺慈祟悺钡牡胤剑篤im的很多命令都是需要查行數(shù)的。比如“刪除一個函數(shù)體”,你就要數(shù)數(shù)這個函數(shù)占了幾行(比如5行),然后按5dd。如果是使用鼠標的話就不用數(shù)了,可以直接拖過去,但是鼠標效率太低,既然學了Vim就不要讓手離開鍵盤了。

我總結(jié)了一套方案,幾乎所有的操作都可以不用數(shù)數(shù)來完成。

Vim支持兩種行號,相對行號和絕對行號。相對行號是顯示每一行距離光標所在行相隔多少行,絕對行號就是順序顯示每一行的序號。

Vim使用相對

set nu打開行號顯示, set rnu打開相對行號顯示(更多信息可以查看:help nu :help rnu。

效果如下:


打開行號顯示


打開相對行號的顯示


同時打開相對行號和絕對行號

可以看到,如果同時打開二者,就會在當前行顯示絕對行號,其他顯示距離當前行的距離。

使用一段時間我發(fā)現(xiàn),在normal模式時,經(jīng)常進行對多行的操作,這時候如果使用絕對行號,那么必然是要做減法,或者去數(shù)數(shù)來確定行的數(shù)量的。所以在normal模式應該使用相對行號。0對我們來說是沒有任何作用的,所以當前行還是顯示行號吧。

然后一些常用的操作習慣都要相應換一下:

刪除n行。3dd是刪除包括當前行一共3行,但是因為顯示的是相對行號,我們要“刪除直到目標行”的時候,要不自覺的+1,比如在上面最后一幅圖,要刪除直到“終端配色安裝”的內(nèi)容,就要按4dd。有沒有辦法不用計算,所見即所得呢?有的,d3j即可。command+直到目標行號+方向。例如刪除直到上面“我對……”的內(nèi)容,就是d4k。其余的操作也是類似,例如移動到下面4行,可以用4gg,也可以用g4j。其他還有yank操作等。替換范圍本來是使用絕對行號就可以,例如替換10-20行,就是:10,20s/xxx/yyy/g,但是由于我們normal模式顯示了相對行號,那么就要根據(jù)相對行號操作了: :.+2,.+12s/xxx/yyy/g (假設(shè)當前在第8行)。.在Vim中表示當前行,要善于利用。由于我們顯示的是相對行號,所以基本上和行號有關(guān)的操作都需要計算完成,用.加上/減去顯示的相對行號(所見即所得)

在insert模式時,我們一般都是編輯操作,不會對多行進行判斷,此時可能對絕對行號更關(guān)心(寫到多少行了等)。所以可以監(jiān)聽一下事件,進入編輯模式時使用絕對行號,退出編輯模式進入normal模式時使用相對行號。

設(shè)置如下:

set nu
augroup relative_numbser
 autocmd!
 autocmd InsertEnter * :set norelativenumber
 autocmd InsertLeave * :set relativenumber
augroup END

set nu是因為我一般打開一個文件不一定是編輯目的,瀏覽的話絕對行號更方便。這樣設(shè)置可以讓第一次進入文件的時候使用絕對行號,進入編輯模式再退出到normal模式時再顯示相對行號。

這樣用了一段時間,感覺按下的鍵多了,但是腦子里需要的計算少了很多,還不容易出錯,挺好的。

最后附上我的.vimrc,供參考使用,不推薦盲目復制。

相關(guān)問題

在 Vim 7.4 之前的版本, 啟用相對行號當前行號將變?yōu)?, 無法顯示正常的行號, 在 Vim 7.4 中則可以正常的顯示當前行號的同時來顯示相對行號, 下面有兩張圖可以對比

Vim 7.3

Vim 7.4

從上面的圖片看來, 啟用相對行號后可以很直觀的看到當前行距離上面/下面某行的行數(shù)

可以使用以下指令啟用這個特性

set relativenumber

啟用相對行號后再也不用為了復制多行費力氣的去數(shù)了

以上是Vim使用相對行號的方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當前題目:Vim使用相對行號的方法
標題鏈接:http://www.muchs.cn/article6/cjjhog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、軟件開發(fā)網(wǎng)站制作、用戶體驗網(wǎng)站設(shè)計、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司