0

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

読んだことで、有望に見える:h statuslineことがわかりましたが、文字ではなくバイトをカウントします。%c列をバイトではなく文字で区切りたいと思います。%vタブが使用されていない場合に機能します。ここに例があります:

123 56789
“äå µåäö”
   ^ this is a tab

最初の行に示されている番号を表示したいと思います。以下は、タブが機能するまで、1 列目から 3 列目まで機能します。

:set statusline=%v

以下は最初の行でのみ機能し、2 行目では機能しません。

:set statusline=%c

上記の例では、カーソルが最初の行の55桁目にある場合にvim が表示されます。1 行下に移動してカーソルが にも表示されるようにすると、 が表示され、 の値に依存します。µ5%c9%vtabstop

4

1 に答える 1

2

オプションで式を使用する必要があると思い'statusline'ます: %{<exp>}。行を取得し、カーソル列までトリミングし、すべての文字を 1 バイト文字に置き換え、文字列の長さを数えます。

:let &stl = "%{strlen(substitute(strpart(getline('.'), 0, col('.')), '.', 'x', 'g'))}"
于 2014-01-26T18:59:43.687 に答える