題 如何在vim的狀態欄中顯示當前列?


我想在狀態欄中顯示當前列,這在許多其他文本編輯器中很常見。例如。很高興知道你是否在80或以上。

如何在狀態欄中顯示當前列?


159
2017-12-06 20:35


起源


如果要顯示當前光標列,請鍵入:echo col('。')。 - SibiCoder


答案:


嘗試設置'標尺'選項是您正在尋找的。在我右下方的計算機上顯示了我有光標的行和列。

:set ruler

編輯評論

在vim的幫助下(命令 :help ruler):

如果顯示的字符數與數量不同   文本中的字節(例如,對於TAB或多字節字符),兩者都是   顯示文本列(字節編號)和屏幕列,   用短劃線分開。

您可以嘗試更改它 rulerformat 選項,比如 :set rulerformat=%l,%v


191
2017-12-06 20:43



是的,有點。但這顯示出一個奇怪的價值,例如 23,62-68 23似乎是這條線。我應該怎麼解釋 62-68 對於專欄? - Jonas
62將標籤計為一個字符,68計算擴展標籤 - RedGrittyBrick
從命令':help ruler':“如果顯示的字符數與文本中的字節數不同(例如,對於TAB或多字節字符),則文本列(字節編號)和屏幕列顯示,用短劃線分隔。“您可以嘗試使用'rulerformat'選項更改它,例如':set rulerformat =%l,%v' - Birei
ruler 不適用於Vim中的拆分窗口。 - Mihai
@Jonas不僅像RedGrittyBrick所說的選項卡,還有字符與字節。這在UTF-8文件中非常明顯,其中單字符字形具有多字節代碼點。例如,拉丁語eñe(其上帶有波形符號,發音為EN-yea)是單個字符字形,但需要兩個字節來表示代碼點(\ xC3B1),三分之一(1/3)是單個字符字形使用三字節代碼點(\ xE28593)。 - Luv2code


看到 :help statusline 有很多選擇。

我有這個 ~/.vimrc 在一堆其他指令之間:

set statusline+=col:\ %c,

哪個輸出

col: 64

在我的狀態欄中。

我沒有 set ruler


26
2017-12-06 21:28



這對我不起作用。我可能需要更多設置。 - Jonas
喬納斯,你可能不得不使用 set laststatus=2 在你的 .vimrc 始終顯示狀態行。 (0 - >從不顯示狀態行,1 - >僅當至少有兩個窗口時,2 - >始終顯示狀態行)。 - pabuisson
我使用以下內容在此之前提供空間以及狀態行上的前一個東西:set statusline + = \ col:\%c, - David Baucum


或者,保持“標尺”未設置,性能提升,然後按 CTRL-G 當你想要查看當前列時。


17
2017-11-09 20:35



點擊Ctrl-Anything聽起來不像是性能提升。我們正在輸入字符。沒有人的手指和眼睛飛得足夠快,看不出這種性能差異。 - macetw


另一種方法是執行'g Ctrl-G',它以五種方式打印光標的當前位置:Column,Line,Word,Character和Byte。 (從 http://vimdoc.sourceforge.net/htmldoc/editing.html#g_CTRL-G


17
2018-03-05 10:51



這個解決方案有一些整潔,區分Column和VisibleColumn。不可打印的字符顯示為2列,但應計為1。如果是不可打印的字符,則輸出如下所示: RealColumn-VisibleColumn, Line, Word, Character and Byte。 - mxlian


我會使用set ruler進行折舊,因為我認為它與statusline選項不兼容,例如如果設置狀態行以顯示與設置標尺組合的完整文件路徑

set statusline+=%F

set ruler

然後它不顯示列號,而只顯示狀態欄中的完整文件路徑。 但是,如果您將以下內容放在.vimrc中

set statusline+=%F\ %l\:%c

它會正確顯示所有內容,即

[Filepath / filename] [linenumber]:[列號]


9
2018-01-17 13:01





對於正在尋找這個答案並且不習慣使用VIm的其他人,我個人發現的最簡單的答案是將此行添加到主目錄中.vimrc文件的末尾:

set ruler


2
2017-08-21 04:46