Vim代碼縮進設置

此頁由 Linux Wiki用戶Chenxing 於 2012年12月18日 (星期二) 08:02 的最後更改。 在lzh的工作基礎上。

出自Linux Wiki

提示:此文已超过 11 年(4146 天)未更新,如发现内容过时或有误,欢迎改进:)

目錄

編程時代碼縮進是相當必要的,使用Vim處理代碼縮進並不困難,只要了解一些參數就可靈活運用。[1]

常用設置

縮進設置最常用的是:

:filetype indent on

它將開啟針對文件具體類型的縮進。

下面的選項需要在命令模式下用set設置的選項的含義。使用方法如:

set ci       # 开启cindent
set noet     # 关闭expandtab
set sw=4     # shiftwidth=4
與自動縮進相關的變量表
變量名 縮寫 含義
(no)autoindent ai 自動縮進,即為新行自動添加與當前行同等的縮進。
(no)cindent ci 類似C語言程序的縮進
(no)smartindent si 基於autoindent的一些改進


與TAB相關的變量表[2]
變量名 縮寫 含義
tabstop=X ts 編輯時一個TAB字符佔多少個空格的位置。
shiftwidth=X sw 使用每層縮進的空格數。
(no)expandtab (no)et 是否將輸入的TAB自動展開成空格。開啟後要輸入TAB,需要Ctrl-V<TAB>
softtabstop=X sts 方便在開啟了et後使用退格(backspace)鍵,每次退格將刪除X個空格
(no)smarttab (no)sta 開啟時,在行首按TAB將加入sw個空格,否則加入ts個空格。

設置樣例

靈活使用上面的選項,就可以很好地調整縮進設置。

可以將下述設置加入到~/.vimrc中:

set sw=4
set ts=4
 
filetype indent on
autocmd FileType python setlocal et sta sw=4 sts=4

前面兩行將shiftwidth和tabstop都設為4。第三行開啟自動的縮進檢測。最後一行則根據Python語言的建議(將tab展成四個空格)進行了專門設置。

Hint.gif
提示:
setlocal使set的效果只對當前buffer有效,不會影響到打開的其它文件。
Hint.gif
提示:
有關Python編程的更多設置,見配置基於Vim的Python編程環境

在編程中使用縮進功能

有了上面的設置,還可以在編程時利用快捷鍵調整縮進,參見VI(VIM)編寫程序技巧#縮進

參考資料

  1. Vim幫助文檔
  2. http://www.vex.net/~x/python_and_vim.html

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
简体繁体转换