statusline上でTerminal windowの行数を表示するとエラーが出る #1167
Closed
Labels
Comments
ありがとうございます。再現しました。 |
9850 という値から推測すると、terminal は通常のバッファと異なりスクロールバックの量(termwinscroll)しか行を持っていないにも関わらず行数はオフセットの値を保持する作りなので、その値で行を取りに行ってしまうとエラーになるという事だと推測します。 |
2回実行しなくても再現できそうですね。 set termwinscroll=100 で小さめに設定 yes | head -n 200 その後 CTRL-w N と a CR を繰り返し数回入力すると出ました。どうやら terminal normal mode に移る際に行がおかしくなるっぽいすね。 |
ご確認ありがとうございます。 issue報告を訂正します。2つ目の項目は誤報告でした。 |
これで動作が変わってしまいましたね。エラーにならなくなりました。ただ、 terminal normal mode に移った際に一番上の行に移動してしまっていて、これはバグだと思うのでまだ issue は残しておきます。 |
これで直った気がします。(報告も何もしてなかったですが) |
ありがとうございます。vim/vim@4d6cd29 に更新したところ、エラーが起こらなくなりました。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
質問・報告の内容
statuslineにwindowの行数を表示するときに起こるエラーについて報告をします。
Terminal windowの行数が10000付近のとき、次が起こります。
E315: ml_get: invalid lnum 9846
)行数の表示が減る (10000の次に9001になる)(termwinscrollの期待通りの動作でした)statuslineを表示する設定には次を使いました。
(以降の再現手順では
vimrc
というファイル名で参照します。)再現手順は次のとおりです。
1つめのエラーが出る手順:
vim.exe -u vimrc
を実行 (cmd.exe内で確認しました。):term
を入力yes | head -n 9850
(terminalのwindow内で入力)<C-w>N
を入力a
を入力yes | head -n 9850
(terminalのwindow内で入力)E315: ml_get: invalid lnum 数字
))期待動作としては、7でエラーが表示されないものと思っています。
操作のキャプチャ:

2つめの行数の表示が減る手順:期待動作としては、6で10001が表示されるものと思っています。
操作のキャプチャ:

3つめの行数が増える手順:
vim.exe -u vimrc
を実行 (cmd.exe内で確認しました。):term
を入力yes | head -n 11000
(terminalのwindow内で入力)<C-w>N
を入力a
を入力<C-w>N
を入力a
を入力期待動作としては、7, 10で4と同じ行数9996が表示されるのものと思っています。
操作のキャプチャ:

Vimのバージョン
8.0.1806
OSの種類/ディストリ/バージョン
(なるべく詳しく書いてください 記述例:)
使用している or 関係していそうなプラグイン
(関係していそうなプラグインなどがあればココに書いてください)
その他
(関連して何か気がついたこと、気になることがあればココに書いてください)
The text was updated successfully, but these errors were encountered: