New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
win_gotoid() で cmdwin から出れてしまう #1306
Labels
Comments
で実行すると、以下になりました。
1テストで2行出ますね。 |
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 5e32f2b6c..22a9de423 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -4040,7 +4040,7 @@ get_list_range(char_u **str, int *num1, int *num2)
open_cmdwin(void)
{
bufref_T old_curbuf;
- win_T *old_curwin = curwin;
+ win_T *old_curwin = curwin, *cur_cmdwin;
bufref_T bufref;
win_T *wp;
int i;
@@ -4161,6 +4161,8 @@ open_cmdwin(void)
setmouse();
# endif
+ cur_cmdwin = curwin;
+
// Trigger CmdwinEnter autocommands.
trigger_cmd_autocmd(cmdwin_type, EVENT_CMDWINENTER);
if (restart_edit != 0) // autocmd with ":startinsert"
@@ -4266,7 +4268,7 @@ open_cmdwin(void)
// Avoid command-line window first character being concealed.
curwin->w_p_cole = 0;
# endif
- wp = curwin;
+ wp = cur_cmdwin;
set_bufref(&bufref, curbuf);
win_goto(old_curwin);
win_close(wp, TRUE); となたか試してもらえますか。 |
v8.1.2037 で修正されたようです。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
不具合の内容
q:
等で開くコマンドラインウィンドウからは、通常別のウィンドウに移ることができないようになっていますが、win_gotoid()
を使うと移動できてしまい、その後の処理がおかしくなります。現象・ログ
Vim は移動した後のウィンドウ(バッファ)をコマンドラインウィンドウであるかのように処理してしまいます。
<C-w>
系コマンド)で移動しようとしても出られない<CR>
を押すと現在行をコマンドとして実行しようとする具体的に内部がどのようになっているかまでは確認していません。
再現手順
クラッシュする例:
example.vim
上記のスクリプトでやっていること(直接手打ちでも再現します)
<C-w>s
)q:
)win_gotoid()
を呼び出し先程のウィンドウに移動する<CR>
を押すと空行をコマンドとして実行し、コマンドラインウィンドウを閉じようとするが、内部の状態がおかしくなっておりクラッシュする期待動作
従来通りであれば、
win_gotoid()
を使ってもコマンドラインウィンドウから出られないのが正しい気がします。(しかしオフトピックになってしまいますが、この「コマンドラインウィンドウからは出られない」と言う制約はプラグインの作成において毎度頭を悩ませるイレギュラーな状況であり正直なところこの制約はなくせないものかと個人的には思っています…。)
Vimのバージョン
8.1.1991
OSの種類/ディストリ/バージョン
使用している or 関係していそうなプラグイン
なし
その他
(関連して何か気がついたこと、気になることがあればココに書いてください)
コマンドラインウィンドウは闇が深い。
The text was updated successfully, but these errors were encountered: