vimのステータスバーに現在の列を表示する方法は?


188

他の多くのテキストエディターでよくあるように、ステータスバーに現在の列を表示したいと思います。たとえば、80桁以上かどうかを知るのは良いことです。

ステータスバーに現在の列を表示する方法は?


カーソルの現在の列を表示する場合は、:echo col( '。')と入力します。
SibiCoder

回答:


219

「ルーラー」オプションの設定があなたの探しているものかどうか試してください。コンピューターの右下に、カーソルがある行と列が表示されます。

:set ruler

コメントの編集

vimのヘルプ(コマンド:help ruler)から:

表示される文字数がテキストのバイト数と異なる場合(たとえば、TABまたはマルチバイト文字の場合)、テキスト列(バイト数)と画面列の両方がダッシュで区切られて表示されます。

次のrulerformatようにオプションで変更してみることができます:set rulerformat=%l,%v


はい、そうです。しかし、それは奇妙な値の例を示している23,62-6823行であるように思われました。62-68カラムをどのように解釈すればよいですか?
ジョナス

7
62 68は、拡張タブをカウントされ、1つの文字としてタブをカウントしている
RedGrittyBrick

1
コマンド ':help ruler'から: "表示される文字数がテキストのバイト数と異なる場合(たとえば、TABまたはマルチバイト文字の場合)、テキスト列(バイト数)と画面の両方列が表示され、ダッシュで区切られています。」「:set rulerformat =%l、%v」のような「rulerformat」オプションで変更してみてください
Birei

rulerVimの分割ウィンドウでは機能しません。
ミハイ

@Jonas RedGrittyBrickが言ったようにタブだけでなく、文字対バイトも。これは、単一文字のグリフにマルチバイトコードポイントがあるUTF-8ファイルで非常に明白です。たとえば、ラテン語のeñe(nの上にチルダがあり、EN-yeaと発音)は単一文字のグリフですが、コードポイント(\ xC3B1)を表すのに2バイトを使用し、3分の1(1/3)は単一文字のグリフです3バイトのコードポイント(\ xE28593)。
Luv2code

27

:help statusline利用可能な多くのオプションを参照してください。

私は~/.vimrc他の多くのディレクティブの間にこれを持っています:

set statusline+=col:\ %c,

どの出力

col: 64

私のステータスラインに。

持っていないset ruler


1
これは私にはうまくいきません。おそらくもっと設定が必要です。
ジョナス

3
ジョナス、を使用set laststatus=2して.vimrc、常にステータス行を表示する必要がある場合があります。(0->ステータス行を表示しない、1->少なくとも2つのウィンドウがある場合のみ、2->常にステータス行を表示する)。
パブイッソン

\%のC、:セットステータスライン+ = \ COL:私はこの前にスペースを提供し、ステータスライン上の前のものには、以下の使用
デヴィッドBaucum

18

これを行う別の方法は、「g Ctrl-G」を実行することです。これは、カーソルの現在の位置を5つの方法(列、行、単語、文字、およびバイト)で印刷します。(http://vimdoc.sourceforge.net/htmldoc/editing.html#g_CTRL-Gから)


このソリューションには、ColumnとVisibleColumnを区別する、すてきなものがあります。印刷できない文字は2列表示されますが、1列としてカウントする必要があります。印刷できない文字の場合、出力は次のようになります RealColumn-VisibleColumn, Line, Word, Character and Byte
mxlian

17

または、「ルーラー」を未設定のままにしてパフォーマンスを向上させ、現在の列を表示したい場合はCTRL-Gを押します。


3
Ctrl-Anythingを押しても、パフォーマンスは向上しません。文字を入力しています。人間には、この種のパフォーマンスの違いを見るのに十分な速さで飛ぶ指と目がありません。
macetw

10

set rulerと組み合わせてフルファイルパスを表示するようにstatuslineを設定する場合など、statuslineオプションと互換性がないと思うため、set rulerを使用して減価償却します

set statusline+=%F

set ruler

その後、列番号は表示されず、ステータスバーに完全なファイルパスのみが表示されます。ただし、次を.vimrcに入れると

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

つまり、すべてを正しく表示します

[ファイルパス/ファイル名] [行番号]:[列番号]


2

この答えを探していて、VImの操作に慣れていない他の人にとって、個人的に最も簡単な答えは、ホームディレクトリの.vimrcファイルの最後にこの行を追加することです。

set ruler

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.