我聽過不少關於Vim的消息 ,包括優勢和缺點。 看起來你應該(做爲開發人員)使用Vim比使用任何其餘編輯器更快。 我正在使用Vim來作一些基本的東西,並且使用Vim,個人效率最多只有 10倍。 html
當你談論速度時你應該關心的兩件事(你可能不太關心它們,但你應該這麼作)是: 正則表達式
這裏有兩個例子,說明爲何我對Vim的效率低得多。 vim
複製/剪切和粘貼。 我一直這樣作。 使用全部當代編輯器,您能夠用左手按Shift鍵 ,而後用右手移動光標以選擇文本。 而後按Ctrl + C複製,移動光標並按Ctrl + V粘貼。 編輯器
有了Vim,它太可怕了: 學習
yy
複製一行(你幾乎從不但願整個行!) [number xx]yy
將xx
行復制到緩衝區中。 但你永遠不知道你是否選擇了你想要的東西。 我常常要作[number xx]dd
而後u
撤消! 另外一個例子? 搜索和替換。 spa
/
,而後鍵入要搜索的內容,那麼若是有一些特殊的字符放在\\
每一個特殊字符前,而後按Enter鍵 。 與Vim的一切都是這樣的:彷佛我不知道如何以正確的方式處理它。 .net
個人問題是: htm
你使用Vim的方式是什麼讓你比現代編輯更有效率? ip
你在談論文本選擇和複製,我認爲你應該看看Vim可視模式 。
在可視模式下,您可使用Vim命令選擇文本,而後您可使用選擇執行任何操做。
請考慮如下常見狀況:
您須要選擇下一個匹配的括號。
你能夠這樣作:
v%
若是光標在開始/結束括號上 vib
您想要在引號之間選擇文本:
你想選擇一個花括號塊(在C風格的語言中很常見):
viB
vi{
您想要選擇整個文件:
ggVG
可視塊選擇是另外一個很是有用的功能,它容許您選擇文本的矩形區域,您只需按Ctrl - V啓動它,而後選擇所需的文本塊並執行任何類型的操做,如yank,刪除,粘貼,編輯等。編輯面向列的文本很是棒。
使用內置文件資源管理器! 命令是:Explore
,它容許您很是快速地瀏覽源代碼。 我在.vimrc
有這些映射:
map <silent> <F8> :Explore<CR> map <silent> <S-F8> :sp +Explore<CR>
資源管理器也容許您進行文件修改。 我會發布一些我最喜歡的按鍵,按<F1>
將爲您提供完整列表:
cd ..
) 我前幾天剛剛發現了Vim的omnicompletion,雖然我認可我對它的做用有點朦朧,但我只是搗碎了Ctrl + x Ctrl + u或者Ctrl + n / Ctrl + p在插入模式下。 它不是智能感知 ,但我還在學習它。
試試看! :help ins-completion
批量文本操做!
經過宏:
qq
q
@q
(第一次), @@
以後。 20@@
或者經過正則表達式:
:%s/[fo]+/bar/g
(但要注意:若是你作後者,你將有2個問題:)。)
多個緩衝區,特別是它們之間的快速跳轉,用於比較兩個文件:bp
和:bn
(正確地從新映射到單個Shift + p或Shift + n )
vimdiff
模式(分紅兩個垂直緩衝區,顏色顯示差別)
使用Ctrl + v進行區域複製
最後,標籤完成標識符(搜索「mosh_tab_or_complete」)。 那是改變生活的方式。