Vim 縮進(jìn)設(shè)置

Vim 縮進(jìn)總結(jié)

在linux上編輯文件時,有時候從別的地方copy過來的代碼要縮進(jìn),如果一行一行的搞,忒麻煩耗時了,下面是自己使用中不同模式下的一些縮進(jìn)快捷方法:

一、 normal 模式下

>> 按2次> 當(dāng)前行增加縮進(jìn) 
<< 按2次< 當(dāng)前行減少縮進(jìn)

或者
:10,100>
第10行至第100行縮進(jìn)
:20,80<
第20行至第80行反縮進(jìn)

二、 Visual 模式下

normal 模式下按v 即進(jìn)入VISUAL模式,可選擇多行

選擇好需要縮進(jìn)的行后,按一次大于號’>’縮進(jìn)一次,按’6>’縮進(jìn)六次,按’<’回縮

三、INSERT 模式下

CTRL+SHIFT+T:當(dāng)前行增加縮進(jìn)
CTRL+SHIFT+D:當(dāng)前行減少縮進(jìn)

四、 縮進(jìn)相關(guān)的參數(shù)

默認(rèn)vim的縮進(jìn)寬度為8個空格

與縮進(jìn)相關(guān)的參數(shù)有shiftwidth、tabstop、softtabstop、expandtab。
shiftwidth reindent 操作(<<和>>)時縮進(jìn)的列數(shù)(這里的一列相當(dāng)于一個空格)
tabstop 一個tab鍵所占的列數(shù),linux 內(nèi)核代碼建議每個tab占用8列
softtabstop 敲入tab鍵時實際占有的列數(shù)。
expandtab 輸入tab時自動將其轉(zhuǎn)化為空格
softtabstop大于tabstop時,且沒有設(shè)置expandtab時, 例如:softtabstop=12,tabstop=8,
那么當(dāng)輸入一個tab時(softtabstop:實際占用的是12列),最后會變成一個tab(tabstop)加4個空格(8+4),
輸入兩個tab(2個softtabstop:24列)會變成3個tab(tabstop),也就是說vim或用tabstop+空格來表示,最終你能看到的縮進(jìn)的列數(shù)一定是softtabstop*按的tab鍵次數(shù)。(ps::set
list 可以查看tab符號)
softtabstop小于tabstop且沒有設(shè)置expandtab時,如果softtabstop=4,tabstop=8,輸入一個tab(softtabstop),會變成4個空格(因為不夠用一個tabstop表示),輸入兩個tab會變成一個tab(8列)。 如果softtabstop等于tabstop,而且expandtab沒有設(shè)置,softtabstop與tabstop就沒什么區(qū)別了。
如果設(shè)置的expandtab,輸入一個tab,將被展開成softtabstop值個空格,如果softtabstop=4,那么一個tab就會被替換成4個空格。

  1. 設(shè)置expandtab:
    :set expandtab
    取消expandtab:
    :set noexpandtab
    自動縮進(jìn)
    :set autoindent 回車后自動縮進(jìn)
    通常Java的配置方式是:
    :set softtabstop=4 shiftwidth=4 expandtab
    Linux kernel的配置方式:
    :set tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab

  2. 查看參數(shù)值:
    :set $arg(這里的arg是變量,值就是上面的那些參數(shù)),比如:set softtabstop

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容