2017-06-06 85 views
0

我是vim用戶,最近我開始學習編寫Android應用程序。
我使用Android Studio 2.3.2和Vim仿真器。移動到AndroidStudio(Vim Emulator)中的上一個/下一個功能

,因爲它涉及到Vim-我通常用它爲C++編程和我每天都在使用的功能之一是]]移動到下一個功能和[[得到到以前的功能。

當我在Android Studio中使用它時,它將我移動到文件的開始/結尾處。

我的猜測是它與在同一行而不是在新行中打開函數範圍有關。

問:

這有可能採用Android Studio的Vim的模擬器,就像我以前在C++做代碼(即使我使用Java編碼風格,又名「埃及括號」跳到下一首/上功能)?

回答

1

從文檔:help ]]

      *]]* 
]]   [count] sections forward or to the next '{' in the 
      first column. When used after an operator, then also 
      stops below a '}' in the first column. |exclusive| 
      Note that |exclusive-linewise| often applies. 

這意味着它只是到具有下一個語句「{」爲線,這恰好是殼體C和C++函數的第一個字符(至少在某些樣式中),因爲方法和函數以{開始,沒有任何類型的嵌套。

但是,在編寫Java時,方法嵌套在類的內部,這意味着它們通常具有縮進級別。

According to this answer,Vim有內建的[m]m映射,以導航方法。

     *]m* 
]m   Go to [count] next start of a method (for Java or 
      similar structured language). When not before the 
      start of a method, jump to the start or end of the 
      class. When no '{' is found after the cursor, this is 
      an error. |exclusive| motion. 

所以,如果你想使用[[]]用於導航的方法,你可以在你的~/.ideavimrc重新映射這些。

nnoremap [[ [m 
nnoremap ]] ]m 
+0

這就是爲什麼我愛vim。我認爲自己是一個有經驗的用戶,但我不知道這個''m'和'[m'方法。奇蹟般有效。謝謝 – lewiatan

相關問題