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

let g:tex_conceal=''が効かない事がある #1073

Closed
yoshinaga-hiroyuki opened this Issue Aug 18, 2017 · 4 comments

Comments

Projects
None yet
5 participants
@yoshinaga-hiroyuki

yoshinaga-hiroyuki commented Aug 18, 2017

質問・報告の内容

表題通り、
let g:tex_conceal=''
が効かないことがります

  • vimを使う時
  • gvimでも
    • ターミナルから
      gvim sample.tex
      で起動した時
    • ~/.vim/vimrc に設定を書き込んだ時

はどれも大丈夫なのです

しかし

  • *.texをgvimに関連付けておく
  • 件の設定を ~/.vim/ftplugin/tex.vim に書く
  • ファイルをダブル・クリック等関連付けを用いて開く

全ての条件を満たす時、期待通りの動作をしません
($\alpha$がαと表示されるなど)

ここまでは絞り込んだのですが、OS やデスクトップ環境の問題なのか gvim の問題なのかも解らず…。

あとプラグインは、dein.vimを使い、dein.tomlで

[[plugins]]
repo = 'Shougo/neocomplete'

をコメント・アウトすると、上記条件でも OK になります
ただ何度も確認したものの、ターミナルからの起動は元々 OK なので、本当にこのプラグインが関係するのか我ながら自信が持てません

Vimのバージョン

$ vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Mar 17 2017 12:13:35)
適用済パッチ: 1-95

OSの種類/ディストリ/バージョン/デスクトップ環境

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 17.04
Release: 17.04
Codename: zesty
$ uname -a
Linux xxxxxxx 4.10.0-32-generic #36-Ubuntu SMP Tue Aug 8 12:10:06 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

デスクトップ環境は、Unity と Gnome shell で確認
$ unity --version
unity 7.5.0
$ gnome-shell --version
GNOME Shell 3.24.2

関係していそうなプラグイン

repo = 'Shougo/neocomplete'

その他

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Aug 18, 2017

Member

($\alpha$がαと表示されるなど)

ここを詳しく教えて下さい。他にどの様な事が起きているか。

Member

mattn commented Aug 18, 2017

($\alpha$がαと表示されるなど)

ここを詳しく教えて下さい。他にどの様な事が起きているか。

@Shougo

This comment has been minimized.

Show comment
Hide comment
@Shougo

Shougo Aug 19, 2017

Member

verbose setlocal conceallevel?
の結果を教えてください。おそらくプラグインが上書きしています。
neocomplete では上書きしてませんが、neosnippet では実装の都合上上書きしています。

Member

Shougo commented Aug 19, 2017

verbose setlocal conceallevel?
の結果を教えてください。おそらくプラグインが上書きしています。
neocomplete では上書きしてませんが、neosnippet では実装の都合上上書きしています。

@todashuta

This comment has been minimized.

Show comment
Hide comment
@todashuta

todashuta Aug 19, 2017

Member

:scriptnamesの結果を教えてもらえますか?


関連付けで開くgvimはgvim -fで起動されてるようです。(これで今回の問題の動作に違いが出るとは思えませんが)

参照:/usr/share/applications/gvim.desktop

Member

todashuta commented Aug 19, 2017

:scriptnamesの結果を教えてもらえますか?


関連付けで開くgvimはgvim -fで起動されてるようです。(これで今回の問題の動作に違いが出るとは思えませんが)

参照:/usr/share/applications/gvim.desktop

@yoshinaga-hiroyuki

This comment has been minimized.

Show comment
Hide comment
@yoshinaga-hiroyuki

yoshinaga-hiroyuki Aug 19, 2017

皆さんの指摘を確認している過程で、原因箇所を絞り込めました dein.toml 中の

[[plugins]]
repo = 'Shougo/neocomplete'
hook_add = '''
if has('conceal')
set conceallevel=2 concealcursor=i
endif
'''

[[plugins]]
repo = 'Shougo/neocomplete'
hook_add = '''
if has('conceal')
setlocal conceallevel=0
endif
'''

としたら問題なくなりました

プラグインで上書きしていたんですね
ターミナルからは OK な理由が解りませんが…

以下皆さんへの返信

math さんへ

($\alpha$がαと表示されるなど)
ここを詳しく教えて下さい。他にどの様な事が起きているか。

ご存知かも知れませんが、TeX では \〜 が一種のコマンドになり、加えて $ で挟んだり、
\begin{eqation}

\end{eqation}
で数式環境になります
そしてこの数式環境内で、同じく \alpha など \〜 で日本語とキーボードで直接入力できないような文字を入力していきます

この時 conceal が効いていると、その一部一部の文字列、例えば上記で書いたようなギリシャ文字や数式記号などが別の文字に置き換わって表示されます
私の現在の状況だと、ノーマルモードでカーソルがその行に有る時は、置き換えた表示が起きませんが、

  • ノーマルモードでカーソルが他の行にあるとき
  • インサートモードの時は、カーソル位置に関わりなく

の時は置き換え表示になります
特に後者が邪魔なんですよね〜

Shougo さんへ

