如何優雅地使用 Vim?

時間 2021-05-10 17:22:17

1樓:

安利下個人的乙個輪子:

基於 vim8/neovim 的 job util, 簡化各種序列並行的非同步實現

主要能幹啥事: 儲存檔案 => 自動打包部署/執行 => 各種方式輸出編譯日誌

還能幹啥事: vim script 實現的輸入法, 自動同步詞庫, 非同步呼叫其它雲輸入法api

2樓:「已登出」

想要優雅的使用Vim,你需要具備一顆創造的心,當然這個前提是你需要系統地學習vim指令碼語言。分享一篇翻譯的vim教程:

wsdjeg/vim-galore-zh_cn此外,如果有興趣也可以嘗試下spacevim:

SpaceVim/SpaceVim

3樓:翟士丹

你需要這個:

spf13-vim - The Ultimate Vim Distribution

還有這個:

然後,動手去練吧,堅持乙個月就OK了!

4樓:王天霸

用Vim最關鍵的在於,不要當著別人的麵用。

趁著沒人自己在家偷偷摸摸的用Vim就行了,設定個快捷鍵,有人來了趕緊切換到IDE

你問我為啥?被無數人無數次罵裝逼之後總結出的教訓。

5樓:周春華

我從07年開始學習使用vim,從08年以後,幾乎天天使用。我覺得我常用正則,我身邊的人覺得我比較超越,比較酷的就是這點。呵呵,個人感覺這可是vim,乃至類unix世界裡的魔法,有了這個魔法,你就算是超脫了。。。。。。

6樓:Color

首先我們要知道,Vim是乙個需要學習的編輯器,如果只是使用而不進行專門的學習的話,是很難理解到Vim的精髓的。同樣,Vim也是需要練習的編輯器,如果只是學習而沒有實踐的話,那也是浪費時間(除非你記憶力相當好,以後使用可以回憶起來,但是Vim的命令真心太多了~)。

既然要很優雅的使用Vim編輯器,自然需要對Vim有相當的了解,這裡就簡單的列舉幾個我認為Vimer需要理解和掌握的概念。

# 注1:本文的前提是讀者已經會基本的Vim命令,如果是剛剛接觸Vim,收藏一下就可以了,沒必要現在看。

# 注2:這不是乙個詳細的教程,只是簡單的指出Vim中比較重要的概念和命令。

# 注3:為了表達的需要,所有的例項都是用英文,游標的位置使用星號,如下

I am a V*imer and Emacser, they are both great tool.

如果是插入模式,*號就是游標的位置;如果是常規模式,*號和V位置重合。

# 注4:[N] [I] [V] [C],表示在這種模式下面使用這個命令。下文會有講解。

# 注5:寫著寫著真心累了,然後就偷懶了。。。

0. 鍵盤設定

如果你打算優雅的使用Vim,那麼Caps lock按鍵是必須要對映到ESC按鍵,然後把Vim設定為預設編輯器,不然一切無從談起。

1. 編輯器模式

你需要明白這麼幾個模式:

瀏覽文字的時候,一般使用Normal模式

編輯文字的時候,一般使用Insert模式

處理多行文字的時候,一般使用Visual模式

更高階的功能和設定的時候,一般使用Command-Line模式

2. 常用的編輯命令

你需要明白下面的基本編輯命令:

## 下面簡單的列舉常用的命令,不是很全,可以自己看相關書籍或者文件

i a/A s/S o/O # [N]這些是進入Insert模式使用的命令,還有很多,列出常用的

r/R # [N]這兩個是替換字元的命令

u C-r # [N]這是undo redo

y p/P # [N]這是複製貼上

... 此處省略上百字 ...

## 上面的命令基本可以完成任務了,但是想要優雅,還不過,你需要知道簡潔的命令

## 下面的命令其實是很多命令的組合

yy # 複製一行

... 此處省略上百字 ...

1. 尋找各種外掛程式來滿足自己的尋求

2. 自己定義按鍵,定義函式,設定不同的編輯器引數

... 這一步將需要花費你一輩子的時間 ...

3. 游標移動與檢視移動

目前,Vim是我見過的位置移動最靈活的編輯器。同樣,要想優雅的使用Vim,深入理解位置移動和檢視移動是必不可少。

## 首先是基本的移動命令

hjkl # 基本的移動命令

C-d/u C-f/b C-e/y # 滾屏命令

zz zt zb # 非常好用的檢視移動

H M L # 游標單屏移動

gg G # 文字開頭,文字結尾,3gg是移動到第三行

0 $ # 行首行尾

... 省略N個字 ...

## 然後是更加精確的定位級別的命令

f + 字元 # 搜尋一行中的字元,然後移動,還有F、t、T命令

