2012-08-24 32 views
3

我發現了一個名爲vim-autoclose的Vim自動配對插件。它和其他IDE一樣很好用。例如,當您鍵入{時,它會顯示{|}(「|」代表遊標)。然後,如果按「確定」鍵,{|}變爲:如何在Vim中使用自動關閉對在Vim中自動插入新行和縮進

{ 

     | 

} 

這是我需要的,但不幸的是它禁用我的中國輸入法應用程序,所以我不得不放棄它。

我嘗試了其他autoclose插件,但沒有一個可以用這種方式自動關閉。我發現了一種像上面那樣使自動關閉工作的方法。

:autocmd FileType c,java,javascript ino <buffer> { <C-G>u{<CR>}<Esc>O<C-T> 

但它有一個shiftwidth的問題。例如,如果我:set shiftwidth=4{}之間的新行將有一個8空格縮進。新行中的縮進使得shiftwidth變寬。

我的問題是如何將新行的縮進設置爲相同的空格縮進shiftwidth?

+0

感謝您的VIM,自動關閉正確的英語水平 –

+0

錯誤報告:https://github.com/Townk/vim-autoclose/issues/38 –

回答

0
inoremap { {<CR><CR>}<C-o>k<C-o>S 

似乎工作。

+0

不yeah.It不能插入新行的自動縮進 –

+0

我我編輯了我的答案。我應該使用'S'而不是''。 – romainl

+0

你也試過[delimitmate](http://www.vim.org/scripts/script.php?script_id=2754)嗎? – romainl

0

中的vimrc

使用設置set aiset smartindent後,以下

inoremap {<CR> {<CR>}<ESC>O

應該工作。最後一個字符是capital O,而不是零。