2014-09-20 45 views
2

我對Vim很新,但現在已經用了一兩個月。我正在使用幾個不同的插件,但現在都陷入了一個問題......Vim縮進(Python編程)

每當我用Python編碼時,我喜歡有:set autoindent,所以我不必使所有的縮進,每當我做一個新的線。但! ...如果我舉個例子,寫這樣的代碼:在Vim中

def foo(self): 
    pass 

    def __init__(self): 
     var = 42 

並點擊「輸入」「42」後,那麼我自動縮進會自動將兩個薄片缺口,這是我自動轉換爲6空間(我不記得是否是:set tabstop=3或者它是:set shiftwidth=3這樣做)。但是,讓我們說,我很遺憾新的一行,並想刪除它。我習慣於其他的IDE(比如Eclipse或Dreamweaver,我只能退格一次,這會刪除新行,並將我帶到上面的行末)。

我知道,我可以只按' dd',然後刪除該行...但是當我這樣做時,我處於'插入模式',所以爲了做到這一點,我必須退出插入模式,按'dd',然後輸入重新插入模式,這在我看來,就是這樣一個簡單的操作相當麻煩。

哦神聖的Vim-大師在天空!聽我的祈禱,幫助我提高我的Vim的力學!

回答

1

撤消過早進入機是一個簡單的任務,你不應該被迫回落到了正常狀態。什麼是falsetru建議的作品,但我更喜歡做<c-w><c-w>('ww'控制ctrl),它代表刪除鍵入的最後一個單詞(光標左側的單詞)。你可能地圖<c-w><c-w><c-w>空行的功能,但坦率地說,我不認爲這是值得的,只是爲了避免簡單的雙擊。

5

這裏的我使用的選項:

  • 按Ctrl + d:迪登一個電平(不刪除線的含量)
  • 0鍵,Ctrl + d:迪登所有(不刪除線的含量)
  • Ctrl + U鍵:刪除所有字符之前(離開)光標,並將光標移動到行的開頭。

嘗試:help i_ctrl-d/:help i_0_ctrl-d/:help i_ctrl-u

+0

太棒了!現在我只用兩個動作即可達到我想要的效果,不管如果縮進的數量(通過鍵入CTRL-U +退格鍵)。理想情況下,我希望能夠在我的.vimrc文件中插入一些內容,這會自動刪除光標左側的所有空格和新行,如果行爲空白的話。我會留下這個問題,看看是否有人可以提出 - 但如果沒有,那麼我會將您的答案標記爲解決方案。 – Zeth 2014-09-20 11:59:22

+0

@Zeth,Ctrl + U,Ctrl + U也可以。 – falsetru 2014-09-21 04:04:34

1

您可以使用插入正常模式,該模式會讓您進入正常模式以執行一個命令,並立即返回插入模式。

  • C-o(插入正常)
  • DD或d $
  • 如果你想重新使用線

...

  • C-r「(從默認的寄存器粘貼)

你可以使用insert-normal大量的o事情也是如此。