/ + 更多字元 # 全文搜尋然後移動,還有?命令模式匹配 # 這個是更高基本的了

... 省略N個字 ...

4. 重複

前面只是基本的編輯,這個才是真正的王道啊!這裡面有無窮的優雅,一定要靈活,不要去記憶什麼東西。

## 幾乎任何命令和使用重複的功能如果你要滾屏然後C-f C-f C-f的慢慢的滾,如果使用重複3 C-f就OK了;

如果使用p貼上,要貼上3次,3p就OK了;

發揮自己的想象力吧,Vim的重複無處不在,比如下面的例子:

3fe 5j 7C-u

... 省略N個字 ...

5. 文字物件

好吧,又乙個殺手級別的功能,理解了文字物件以及廣義的文字物件,你的編輯速度會得到N倍的提公升。

## 狹義的文字物件

I am a V*imer and Emacser, they are both great tool.

# 好吧,大概理解了iw指的是乙個單詞,as值得是乙個句子,更多的有aw is ab a[ a} i' a" 好多啊。。。

... 省略N個字 ...

## 廣義的文字物件

1. 我們要明白當前游標是乙個位置。

2. 我們會使用位置移動命令比如f3.

=> 那麼兩個位置就形成了乙個文字物件:

所以,試試 3dfe d3fe dgg dG這些命令就偉大了!

... 省略N個字 ...

6. 多文字編輯

對,Vim是可以同時編輯多個檔案的,這個不贅述了。

... 省略N個字 ...

7. 多視窗

要想優雅,必須要多視窗編輯啊,你要知道如何分視窗,如何在視窗之間快速的移動。

... 省略N個字 ...

8. 配置與外掛程式

很好,終於到了配置級別的了。

顯示行數?可以!

自動儲存?可以!

自動補全?自動縮排?更好的色彩?。。。。

簡而言之:你想要的都在這裡!

... 省略N個字 ...

9. 更多功能

多剪貼簿 # 複製內容到不同的貼上板書籤 # 實現快速調整模式匹配

tag和檔案跳轉

... 省略無窮個字 ...

10. 一些廢話

a. Vim需要系統的學習才能真正的體會它的強大。

d. 我對emacs和vim的看法:都是神器,都值得掌握!

到最後你會發現無論哪個都無法滿足你,但哪個都無法捨棄。個人感覺,對程式設計師而言,Emacs的對職業生涯的影響力更大。

把Vim設定為系統的預設編輯器,把Caps Lock換成ESC系統的學習Vim,有時間就通讀Vim幫助文件使用Vim一兩年後學習使用Emacs編輯器,然後繼續使用Vim

7樓:馮勁

搗鼓下vimrc 弄下外掛程式, 就會變得很優雅。 之後再慢慢地,你就會發現,這些優雅並不實用,最後還是會回歸根源。最後驀然回首,你就會發現原本的vim,才是你所最求的優雅。

而你也成為了一名優秀的vimer ~~~

8樓:

推薦本書,O'Reilly出的,《學習vi和Vim編輯器》第七版,只需要看關於vi, Ex, Vim的內容,寫的很好。

我覺得vim是很優雅的,比如命令d3w(delete 3 words),動作(d)+範圍(3w)式的命令(參考 :help motion.txt)。

vim就應該是這樣使用的,這是我在stackexchange/stackoverflow上看到的,看到這個我才真正的會用vim。

如何優雅地使用 Kindle?

葉里序 我強烈建議,買Kindle不要買保!護!套!我是乙個喜歡輕便的人,買完保護套套上之後,Kindle顯得非常笨重 讓我沒有想要拿在手裡的慾望,當我拿下保護套。真的不要太爽。所以建議不套保護套。Kindle挺耐摔的 小聲bb puresky simple 在主介面搜尋欄裡輸入 ds Kindle...

如何優雅地使用 Android?

手機是nexus系列,要不就刷原生的。原生體驗最好。用nova作為啟動器,再找幾個圖示包,中國產軟體乙個都不要在安卓手機上裝,嘿嘿嘿。 任浣衡 如果是像我這種對系統有潔癖的我會重新刷機建議找乙個Android5.1或Android4.4以上的Rom上面有個ART模式有別於4.4以前的rom 刷機的時...

如何優雅地使用Matlab?

Xenapior 想優雅,matlab不是乙個理想工具,R呀mathematica都比它強。matlab的作用就是數值計算工具。什麼畫圖要美美觀功能要多樣語法要優雅 那根本是走歪路了,請找其它工具去。 邵恩真 edit看看那些內建函式的寫法,可以用用vargarin之類的方法把自己寫的函式改造成針對...