2010-01-13 47 views
58

每次我在CSS中添加一個選擇,我按Enter來定義它結束了這樣的特性:如何更改Vim中的標籤大小?

#selector { 
     property: value; 
} 

(8空間選項卡)

如何配置Vim去它是這樣的:

#selector { 
    property: value; 
} 

(4-空間標籤)

+2

你想要一個4個空格寬度的選項卡嗎?四個空間?或者1個空間寬度的四個選項卡?他們是不同的東西,你不清楚。在任何情況下,從閱讀開始:他ts,:他sw,和:他展開 – abeyer 2010-01-13 05:34:09

回答

51

擴展在zoul的回答是:

如果你想安裝的Vim編輯特定的文件類型時要使用特定的設置,你需要使用自動命令:

autocmd Filetype css setlocal tabstop=4 

這將讓這個選項卡顯示爲4個空格。設置expandtab會導致Vim在按Tab時實際插入空格(它們的數量由tabstop控制);您可能需要使用softtabstop來使退格工作正常(即,在使用製表符時會減少縮進,而不是一次總是刪除一個字符)。

要充分受過教育的決定至於如何設置的東西,你就需要在tabstopshiftwidthsofttabstopexpandtab閱讀Vim的文檔。最有趣的一點是根據expandtab:help 'expandtab)發現:

Vim裏有使用標籤主要有四種方式:

  1. 始終保持 '製表位' 8,設置成了 'softtabstop' 和' shiftwidth'爲4(或3或任何你喜歡的)並使用'noexpandtab'。然後,Vim將使用標籤和空格的組合,但是打字和每4(或3)個字符就會出現一個標籤。

  2. 將'tabstop'和'shiftwidth'設置爲任何你喜歡的,並使用'expandtab'。這樣你總會插入空格。當「tabstop」更改時,格式永遠不會混亂。

  3. 將'tabstop'和'shiftwidth'設置爲任何你喜歡的,並使用| modeline |在再次編輯文件時設置這些值。僅在使用Vim編輯文件時纔有效。

  4. 總是將'tabstop'和'shiftwidth'設置爲相同的值,'noexpandtab'。這應該適用於任何人們使用的tabstop設置(僅適用於初始縮進)。如果你這樣做,可能會很高興在第一個非空白插入後作爲空格。否則當「tabstop」更改時,對齊的註釋將會出錯。

+0

另外,不要過分擔心可能稍後改變主意......請參閱':help retab'(檢查!變體)。 – 2010-01-13 06:11:27

82
:set tabstop=4 
:set shiftwidth=4 
:set expandtab 

這將插入四個空格而不是製表符。空間稍微「穩定」一點,這意味着在空格中縮進的文本在瀏覽器和任何其他應用程序中將顯示相同。

+21

是的,但選項卡是語義的(每個選項卡表示1層縮進),而空格純粹是表示形式。或者換句話說,使用選項卡可以讓其他人查看您的代碼,以顯示其寬鬆的範圍,而空格不允許這樣做。 – 2010-01-13 05:54:58

+1

請注意,如果您偏好**'>'**和**'<'**將文本移動到與**標籤** - 鍵相同的距離,您可以簡單地在您的文件中設置shiftwidth = 0 vimrc並永遠忘記它,因爲這告訴vim你總是希望它匹配'tabstop'。 – SeldomNeedy 2017-04-26 01:22:16

3

如果您需要經常改變大小,你不想把它綁定到特定的文件類型,你可以對你的.vimrc文件中預定義的命令來快速切換的喜好:

nmap <leader>t :set expandtab tabstop=4 shiftwidth=4 softtabstop=4<CR> 
nmap <leader>m :set expandtab tabstop=2 shiftwidth=2 softtabstop=2<CR> 

這將兩組不同的尺寸映射到鍵\ t和\ m。你可以重新綁定到你想要的任何鍵。

33

要進行更改爲一個會話,使用這個命令:

:set tabstop=4 

要進行更改永久,添加到~/.vimrc~/.vim/vimrc

set tabstop=4 

這會影響到所有的文件,而不是隻是CSS。在Michał's answer規定

autocmd Filetype css setlocal tabstop=4 

:隻影響css文件。

+1

如果您希望製表符功能爲四個空格,則需要將@Zoul答案中的其他行添加到.vimrc中;即在.vimrc中添加'set shiftwidth = 4'和'set expandtab'。 – qartal 2017-03-04 22:50:25

+2

問題是「如何更改Vim中的標籤大小?」 – Keith 2017-04-25 02:36:09

+1

最佳答案+1 – 2018-02-23 00:09:21

9

此頁面上的幾個答案是對所述問題的「單次使用」修復。這意味着,下次用vim打開文檔時,之前的選項卡設置將會返回。

如果有人有興趣永久更改選項設置:

  • 查找/打開你的.vimrc - instructions here
  • 加上下面幾行:(more info here

    set tabstop=4 
    set shiftwidth=4 
    set expandtab 
    
  • 然後保存文件和測試

相關問題