rhysd / clever-f.vim

Extended f, F, t and T key mappings for Vim.
https://rhysd.github.io/clever-f.vim
1.01k stars 44 forks source link

Disappear cursor icon's color. #49

Closed nekowasabi closed 5 years ago

nekowasabi commented 5 years ago

Description

Disapper cursor color by executing clerver-f

https://vim-jp.slack.com/archives/C03C4RC9F/p1562727930036200

Reproduce process

  1. Hit f
  2. Hit key to jump char

Environment

Minimum setting

if &compatible
  set nocompatible               " Be iMproved
endif

if empty(glob('c:/nekowasabi/tools/vim/vim81/autoload/plug.vim'))
  silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
        \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  autocmd VimEnter * PlugInstall | source $MYVIMRC
endif

call plug#begin('c:/nekowasabi/tools/vim/vim81/plugged')
Plug 'rhysd/clever-f.vim'
nmap f <Plug>(clever-f-f)
xmap f <Plug>(clever-f-f)
omap f <Plug>(clever-f-f)
nmap F <Plug>(clever-f-F)
xmap F <Plug>(clever-f-F)
omap F <Plug>(clever-f-F)
rhysd commented 5 years ago

報告ありがとうございます.

一点確認させてください.下記の出力はこの問題の前後でどう変化しますでしょうか?

:echo &guicursor
:echo &t_ve

これらのオプションがカーソルの形を決めていて clever-f が(一時的に)変更している値なので,お手数ですがご確認をお願いいたします.

一度コードを見直してみましたが,見た感じ問題になる箇所は見つけられなかった&手元の MacVim 8.1.1517 では再現しませんでした.明日試しに Windows のほうでも見てみます.

rhysd commented 5 years ago

また,一時的に

let g:clever_f_hide_cursor_on_cmdline = 0

としておいていただくことで,この問題は回避できると思いますので,この issue が解決するまではこちらの設定をお使いください.

nekowasabi commented 5 years ago

以下が実行結果となります。 こちらもkaoriya-vimのsnapshotの過去バージョンでの動作を確認してみます

clever-fコマンド実行前

echo &guicursor a:blinkon0

echo &t_ve なにも表示されず

clever-fコマンド実行後

echo &guicursor a:blinkon0

echo &t_ve なにも表示されず

rhysd commented 5 years ago

ありがとうございます.つまり値は変わっていないということですね.復帰処理は意図通り動いているように見えます.引き続きお手数ですが,下記を試してみていただけませんでしょうか?

" ここで出力が a:blinkon0 であることを確認
:set guicursor

" ここでカーソルが消える
:set guicursor=n-o:block-NONE

" ここでカーソルが元に戻る
:set guicursor=a:blinkon0

もしこれの最後のステップでカーソルが元に戻らなければ,guicursor に値を設定し直してもカーソルの形状がもとに戻らないという Vim のバグの可能性があります.

nekowasabi commented 5 years ago

原因が判明しました。 こちらの設定が原因です。

カーソルのちらつきを抑制するため、 gvimrcに set guicursor=a:blinkon0を設定しており、 こちらをコメントアウトすると、正常に動作いたしました。

コメントアウトする前は、最後のステップでカーソルが元に戻りませんでした。

お手数をおかけしてしまい、大変失礼いたしました。

rhysd commented 5 years ago

とりあえず正常に動作したとのことで安心しました.私の手元でも Windows の Vim 8.1.1661 で動作することを確認できました.

ただ最後のステップでカーソルが戻らないのは謎ですね… とりあえずこのプラグインが理由ではなさそうですので,この issue は close することにします.複数回ご確認いただきありがとうございました.

rhysd commented 5 years ago

理由が分かった気がします. guicursor=a:blinkon0 は「カーソルの点滅を無効にする」という意味ですが,他のカーソルの形状には影響を与えないみたいです.なので,カーソルが消えた後に guicursor=a:blinkon0 をセットしても,点滅が止まるだけで消えたカーソルは戻りません.~うーん,これは clever-f.vim のほうで guicursor をいじるのは厳しそうですね~ 一旦デフォルト値に戻してから guicursor を適用することで正しく復帰できそうです

rhysd commented 5 years ago

e2fa9ba で修正を入れました.これで gvimrc で set guicursor=a:blinkon0 しても正しく動作するはずです.

nekowasabi commented 5 years ago

確認しました。 set guicursor=a:blinkon0設定ありでカーソルが見えなくなることなしに、 正常な動作を確認しました。 ありがとうございます!