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

Gnome デスクトップで winpos が効かない? #1044

Closed
yoshinaga-hiroyuki opened this Issue Apr 8, 2017 · 4 comments

Comments

Projects
None yet
4 participants
@yoshinaga-hiroyuki

質問・報告の内容

環境によって、gvimrc 記載の winpos が効かないことが有るのですが、原因を探るためには、どこから手を付ければ良いでしょう?

ここまでに確認した手順としては、

  1. .vimrc など
    ~/.vim/gvimrc
    以外の設定ファイルを削除
  2. ターミナルから起動した時など、ウィンドウ位置が gvimrc の指定と異なる場所になる
    下記環境で、デスクトップ環境が
    • Unity
      
    • Gnome デスクトップ (Gnome shell) でも「アクティビティ」からの起動時
      
    では問題がない
    (起動元アプリの起動時の場所に依存?)
  3. 起動後に :winpos で現在地を確認すると、正しい数値の様子
  4. 起動後に :winpos 0 0 を実行すると、希望通り左上配置になる

~/.vim/gvimrc
の内容は、

set antialias
set columns=150
winpos 0 0
set lines=55
set guifont=Monospace\ 12
set guioptions+=M
set guioptions-=T
set guioptions-=m

で、winpos 以外は、希望通りの動きです

$ sudo dpkg -l
で Unity と Gnome shell のバーションを見てみると
ii unity 7.5.0+16.10.20161112-0ubuntu1 amd64 Interface designed for efficiency of space and interaction.
ii gnome-shell 3.20.4-0ubuntu2 amd64 graphical shell for the GNOME desktop
となっていました

取り敢えずは、エイリアスやシェルスクリプトで回避出るのでそれほど困っていませんが、なんだか気持ち悪くて

Vimのバージョン

$ vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 22:32:42)
適用済パッチ: 1-1829
追加拡張パッチ: 8.0.0056
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by pkg-vim-maintainers@lists.alioth.debian.org
Huge 版 with GTK2 GUI. 機能の一覧 有効(+)/無効(-)

OSの種類/ディストリ/バージョン

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.10
Release: 16.10
Codename: yakkety
$ uname -a
Linux naonari 4.8.0-46-generic #49-Ubuntu SMP Fri Mar 31 13:57:14 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

使用している or 関係していそうなプラグイン

なし

その他

@raa0121

This comment has been minimized.

Show comment
Hide comment
@raa0121

raa0121 Apr 8, 2017

Member

Duplicate #1043

Member

raa0121 commented Apr 8, 2017

Duplicate #1043

@yoshinaga-hiroyuki

This comment has been minimized.

Show comment
Hide comment
@yoshinaga-hiroyuki

yoshinaga-hiroyuki Apr 8, 2017

あれれ???
#1043 は閉じておきましたm(|)m

あれれ???
#1043 は閉じておきましたm(|)m

@h-east

This comment has been minimized.

Show comment
Hide comment
@h-east

h-east Apr 9, 2017

Member

@yoshinaga-hiroyuki Issue登録お疲れ様です。
.vimrcや.gvimrcにwinpos 0 0のようなGUIウィンドウに作用するコマンドを書いてもGUIウィンドウはまだ開かれていないので効かないです。

このことは:h gui-initの46行下に書かれていて、対策も書かれています。

これらは全て、ユーザーの.vimrcファイルを読み込む、というような、通常のVimの初
期化の後に実行される。|initialization|を参照。
しかし、GUIウィンドウは全ての初期化が実行された後に開かれる。
GUIウィンドウを開いた直後にいくつかのコマンドを実行したいなら、オートコマンド
の|GUIEnter|イベントを使用する。例えば: >
	:autocmd GUIEnter * winpos 100 50

関連する以下のhelpを参照すると理解が深まると思います。

:h init
:h GUIEnter
Member

h-east commented Apr 9, 2017

@yoshinaga-hiroyuki Issue登録お疲れ様です。
.vimrcや.gvimrcにwinpos 0 0のようなGUIウィンドウに作用するコマンドを書いてもGUIウィンドウはまだ開かれていないので効かないです。

このことは:h gui-initの46行下に書かれていて、対策も書かれています。

これらは全て、ユーザーの.vimrcファイルを読み込む、というような、通常のVimの初
期化の後に実行される。|initialization|を参照。
しかし、GUIウィンドウは全ての初期化が実行された後に開かれる。
GUIウィンドウを開いた直後にいくつかのコマンドを実行したいなら、オートコマンド
の|GUIEnter|イベントを使用する。例えば: >
	:autocmd GUIEnter * winpos 100 50

関連する以下のhelpを参照すると理解が深まると思います。

:h init
:h GUIEnter

@h-east h-east added the kind/question label Apr 9, 2017

@yoshinaga-hiroyuki

This comment has been minimized.

Show comment
Hide comment
@yoshinaga-hiroyuki

yoshinaga-hiroyuki Apr 9, 2017

ヘルプにも書いてあるんですねm(|)m
Unityで出来てしまったいたので、環境依存だと思い込んでいました
おかげさまで、希望通りの動きになりました

ヘルプにも書いてあるんですねm(|)m
Unityで出来てしまったいたので、環境依存だと思い込んでいました
おかげさまで、希望通りの動きになりました

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment