標籤:

你最愛的一個 Vim 命令是什麼?


在任何格式的文本中,想插入一些數據,只需要寫一小段代碼,然後選中這段代碼,執行

!python

Tada! 這段代碼的執行結果就被插入在了這段代碼所在的位置。連刪除這段代碼的操作都不需要了。

比如:

新年倒計時開始:
for i in range(10, 0, -1):
print " ", i, "!"

選中Line 2, Line 3的代碼,並按下『!python』:

新年倒計時開始:
10 !
9 !
8 !
7 !
6 !
5 !
4 !
3 !
2 !
1 !

=-----1.26更新------=

再補充一個「Insert Normal」模式的功能:

比如自己正在寫代碼的時候,想要該行處於屏幕中部,一般情況就是,先輸入〈Esc〉zz然後輸入i繼續敲代碼。

現在知道了「Insert Normal」模式,直接在寫代碼的過程中,輸入Ctrl-O zz,Tada!代碼已經在屏幕中部,並且你還處於輸入模式,繼續寫代碼就是。

還有很多不在這裡更新了(畢竟要的是最愛的一個!),請移步:「高大上」的神器--Vim - 喜歡寫代碼的PM - 知乎專欄


cit, cat, dit, dat

編輯 HTML 的時候很好玩


di{ da[ 等組合


gg=G


我用的最多的是o

我用open來記憶它。

打開了一個新的次元。

它的作用是在當前行的上下插入一個空行並且把游標停在正確的縮進上。

用o還是用O取決於你想要的行為。例如如果需要向下延展當前行,則用o,向上延展則用O。

在注釋行中使用o鍵,新增的行會自動添加註釋頭。

如果出現需要增加或者減少縮進的情況例如大括弧之前之後,o鍵也是自動處理的。

當然,嚴格的說,使用最多的命令甚至還不是o,而是hjkl這幾個鍵。


說一些知道後常用的.

  • Ctrl-N / Ctrl-P: 輸入過程補全一個詞.
  • Ctrl-L: 輸入過程補出一行, 經常用來補全代碼(莫非是我寫的boilerplate太多!)
  • :r filename : 可以把對應文件內容讀到當前游標下.
  • :r! command: Command 為任意shell命令, 命令的標準輸出會被讀到當前游標下.


df[字元]


.

repeat

ysiw"

dst

yssw"

cs""

:!google-chrome %&&

:!fire-fox %&&

:d100

:dG

:dg

shift+v jk

f

ddp

:%s/Peo{ple, poo}/Nero{cc,cm}/g

?forsearch

/forsearch


:%s/a/b/g 替換

:help


談不上最愛,不過用的最多的是ctrl+c


XX


:help!


我說不上最喜歡,使用得最頻繁的是ctrl+[


:b #


:Sex because it"s sexy!


:Sex


:& 或者 q: 查看歷史命令,並且可以編輯歷史命令再執行,且歷史記錄窗口如同普通窗口可執行Vim的所有操作,如搜索,替換。此處顯得偷懶也是一種創造的動力。


ctrl + v


歪個樓,不是vim的命令。

ctrl-z 將當前vi放到後台,退到命令行下,執行完後用fg再回到vi。類似neovim的terminal特性。

比如你改個腳本某行,要執行下。

個人感覺完爆:!cmd的,因為vim下執行的輸出本來就受限於vi的顯示,有時候多了還顯示不全。


/reg

:ls

:e

:b

:bu

:%s

:!

ctrl-v (塊visual)

g*

$

^

w

b

f


推薦閱讀:

為什麼vimrc設置inoremap <c-h> <left>無效?
vim顯示^@是什麼意思啊?
VIM如何永久性顯示行號?
Vim 和 Emacs 都用過兩年以上的人,說說它們使用起來感覺最大的區別是什麼?

TAG:Vim |