Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Macの端末内Vimで__TcvimeHelp__ が生成され続ける #3

Closed
kozo2 opened this issue Aug 5, 2013 · 3 comments
Closed

Macの端末内Vimで__TcvimeHelp__ が生成され続ける #3

kozo2 opened this issue Aug 5, 2013 · 3 comments

Comments

@kozo2
Copy link
Contributor

kozo2 commented Aug 5, 2013

下記の環境、設定でTcvimeHelp bufferが生成され続けます。
tcvimeに含まれるfileやtcodeのkeymap fileはnkfですべてUTF-8に変換しています。

環境)
Mac OSX mountain lion
iterm2
Vim Patch 7.4b.014 (homebrewでinstallしたもの)
tcvime githubのHEAD

設定)
https://gist.github.com/kozo2/6157652

screen shot 2013-08-06 at 2 18 59

@kozo2
Copy link
Contributor Author

kozo2 commented Aug 5, 2013

homebrewのMacVim先端でも結果は同様でした。

screen shot 2013-08-06 at 7 00 18

@deton
Copy link
Owner

deton commented Aug 6, 2013

Mac OS X環境が無いので、再現できていないのですが、
:echo tempname()
で表示される文字列を教えてください。
この文字列をもとに以下のようにヘルプ用ファイル名を作っているので。
let s:helpbufname = fnamemodify(tempname(), ':p:h') . '/TcvimeHelp'

エスケープが必要な文字(*?,{}[]^$%#)が含まれている場合は、
以下の変更で解決するかもしれません。

--- a/autoload/tcvime.vim
+++ b/autoload/tcvime.vim
@@ -1464,7 +1464,7 @@ endfunction
 " SelectWindowByName(name)
 "   Acitvate selected window by a:name.
 function! s:SelectWindowByName(name)
-  let num = bufwinnr('^' . a:name . '$')
+  let num = bufwinnr('^' . escape(a:name, '\*?,{}[]^$%#') . '$')
   if num > 0 && num != winnr()
     execute num . 'wincmd w'
   endif

あるいは、以下に変更しても動くかもしれません。
(古いバージョンではこうしてましたが、
意図しないバッファにマッチする恐れがあるかと思って、
現状のように^と$を付けたのですが、変更前でも特に問題があったわけではないので)

   let num = bufwinnr(a:name)

@kozo2
Copy link
Contributor Author

kozo2 commented Aug 10, 2013

ご回答頂きありがとうございます。
また返信が遅れてしまい申し訳ありません。

:echo tempname()では

/var/folders/vd/wfx9sdf518xdbpdlt02zp3mh0000gn/T/vufpXHT/8

という文字列が表示されました。
特にescapeが必要な文字は含まれていないように思います。

またこの文字列のpathにfileが作られているかどうか確認したのですが、作られていませんでした。
path末尾の8の1段上のdirectoryは生成され、MacVim終了時に削除されるようです。

次にお教え頂いた変更2種を試してみたのですが、

let num = bufwinnr(a:name)

ですとTcvimeHelpが作られ続けることはなくなりました。
この場合でも前述の文字列のpathにfileは作られていなかったのですが望み通りの動作が得られました。

let num = bufwinnr('^' . escape(a:name, '\*?,{}[]^$%#') . '$')

では挙動に変化はありませんでした。(つまりTcvimeHelpが作られ続ける)

pull requestは

#4

でお願いしました。

@kozo2 kozo2 closed this as completed Aug 10, 2013
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants