oeasy教您玩轉vim - 26 - 縮進設置
縮進設置
回憶上節(jié)課內容??
這次了解了顏色的細節(jié)
設置 256 色模式
:set t_Co=256
然后確定了具體的各種顏色
還可以生成網頁
:TOhtml
還有什么好玩的么???

縮進設置

在正常模式下
使用
<<
可以向前縮進使用
>>
可以向后縮進=可以讓當前行自動縮進
使用gg=G
可以從頭自動縮進到結尾
這超爽??
顯示縮進
我們編程的時候會遇到縮進
這縮進究竟是
空格
呢?還是tab
呢?要把
空格
和tab
區(qū)別開來:set list
使得列表生效tab會被顯示為
^I
行尾會顯示
$

:set nolist
使得列表失效tab會被顯示為空格縮進

但是好像縮進看起來只有兩格了
與實際不符
能修改么?
定制 tab 顯示
把特殊字符作為
listchars
組顯示出來:set listchars
設置
listchars
:set listchars=eol:$,tab:>-,space:_
tab
對應>-
>
是開頭-
在后面補位

space
對應_
eol
對應$
:h listchars
可以查看相關手冊
空格顏色
:hi SpecialKey ctermfg=DarkRed guifg=grey70
設置
listchars
相應的顏色設置得特殊一點

最終效果

建議統(tǒng)一能用 tab 的時候就用 tab
減小文件容量

基礎
shiftwidth值是整個縮進的基礎
:set shiftwidth=4
shiftwidth
是一個基礎的值,對應按下
>>
縮進的寬度按下tab縮進的寬度
退格或者刪除
\t
時縮進的寬度一般
tabstop
、softtabstop
都與他相同一般都是 4
如果
shiftwidth
是 0 的話就按照
tabstop
來
解釋 tab 寬度
tabstop
是讀取文件
時用到的讀到
\t
字符時解釋他對應多少個空格的寬度
一般都是 4 個空格

softtabstop 處理空格的數(shù)量
如果
softtabstop
等于 0特性取消,一切按照
tabstop
來如果
tabstop=4
、softtabstop=8
可以試試,能看出來
1 次刪除空格 8 個
看起來像刪了兩個 tab
一次插入 8 個位置
看起來像插了兩個 tab
按下tab時
要刪除 tab 時
當他是負數(shù)的時候
shiftwidth
起作用所以說
shiftwidth
是基礎

擴展 tab
:set expandtab
可以把輸入的
tab
變成空格
設置好之后,在正常模式下
>>
或者在插入模式下tab的時候
都看不到
>---
,而是直接變成空格_
反之
:set noexpandtab
之后插入的
tab
都還是>---
:h expandtab
可以查看相關手冊expandtab
可以簡寫為et

那已經存在的tab怎么辦呢?
強制拓展
:retab!
把已經存在的 tab 強制擴展成為空格

轉過去之后
沒有轉回來的命令
慎重吧
我覺得tab挺好的
回車之后自動縮進
:set autoindent
可以簡寫為
:set ai
添加與上一行一致的縮進
取消為
:se noai
:set smartindent
簡寫為
:se si
在
autoindent
的基礎上根據(jù){
、}
來調整本行縮進取消為
:se nosi
需要保證
:se nopaste
:set cindent
根據(jù)類似于 c、java 的代碼動態(tài)調節(jié)縮進
見到
if
之類的可以自動縮進取消為
:set nocindent

整體設定為
:set noexpandtab
:set shiftwidth = 4
:set tabstop =4
:set softtabstop=4
:set autoindent
簡寫為
:set noet sw=4 ts=4 sts=4 ai
這都個人喜好
沒有絕對規(guī)定
總結
這次了解了縮進的各種方式
正常模式下用
<<
縮進插入模式下用
tab
縮進有關于縮進對應空格數(shù)的參數(shù)
expandtab
shiftwidth
tabstop
softtabstop
autoindent
不同的文件類型可以對應不同的縮進嗎????
python、java縮進4個
html、css可以縮進2個
下次再說 *