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" にいるとします.
ここで":vsplit"をすると,
winpos のX座標が188に動きます. Y座標は動きません.
- vsplitを解除する時にも同じことが起きます.
- vnew でも同じことが起きます.
私はウィンドウを左右に大きくしてからvsplit/vnewを多用するので,X位置がずれると
ウィンドウの右端がはみ出してしまい,困ります.
X座標が動かないのはX=188より右の時
ある程度右(X軸プラス方向)にウィンドウがあるときには,vsprit/vnewしても動きません.たとえば,winpos 300 0を指定しておいて,"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のウィンドウ位置の決め方がわからない
以上,わからないだらけですが,ご教授いただけますでしょうか.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/16 08:21
2020/07/16 20:57
2020/08/20 06:04