verbose setlocal conceallevel?
の結果を教えてください。おそらくプラグインが上書きしています。
neocomplete では上書きしてませんが、neosnippet では実装の都合上上書きしています。

conceallevel=2

となりました→その後最上部の変更で、

conceallevel=0
最後にセットしたスクリプト: ~/.vim/bundle/state_gvim.vim

となり、現状問題なしの状態です

todashuta さんへ

:scriptnamesの結果を教えてもらえますか?

出力減らすために、dein.toml の記述をs

[[plugins]]
repo = 'Shougo/dein.vim'
[[plugins]]
repo = 'Shougo/vimproc.vim'
build = 'make'
[[plugins]]
repo = 'Shougo/neocomplete'
hook_add = '''
if has('conceal')
set conceallevel=2 concealcursor=i
endif
'''

と減らして確認しました

/usr/share/vim/vimrc
/usr/share/vim/vim80/debian.vim
/usr/share/vim/vim80/syntax/syntax.vim
/usr/share/vim/vim80/syntax/synload.vim
/usr/share/vim/vim80/syntax/syncolor.vim
~/.vim/filetype.vim
/usr/share/vim/vim80/filetype.vim
/usr/share/vim/vim80/menu.vim
~/.vim/lang/menu_ja_jp.utf-8.vim
/usr/share/vim/vim80/lang/menu_ja_jp.utf-8.vim
/usr/share/vim/vim80/autoload/paste.vim
~/.vim/vimrc
~/.vim/bundle/repos/github.com/Shougo/dein.vim/autoload/dein.vim
~/.vim/bundle/state_gvim.vim
/usr/share/vim/vim80/ftoff.vim
/usr/share/vim/vim80/ftplugin.vim
/usr/share/vim/vim80/indent.vim
~/.vim/bundle/repos/github.com/Shougo/vimproc.vim/plugin/vimproc.vim
~/.vim/bundle/.cache/vimrc/.dein/plugin/neocomplete/buffer.vim
~/.vim/bundle/.cache/vimrc/.dein/plugin/neocomplete/dictionary.vim
~/.vim/bundle/.cache/vimrc/.dein/plugin/neocomplete/member.vim
~/.vim/bundle/.cache/vimrc/.dein/plugin/neocomplete/tag.vim
~/.vim/bundle/.cache/vimrc/.dein/plugin/neocomplete.vim
/usr/share/vim/vim80/plugin/getscriptPlugin.vim
/usr/share/vim/vim80/plugin/gzip.vim
/usr/share/vim/vim80/plugin/logiPat.vim
/usr/share/vim/vim80/plugin/manpager.vim
/usr/share/vim/vim80/plugin/matchparen.vim
/usr/share/vim/vim80/plugin/netrwPlugin.vim
/usr/share/vim/vim80/plugin/rrhelper.vim
/usr/share/vim/vim80/plugin/spellfile.vim
/usr/share/vim/vim80/plugin/tarPlugin.vim
/usr/share/vim/vim80/plugin/tohtml.vim
/usr/share/vim/vim80/plugin/vimballPlugin.vim
/usr/share/vim/vim80/plugin/zipPlugin.vim
/usr/share/vim/vim80/pack/dist/opt/matchit/plugin/matchit.vim
/usr/share/vim/vim80/pack/dist/opt/editexisting/plugin/editexisting.vim
/usr/share/vim/gvimrc
~/.vim/gvimrc
~/.vim/bundle/repos/github.com/Shougo/dein.vim/autoload/dein/autoload.vim
~/.vim/bundle/repos/github.com/Shougo/dein.vim/autoload/dein/util.vim
/usr/share/vim/vim80/syntax/tex.vim
~/.vim/ftplugin/tex.vim
/usr/share/vim/vim80/ftplugin/tex.vim
/usr/share/vim/vim80/indent/tex.vimbegin{align}

関連付けで開くgvimはgvim -fで起動されてるようです。(これで今回の問題の動作に違いが出るとは思えませんが)
参照:/usr/share/applications/gvim.desktop

普段私は、
~/.local/share/applications/gvim.desktop
にコピーして、

Exec=gvim.sh %F

とシェルスクリプトを噛ませているのですが、今回の確認時には

Exec=gvim %F

とオプションもなしで確認したので、ご想像どおり -f オプションは関係ないです

yoshinaga-hiroyuki commented Aug 19, 2017

皆さんの指摘を確認している過程で、原因箇所を絞り込めました dein.toml 中の

[[plugins]]
repo = 'Shougo/neocomplete'
hook_add = '''
if has('conceal')
set conceallevel=2 concealcursor=i
endif
'''

[[plugins]]
repo = 'Shougo/neocomplete'
hook_add = '''
if has('conceal')
setlocal conceallevel=0
endif
'''

としたら問題なくなりました

プラグインで上書きしていたんですね
ターミナルからは OK な理由が解りませんが…

以下皆さんへの返信

math さんへ

($\alpha$がαと表示されるなど)
ここを詳しく教えて下さい。他にどの様な事が起きているか。

