2015-10-19 108 views
0

到目前爲止,我總是使用xemacs進行源代碼編輯(C++),但出於多種原因,我想切換到或至少嘗試vim。其中一件非常基本的事情就是縮進,我對xemacs行爲非常滿意。但是我還沒有找到一個解決方案,在vim中有這種行爲。始終在vim中縮進

我在說的基本上是在行的任何位置按Tab的能力,並且該行將始終縮進到正確的級別。這意味着:

1)按下Tab多次將縮進多次,而不是文本將(重新)對準於縮進級別適於按壓Tab例如當前代碼

2)在一個字的中間將不是插入空格或標籤之間的這個詞,而是縮進整行

是否有可能用vim實現這一點?

目前我有:

filetype indent plugin on 
set cident 
set autoindent 
set shiftwidth=3 
set softtabstop=3 
set expandtab 
+0

我不知道是否可以實現你想要的,但是你可以在插入模式下的任何地方使用' -t'和' -d'來改變當前行的縮進級別。 – cmaster

+2

試圖將vi轉換成Emacs會讓你痛苦。他們每個人都有不同的範例和優勢。這個問題讓我想起一個程序員,我曾經知道是誰編寫了一組宏來使C編譯器解析BASIC語法。廣場釘,圓孔。 – Sammy

+0

我認爲我的問題並不完全與emacs緊密相關,而是我認爲優於任何其他風格的縮進行爲。例如。在XCode中,你可以有相同的行爲,所以這不僅適用於emacs/xemacs。 @cmaster:不幸的是'C-t/C-d'不是我正在尋找的。 – user826955

回答

2

在正常模式下,按下==應修復當前行的縮進。

您可以修復的幾行被縮進:

  • 選擇它們,使用運動,=}
  • 使用文本對象,=ip按壓=

在插入模式下,您可以使用<C-o>==修復當前行的縮進,但插入點也會移動。無論如何,你不應該在插入模式下做這種事情。

+0

'=='基本上做我什麼。我想要一些其他的關鍵,但基本上就是這樣。 它可以「只」在正常模式下工作,畢竟我必須在vim中解決不同的模式並習慣它。 – user826955