2015-09-07 79 views
0

當我處於插入模式時,如何跳出自動生成的代碼?VIM:在插入模式下跳出自動生成的代碼

用例來說明我的意思

  1. 啓動的Vim C語法vim test.c)。
  2. 進入插入模式(按
  3. 類型: for (bla) {
  4. 命中進入
  5. 它擴大成。

for (bla) { (CURSOR) }

  • 一個循環的型體
  • 如何跳我的光標到循環的外側而不令人厭倦序列:ESC - >幾J的 - > $ - >我
  • 所以,這將是:

    for(bla) { 
        body 
    }(CURSOR) 
    

    P.S.理想的 - 通用解決方案,適用於插入模式下發生的任何自動生成的代碼。

    +3

    一個通用的解決方案可能是使用代碼片段插件:UltiSnips或neosnippet。使用這兩種方法,您可以使用或定義類似於您所描述的片段,並具有多個跳轉點(即使有默認文本佔位符);最後的跳躍點可以是「退出點」 - 即最終的光標位置。請參閱:http://vimcasts.org/episodes/meet-ultisnips/ – VanLaser

    回答

    1

    你可以嘗試一個映射,例如F6

    inoremap <f6> <esc>]MA 
    

    那麼你可以只按<F6>將光標移動到需要的位置,在插入模式仍然停留。

    +0

    謝謝。你能解釋一下''''和'M'的含義嗎? – alandarev

    +2

    @alandarev':h] M' – Kent

    +0

    基本上相同:']} A'。 –