質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Q&A

解決済

1回答

1480閲覧

gvimで,ウィンドウ位置があるX位置より左側でvsplit/vnewすると,位置が変わる

FUJIIDaiuke

総合スコア9

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

0グッド

0クリップ

投稿2020/07/13 00:57

vsplit/vnewしてもウィンドウポジションを変えない方法が知りたい

gvimですべてのドキュメント/プログラム作成をしています.
環境は以下のとおりです.

  • vim 8.2 wor win 64bit kaoriya版
  • Windows10 Education version 1909
  • ディスプレイ:4K(3840x2160)

長年gvimを使っていて最近気づいたのですが,ウィンドウをある位置よりも左側に寄せて,縦分割:vsplit/vnewをすると,ウィンドウ位置が初期化されてしまうようなのです.

.vimrcやプラグインをいろいろ入れて,mapを書きまくっているので,そのせいかと思い,"gvim --clean"で起動しても同じ現象です.

起きていること

たとえば,"winpos 100 0" にいるとします.

winpos 100 0

ここで":vsplit"をすると,

vsplit後

winpos のX座標が188に動きます. Y座標は動きません.

  • vsplitを解除する時にも同じことが起きます.
  • vnew でも同じことが起きます.

私はウィンドウを左右に大きくしてからvsplit/vnewを多用するので,X位置がずれると
ウィンドウの右端がはみ出してしまい,困ります.

X座標が動かないのはX=188より右の時

ある程度右(X軸プラス方向)にウィンドウがあるときには,vsprit/vnewしても動きません.たとえば,winpos 300 0を指定しておいて,"vsplit"をすると,
winpos300でのvsplit

どうやら「暗黙の初期値」みたいなのがあるようです.確かに,最初にgvimを起動する時の位置が188らしい,ということはあります.

"188"という数字は,3840というディスプレイサイズに関係しているだろうとは思うのですが,理屈がわかりません.

※そもそも,gvimの起動時のウィンドウ位置の決め方がわかっていません.

現在の付け焼き刃的対処

対処としては,vsplitの前後に位置情報を保存しておき,復活させる,というmapを書いて対処しています.

vimscript

1map ,vs :let g:posx=getwinposx()<cr>::let g:posy=getwinposy()<cr>:vsplit<cr>:execute "winpos " g:posx . " " . g:posy<cr>

vnewの方は面倒なのでやっていません.(キー入力がわからん)

まとめ

  • vsplit/vnewするとウィンドウのX位置が動く現象が起きている人はいるか
  • この現象をスマートに防ぐ手立てはないか
  • そもそもgvimのウィンドウ位置の決め方がわからない

以上,わからないだらけですが,ご教授いただけますでしょうか.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

どうやらタスクバーを左に配置しているときの動作がバグっているように見えます。
タスクバーを下に配置しているときは、ウィンドウのX座標が負のときにvspを実行すると、X座標を0にするようにウィンドウ位置が補正されます。その補正処理が誤動作しているようです。

とりあえず、.vimrcに set guioptions+=k を追加すれば、vsp実行時にウィンドウ位置が移動することはなくなるはずです。(詳しくは :help 'go-k' を参照してください。)

投稿2020/07/13 01:47

K.Takata

総合スコア108

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

FUJIIDaiuke

2020/07/16 08:21

的確なオプションの情報,有難うございます. ウィンドウが移動せずにvsplit/vnewできるようになりました. こんなところに縦タスクバーの影響があるとは思っておりませんでした. 勉強になりました.
K.Takata

2020/07/16 20:57

8.2.1226 で本体が修正されました。次のリリースでは go+=k を指定せずともウィンドウ位置がずれなくなるはずです。
FUJIIDaiuke

2020/08/20 06:04

返事が遅くなりました.情報ありがとうございます.確認します.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問