2015-04-17 80 views
0

問題的標題可能與此處的某些問題類似。vimrc中的Vim自動關閉括號配置

但是,我所要求的是具體的和不同的: 我已經搜索了一些關於自動關閉括號的.vimrc文件,因爲我不想安裝插件。

到目前爲止,這種聯繫似乎適合最好: http://vim.wikia.com/wiki/VimTip153

我試過低於這個映射,但它不是我的工作VIM。它似乎只適用於Perl。任何人都可以讓我知道需要配置什麼才能使映射在任何vim環境中工作,例如普通文本?

=============下面是配置================ 這個映射不工作在我的vim編輯器中。我想念一些包嗎?

inoremap { {<CR><BS>}<Esc>ko 

在配合使用我的自動縮進設置:

set expandtab 
set shiftwidth=4 
set smarttab 
set autoindent 
set smartindent 

這裏是我想:

{ 
<cursor here ready for coding> 
} 
+1

你在vimrc中有'filetype plugin indent on'嗎? – FDinoff

+0

你忘了告訴我們它到底做了什麼。 – romainl

+0

映射之後是否有任何尾隨空格?你有沒有在這個'inoremap'這行中加入任何評論?空白和評論都會搞砸了。 你也沒有解釋什麼是不工作?縮進是錯誤的,什麼也沒有發生,光標沒有準備好,但移動到其他地方等 順便說一句,我用'vim -u NONE --noplugin'運行了vanilla vim並輸入了所有以'set nocompatible'開頭的設置,這個映射似乎工作。所以請更具體地說明它的行爲如何不正確。 – qiubix

回答

0

這是我用:

inoremap {} <CR>{<CR>}<Up><CR> 

輸入{}之後,它將它們放在它們自己的l上分級表用光標在空行其間,像這樣:

void something(){}_ 

變得

void something() 
{ 
    _ 
} 

_表示光標位置)

這假定可以在插入模式使用光標鍵。如果沒有,你可以使用下面的映射:

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

我建議映射{}{因爲這使得它更容易在你真正需要的符號本身的情況下使用{。另外,如果您想直接輸入{},則可以在輸入後一個字符之間暫停一會兒。

+0

好的!謝謝! – day

相關問題