2014-10-02 54 views
0

我一直在使用Sublime編輯器,並且正在切換到vim(因爲我必須)。我聽說Vim是最好的編輯器,如果你能掌握所有的快捷方式。以下是我的一些需求。請告訴我應該使用哪個快捷方式/插件來實現它們。Vim下面的快捷方式或插件

  1. C:中的開關大小寫聲明我需要10個例子。那麼我怎樣才能快速添加它們?有沒有像case n:10+
  2. 捲曲支架完成:我需要一個自動關閉卷曲支架}。與括號相同的需要。
  3. 在CSS中:屬性的代碼完成。
  4. 代碼縮小選項:在Sublime中,您可以通過在行號的左側按>類似符號來縮小塊中存在的代碼(如函數或循環)。這在Vim中可能嗎?
  5. 程序員(C,C++,php,CSS,HTML)可以使用其他任何快捷方式/插件來提高他/她的工作效率。

任何幫助表示讚賞。

+2

「(因爲我必須)」這將是第一個。 – romainl 2014-10-02 12:13:59

回答

2
  1. 用C的switch-case語句:我需要像10的情況。那麼我怎樣才能快速添加它們?有沒有像情況n:10+?

    ocase :<CR>break;<Esc> 
    9. 
    

    :help repeating。但是,請看SnipMateUltisnips

  2. 捲曲括號完成:我需要一個自動關閉的大括號}。與括號相同的需要。

    那「功能」是不是有用的,但如果你沒有已經厭倦的話,你可以找到a good list on the Vim wiki ..

  3. 在CSS:代碼完成的性質。

    它是內置的。在幾個字符後嘗試<C-x><C-o>。如果你不喜歡默認的<C-x><C-o>,創建你自己的搭配:

    inoremap <key> <C-x><C-o> 
    

    :help key-mapping:help key-notation

  4. 代碼縮小選項:在Sublime中,可以通過在行號的左側按類似符號來縮小塊中存在的代碼(如函數或循環)。這在Vim中可能嗎?

    該功能通稱爲「摺疊」。您可以用zc結束摺疊,用zo打開它,用za等等來切換它。請參閱:help folding

  5. 程序員(C,C++,php,CSS,HTML)可以用來提高他/她的工作效率的任何其他快捷方式/插件。

    在尋找插件之前學習Vim。

+0

謝謝。我深入瞭解vim的基礎知識。 – 0aslam0 2014-10-02 15:07:44

+0

對於任何編碼,我都會推薦「環繞聲」,以及Taglist或Tagbar。除此之外,它真的歸結爲偏好...有很多優秀的插件,你永遠不會找到一個「必須擁有」插件的權威列表。無論如何,這樣的清單在StackOverflow上都是無關緊要的。有一個軟件推薦堆棧交換,其中的主題是:http://softwarerecs.stackexchange.com – Ben 2014-10-02 16:03:54

1
  1. 隨着ctags的數據庫正確配置和高達最新,如果是switch上枚舉,然後lh-cpp提供(通過MU-模板)的CTRL-X_se映射,將產生的開關的情況。如果你想從整數生成它,這將是可能的(但不映射棘手的一點點/命令,將其封裝)

    :call MuTemplate('c/switch', {'values':reverse(range(1,5)), "name": "foo"})

  2. LH-CPP嵌入LH-括號中會提供一個nice brackets support

  3. (SO 4重新編號3,如果我沒有寫 「3」 - >這個空的和無用的答案)

  4. 這就是所謂的在摺疊的Vim。通常人們使用syntaxindentfoldingmethod。對於C和C++,我已經厭倦了它,並重新編寫了舊的plugin - 插件仍然需要許多改進。

  5. 還有很多。在C和C++ YouComplete是必須的。然後我使用我的插件來集成CMake,有一個項目概念。其他人使用其他的東西。這個問題沒有明確的答案。

+0

謝謝。你能給我發送關於這個ctags數據庫的鏈接嗎。我無法消化所有這一切。任何cheatsheat或引用就足夠了 – 0aslam0 2014-10-02 12:07:32

+0

您需要安裝一個類似_exuberant ctags_的軟件。然後,對於你給定的項目,你需要告訴vim在哪裏找到標籤文件(':h tags')。關於C++,我使用以下選項生成我的ctags數據庫:'--C++ - kinds = + p --fields = + imaS --extra = + q --language-force = C++'(我通過2插件:一個用於項目管理,一個用於生成ctags數據庫,以及一些調整) – 2014-10-02 12:16:36