VIM 設(shè)置縮進(jìn)
VIM 設(shè)置縮進(jìn)
- tabstop
- 只修改 Tab 字符的顯示寬度
- 不修改按 Tab 鍵的行為
- softtabstop
- 修改按 Tab 鍵的行為
- 不修改 Tab 字符的顯示寬度
- 具體行為跟 tabstop 選項(xiàng)值有關(guān)
- expandtab
- 把插入的 Tab 字符替換成特定數(shù)目的空格
- 具體空格數(shù)目跟 tabstop 選項(xiàng)值有關(guān)
TAB 替換為空格
set ts=4
set expandtab
# ! 表示處理所有 TAB 不然只處理行首
%retab!
# 轉(zhuǎn)換后,需要再次輸入 TAB 需要:Ctrl+V TAB
空格替換為 TAB
set ts=4
set noexpandtab
%retab!
展示字符
set list
set listchars=tab:>~,space:.
建議配置
" 自動縮進(jìn)時(shí),縮進(jìn)長度為4
set shiftwidth=4
" 輸入Tab字符時(shí),自動替換成空格
set expandtab
" softtabstop的值為負(fù)數(shù),會使用shiftwidth的值,兩者保持一致,方便統(tǒng)一縮進(jìn).
set softtabstop=-1
- softtabstop=-1,即跟隨 shiftwidth 設(shè)置
- 該配置統(tǒng)一了Tab和Backspace的行為,都是處理 4 個(gè)空格
demo
僅softtabstop=4
set softtabstop=4
此時(shí) tabstop 未修改:tabstop=8
- 第一次點(diǎn)擊 Tab,輸入 4 個(gè)空格
- 第二次點(diǎn)擊 Tab,將上次輸入的空格,一并轉(zhuǎn)為 Tab
- 第一次點(diǎn)擊 Backspace,刪除 Tab,留下 4 個(gè)空格
- 第二次點(diǎn)擊 Backspace,刪除剩下 4 個(gè)空格
At
當(dāng) softtabstop < tabstop,第一次按Tab,會插入 softtabstop 選項(xiàng)值相同數(shù)量的空格,當(dāng)插入的空格個(gè)數(shù)達(dá)到 tabstop 指定的寬度時(shí),會將這些空格轉(zhuǎn)換成一個(gè) Tab。
Backspace同上
softtabstop=4 tabstop=4
# 不建議 (其他軟件上查看文件可能會出現(xiàn)排版異常)
set softtabstop=4
set tabstop=4
點(diǎn)擊Tab,插入一個(gè) Tab,不在插入空格
expandtab
set expandtab
- 設(shè)置后,會將一個(gè) Tab 替換成 tabstop 選項(xiàng)值相同數(shù)量的空格
- 比如:tabstop=8,點(diǎn)擊Tab,插入 8 個(gè)空格
At
expandtab 只改變新插入的 Tab
不改變文件已有的 Tab
參考鏈接:
https://www.jianshu.com/p/a5925aed4373
https://segmentfault.com/a/1190000021133524
C文件 vim配置
在命令模式下逐個(gè)配置,或~/.vimrc配置文件
# 指定文件內(nèi)容
set filetype=c
# 開啟行號
set number
# 縮寫
set nu
# 設(shè)置自動縮進(jìn)
set shiftwidth=4
# 縮寫
set ts=4
# 設(shè)置縮進(jìn)展示的寬度
set tabstop=4
# tab轉(zhuǎn)空格
set expandtab
浙公網(wǎng)安備 33010602011771號