ご存知かも知れませんが、TeX では \〜 が一種のコマンドになり、加えて $ で挟んだり、
\begin{eqation}

\end{eqation}
で数式環境になります
そしてこの数式環境内で、同じく \alpha など \〜 で日本語とキーボードで直接入力できないような文字を入力していきます

この時 conceal が効いていると、その一部一部の文字列、例えば上記で書いたようなギリシャ文字や数式記号などが別の文字に置き換わって表示されます
私の現在の状況だと、ノーマルモードでカーソルがその行に有る時は、置き換えた表示が起きませんが、

  • ノーマルモードでカーソルが他の行にあるとき
  • インサートモードの時は、カーソル位置に関わりなく

の時は置き換え表示になります
特に後者が邪魔なんですよね〜

Shougo さんへ

verbose setlocal conceallevel?
の結果を教えてください。おそらくプラグインが上書きしています。
neocomplete では上書きしてませんが、neosnippet では実装の都合上上書きしています。

conceallevel=2

となりました→その後最上部の変更で、

conceallevel=0
最後にセットしたスクリプト: ~/.vim/bundle/state_gvim.vim

となり、現状問題なしの状態です

todashuta さんへ

:scriptnamesの結果を教えてもらえますか?

出力減らすために、dein.toml の記述をs

[[plugins]]
repo = 'Shougo/dein.vim'
[[plugins]]
repo = 'Shougo/vimproc.vim'
build = 'make'
[[plugins]]
repo = 'Shougo/neocomplete'
hook_add = '''
if has('conceal')
set conceallevel=2 concealcursor=i
endif
'''

と減らして確認しました

/usr/share/vim/vimrc
/usr/share/vim/vim80/debian.vim
/usr/share/vim/vim80/syntax/syntax.vim
/usr/share/vim/vim80/syntax/synload.vim
/usr/share/vim/vim80/syntax/syncolor.vim
~/.vim/filetype.vim
/usr/share/vim/vim80/filetype.vim
/usr/share/vim/vim80/menu.vim
~/.vim/lang/menu_ja_jp.utf-8.vim
/usr/share/vim/vim80/lang/menu_ja_jp.utf-8.vim
/usr/share/vim/vim80/autoload/paste.vim
~/.vim/vimrc
~/.vim/bundle/repos/github.com/Shougo/dein.vim/autoload/dein.vim
~/.vim/bundle/state_gvim.vim
/usr/share/vim/vim80/ftoff.vim
/usr/share/vim/vim80/ftplugin.vim
/usr/share/vim/vim80/indent.vim
~/.vim/bundle/repos/github.com/Shougo/vimproc.vim/plugin/vimproc.vim
~/.vim/bundle/.cache/vimrc/.dein/plugin/neocomplete/buffer.vim
~/.vim/bundle/.cache/vimrc/.dein/plugin/neocomplete/dictionary.vim
~/.vim/bundle/.cache/vimrc/.dein/plugin/neocomplete/member.vim
~/.vim/bundle/.cache/vimrc/.dein/plugin/neocomplete/tag.vim
~/.vim/bundle/.cache/vimrc/.dein/plugin/neocomplete.vim
/usr/share/vim/vim80/plugin/getscriptPlugin.vim
/usr/share/vim/vim80/plugin/gzip.vim
/usr/share/vim/vim80/plugin/logiPat.vim
/usr/share/vim/vim80/plugin/manpager.vim
/usr/share/vim/vim80/plugin/matchparen.vim
/usr/share/vim/vim80/plugin/netrwPlugin.vim
/usr/share/vim/vim80/plugin/rrhelper.vim
/usr/share/vim/vim80/plugin/spellfile.vim
/usr/share/vim/vim80/plugin/tarPlugin.vim
/usr/share/vim/vim80/plugin/tohtml.vim
/usr/share/vim/vim80/plugin/vimballPlugin.vim
/usr/share/vim/vim80/plugin/zipPlugin.vim
/usr/share/vim/vim80/pack/dist/opt/matchit/plugin/matchit.vim
/usr/share/vim/vim80/pack/dist/opt/editexisting/plugin/editexisting.vim
/usr/share/vim/gvimrc
~/.vim/gvimrc
~/.vim/bundle/repos/github.com/Shougo/dein.vim/autoload/dein/autoload.vim
~/.vim/bundle/repos/github.com/Shougo/dein.vim/autoload/dein/util.vim
/usr/share/vim/vim80/syntax/tex.vim
~/.vim/ftplugin/tex.vim
/usr/share/vim/vim80/ftplugin/tex.vim
/usr/share/vim/vim80/indent/tex.vimbegin{align}

関連付けで開くgvimはgvim -fで起動されてるようです。(これで今回の問題の動作に違いが出るとは思えませんが)
参照:/usr/share/applications/gvim.desktop

普段私は、
~/.local/share/applications/gvim.desktop
にコピーして、

Exec=gvim.sh %F

とシェルスクリプトを噛ませているのですが、今回の確認時には

Exec=gvim %F

とオプションもなしで確認したので、ご想像どおり -f オプションは関係ないです

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