oeasy教您玩轉vim - 21 - 狀態(tài)橫條
狀態(tài)橫條
回憶上節(jié)課內容??
我們上次研究了標尺
標尺
開啟
se ru
關閉
se noru
行號
開啟
se nu
關閉
se nonu
命令位置
開啟
se showcmd
關閉
se noshowcmd
跳轉
用29G跳轉行號
用19|跳轉列號
用29%跳到整個文件 29% 的位置
準備環(huán)境
# 下載素材git clone http://github.com/overmind1980/vimtutorial.git#進入目錄cd vimtutorial#還是從最簡單的vim開始設置起vi -u NONE oeasy.java
設置光標行
來看一個開關option
光標行
cursorline
光標
cursor
行
line
:set cursorline

h 'cursorline'
給
cursorline
加了單引號說明
cursorline
是一個屬性option

設置光標列
有行就有列
光標行
cursorcolumn
光標
cursor
行
column
:set cursorcolumn

h 'cursorcolumn'
給
cursorcolumn
加了單引號說明
cursorcolumn
是一個屬性option

改變底下的狀態(tài)橫條
有了行列位置
再配合標尺ruler
光標位置就很明確了
在
:h ruler
的時候偶然發(fā)現了一個新天地
statusline
statusline
意思是狀態(tài)橫條在倒數第 2 行
statusline
也是一個可以set
的東西我們來查看一下手冊
:h statusline
好像可以直接給
statusline
賦值我直接賦一個
oeasy
:set statusline=oeasy
然后還需要設置
laststatus
設置 laststatus = 0,不顯式狀態(tài)行
設置 laststatus = 1,僅當窗口多于一個時,顯示狀態(tài)行
設置 laststatus = 2,總是顯式狀態(tài)行
:set laststatus=2
statusline上可以放什么呢?
:h 'statusline'

顯示屬性
除了字符串常量之外是否能顯示一些別的屬性呢?
繼續(xù)翻幫助手冊
找到相關的
items
各種
items
有不同的屬性(數字、文本、標志)每個
item
對應一個字母這個字母需要通過
%
來進行轉義F
對應文件名:set statusline=[oeasy]%F
此時,狀態(tài)條就顯示
[oeasy]當前文件名

標志屬性
繼續(xù)翻看屬性
Flag
是標志位m
是一個關于是否已經修改的標志位把
%m
追加進入statusline
:set statusline=[oeasy]%F%m
修改文件后會顯示未保存的
[+]
觀察效果
保存后
[+]
會消失暗中觀察...

數值屬性
查到狀態(tài)欄細節(jié)
N
代表Number
代表item
是一個數值類型行號
l
、列號c
、百分比p
都是數值類型用
[
、]
把數值型變量分開%%
可以把%
轉義顯示出來:set statusline=[oeasy]%F%m[%l,%c]%p%%

狀態(tài)欄數值還可以隨著光標變化??
控制寬度

可以用格式來控制寬度
%-0{MinWidth}.{MaxWidth}{item}
%-040.40F
就是用40
的固定寬度顯示F
如果超過范圍的話就會把前面部分隱藏
:set statusline=[oeasy]%-040.40F%m[%l,%c]%p%%
一行總共
80
字符后面的部分怎么辦?
成組

我們可以把行和列組成一個
items group
用
(
、)
來封裝這個組標尺組的寬度固定為10
用
%
對(
、)
進行轉義:set statusline=%([%l,%c]%)
這樣就可以統(tǒng)一設置這個標尺組的寬度
:set statusline=%-010.10([%l,%c]%)
同理文件名和文件是否修改也可以編成一組
:set statusline=%(%F%m%)
最終整合

最終整合總共分為三部分
文件
%-040.40(%F%m%)
標尺
%-030.30([%l,%c]%)
比例
%p%%
關于狀態(tài)橫條還有一個總開關
:set laststatus=0
關閉:set laststatus=2
開啟
總結
我們這次了解到了狀態(tài)橫條
通過轉義表示
item
控制
item
寬度的方法將
item
成組的方法還有一個總開關
laststatus
但是每次都要寫很長的一段話來配置很麻煩啊
我們能否寫一個配置文件,讓
vim
每次自動配置好呢???下次再說 *