2010-04-06 51 views

回答

5

={motion}

:h =

P.S.如果vim可用,則不應使用vi。

+0

運動是什麼? – Xofo 2010-04-06 18:57:43

+1

':h {動作}'。請閱讀vim的基礎知識。 – wRAR 2010-04-06 19:00:09

+7

我會閱讀基礎知識......但你能解釋這個命令嗎? x – Xofo 2010-04-06 19:04:13

4

如果手動調節縮進我將在第一行或最後一行打開一個可視塊與V我想重新縮進,移動到含有嵌段支架,後藤另一支架與%然後用>或移位行<

如果縮進量大量減少,我會將所有剩下的東西都改爲<,並用.重複它,然後重新縮進所有內容。

另一種方案是在Your problem with Vim is that you don't grok vi.描述使用Unix fmt命令,{!}fmt

+1

請注意,可視模式在vi中不可用。 – wRAR 2010-04-06 19:14:57

43

這些命令在VIM我的回答工作。大多數認爲他們使用vi的人都在使用vim。要知道你的'vi'是否真的是'vim',打開vi並輸入:version - 如果它是vim,它會這樣說。否則,您可能只會看到沒有程序名稱的版本號。此外,當您打開VIM首次你通常會看到某種寫着「VIM - 六提高」的閃屏......

自動縮進

要關閉自動縮進上,確保vim知道你正在編輯的文件類型(它通常會自動從文件擴展名中檢測到這種情況,但是可能不會用某些文件類型來判斷它)。您可以使用語法高亮顯示的菜單來告訴它文件類型。那麼,這樣做:

:filetype indent on 

您可以

:filetype indent off 

自動調整/修正壓痕

一般來說,= {動作}將調整禁用自動縮進代碼縮進級別。

  • ==對準當前行
  • =i{內部塊對齊
  • =%對準光標
  • =14j14==對準下匹配括號/托架下一個14線
  • =G對準到文件
  • vG=同樣的事情的端部,
  • vjjj=對準四行(使用視覺模式對齊到 文件的末尾(但使用視覺模式) )

手冊壓痕

如果Vim不是猜測正確的縮進級別,有兩種方法來改變它:

  • 如果你在正常模式(這裏的一切是一個命令),做<<左移線,或>>右移一個選項卡。您可以使用上面顯示的相同移動命令(例如,>i{縮進當前的內部代碼塊)以多行執行此操作。
  • 如果你在插入模式,可以進一步縮進線(不移動光標)通過做Ctrl-T鍵,或取消縮進一個翼片與按Ctrl-d

對齊等號,等

如果要對齊等號在聲明列表,你應該考慮使用這個Vim腳本:http://www.vim.org/scripts/script.php?script_id=294

調整縮進/標籤尺寸

如果你想讓Vim用空格代替標籤,當它縮進,運行此命令(或考慮將它添加到你的vimrc文件)

:set expandtab 

要設置多少空間等於一個標籤,我通常這樣做:

:set expandtab softtabstop=3 tabstop=3 shiftwidth=3 
  • 製表位 - 爲標籤計數多少列(影響現有的製表符顯示)
  • shiftwidth - 用< <和>>等命令控制縮進大小。
  • softtabstop - 多大的空間,當你按下tab鍵
  • expandtab插入 - 擴展選項卡鍵位

但是,如果你有不同數量的標籤很多,您還可以使用此功能與按鍵綁定:

function! Ktabs(tabsize) 
    execute "set softtabstop=" . a:tabsize . " tabstop=" . a:tabsize . " expandtab shiftwidth=" . a:tabsize 
    "set softtabstop=a:tabsize tabstop=a:tabsize expandtab shiftwidth=a:tabsize 
endfunction 
noremap <leader><Tab> :call Ktabs(3)<Left> 

如果您正在編輯一個文件,製表和空格的混合,你可能要設置選項卡大小後,使用此命令:

:retab 
+3

此外,如果您希望更改默認縮進級別,您可以:設置shiftwidth = n和:set tabstop = n其中n是所需的空間級別。 – SplittingField 2011-02-08 19:08:44

+0

@SplittingField,好點。我傾向於:設置expandtab以便插入空格而不是文字標籤,但是如果您這樣做,那麼您可能還需要:set softtabstop = n – 2012-11-08 23:11:21

相關問題