2009-04-10

MacVim IMの挙動が変

http://www.serendip.ws/archives/1687

> :set noimdisable で ESC キーで IME を off に出来るようにしても
> Dock icon は跳ねなくなっていたけれど、
> f キーの移動や r キーでの置換の際に IME が on になってしまったり、
> 挿入モード時に tab キーで IME が on になったりしてしまう。


iminsertの更新が変だと思ってましたが、imsearchなども意図せずに更新されるようですね。


ESC押したらIM offになるだけ、って機能だけがあればいい気がしますので調べてみます。


それはそれとしてMacVimのtrunkが新規ウインドウが開いてるのに表示されないとかおかしなことになっているような?

2009-04-08

MacVim KaoriYa ドキュメント

http://code.google.com/p/macvim-kaoriya/wiki/Readme

めずらしくドキュメント書きました :-)


アイコン跳ね問題のpatchも取り込んでもらえそうです。


if_ruby.c 1.9.1用パッチあてて、ちょっとヘッダいじってMacRuby 0.4をlinkしてみました(-fobjc-gc必須)が、すぐさま落ちました。gui_macvim.mをgc対応させないとだめかも?

MacVim KaoriYa 20090408

http://code.google.com/p/macvim-kaoriya/

Sparkleでお届けされていると良いですが、:set noimdisableでDockのアイコンが跳ね続ける件を直してバイナリアップしました。

vim_mac MLにも送信済みです。

ただ、まだ問題がありまして。iminsertが更新されるわけですが、どうもIM onでしか記憶してくれないので、暫定的にgvimrc
inoremap <silent> <ESC> <ESC>:set iminsert=0<CR>

してあります。これでどうなるかと言いますと、


  1. 挿入モードに移行
  2. IM on
  3. 日本語入力
  4. ESC押下 → 自動的にIM off
  5. 挿入モードに移行しても自動的にはIM onにはならない


となります。これはこれで望まれた挙動のような気がしないでもないですが(私は自分でIM offにしちゃうので...)。

MacVim Dockアイコン跳ね続け問題解決

http://fifnel.com/2009/04/07/2300/
> 最初はMacVimなどを使っていたのですが、他のはiminsert=0が使えませんでした。


MacVimで :set noimdisable すると、Dockでアイコンがはね続けちゃいますからね...


MacVimから呼び出される方のVimでCarbonのKeyScriptを呼び出しているのが原因なのですが、CarbonのAPIを呼び出したくせにGUI的なイベントをハンドルしてないから、とかでしょうか。


#include <Carbon/Carbon.h>
int main() {KeyScript(smKeySysScript); for(;;){sleep(1);} return 0;}


gcc a.c -framework Carbon

./a.out とかやってもアイコン跳ねたりしませんが、./a.outをapplication bundleに突っ込んでダブルクリックしたら、見事に跳ね続けました。


ということで、MacVim側でKeyScriptを実行するようにしてみました。アイコン跳ねません!

MacVim-Kaoriyaのソース、バイナリは後ほど更新します。MacVim MLにもパッチ送っておきます。


KeyScriptとか10.5でdeprecatedですけどね。


diff --git a/src/MacVim/MMVimController.m b/src/MacVim/MMVimController.m
index 2e3738f..f2b40db 100644
--- a/src/MacVim/MMVimController.m
+++ b/src/MacVim/MMVimController.m
@@ -981,6 +981,10 @@ static BOOL isUnsafeMessage(int msgid);
showWithText:[dict objectForKey:@"text"]
flags:[[dict objectForKey:@"flags"] intValue]];
}
+ } else if (ActivateKeyScriptID == msgid) {
+ KeyScript(smKeySysScript);
+ } else if (DeactivateKeyScriptID == msgid) {
+ KeyScript(smKeyRoman);
// IMPORTANT: When adding a new message, make sure to update
// isUnsafeMessage() if necessary!
} else {
diff --git a/src/MacVim/MacVim.h b/src/MacVim/MacVim.h
index 2f52306..de68bf1 100644
--- a/src/MacVim/MacVim.h
+++ b/src/MacVim/MacVim.h
@@ -177,6 +177,8 @@ enum {
SetFullscreenColorMsgID,
ShowFindReplaceDialogMsgID,
FindReplaceMsgID,
+ ActivateKeyScriptID,
+ DeactivateKeyScriptID,
};


diff --git a/src/MacVim/MacVim.m b/src/MacVim/MacVim.m
index d94c825..17f4e01 100644
--- a/src/MacVim/MacVim.m
+++ b/src/MacVim/MacVim.m
@@ -84,6 +84,8 @@ char *MessageStrings[] =
"SetFullscreenColorMsgID",
"ShowFindReplaceDialogMsgID",
"FindReplaceMsgID",
+ "ActivateKeyScriptID",
+ "DeactivateKeyScriptID",
};


diff --git a/src/MacVim/gui_macvim.m b/src/MacVim/gui_macvim.m
index 2e53a92..e0f5d9d 100644
--- a/src/MacVim/gui_macvim.m
+++ b/src/MacVim/gui_macvim.m
@@ -1270,7 +1270,8 @@ im_set_active(int active)
SInt32 systemScript = GetScriptManagerVariable(smSysScript);

if (!p_imdisable && smRoman != systemScript)
- KeyScript(active ? smKeySysScript : smKeyRoman);
+ [[MMBackend sharedInstance] queueMessage:
+ (active ? ActivateKeyScriptID : DeactivateKeyScriptID) data:nil];
}

2009-04-06

MacVim KaoriYa 20090406

http://code.google.com/p/macvim-kaoriya/



KaoriYaさんのパッチを適用して、なるべく日本語化したMacVimです。

ひととおり日本語化できたので、バイナリをアップしました。10.4/10.5 universalバイナリです。

KaoriYaさんのvimrc、gvimrc、vimスクリプトをなるべく活かしてますので、インストールするだけで日本語の編集ができたり、migemo検索できたりします。

ドキュメント準備中です。


Vimにすでに日本語メニューが入っていますが、MacVimでは非対応としてcomment outされていました。が、特に問題なくそのまま使えました。ちょっとだけOS Xぽく変更してます($VIMRUNTIME/menu/lang/menu_ja_jp.utf-8.macvim.vim)。

OS X固有の検索ダイアログなどは、CocoaのLocalizationの仕組みで日本語リソースを追加しています。nibファイルは日本語リソースを追加し、ソースコード中に埋まっている日本語化可能なところはNSLocalizedStringを使用しています。

Sparkleの更新チェックもMacVim KaoriYaに向けてます。

+rubyです。+pythonも入れたかったんですが、10.4 universalでbuildできなかったので外してます。

既知の問題として、imdisableでDock跳ね続け、IM半角文字幅、gettext部分が動いてない?、などがありますが、Vim.app carbon、cocoaより使えるんじゃないでしょうか。

2009-04-03

tips?

repo.or.czのsnapshotはtgzだとダウンロードの度に変化する。zipだと変化しない。

http://xcatsan.blogspot.com/search/label/ローカライズ

.DS_Storeを生成するためのPerlスクリプト。
https://wiki.mozilla.org/DS_Store_File_Format
http://cpan.uwinnipeg.ca/dist/Mac-Finder-DSStore

SetFile -a V file で不可視属性。Finderから見えなくなる。GetFileInfoで確認。

2009-04-02

MacVim + KaoriYaパッチ お試し版バイナリ



http://code.google.com/p/macvim-kaoriya/

とりあえず動くものを作りました。今回はintel mac専用です。見ての通り、中途半端に日本語化されてたりします。

vim:7.2.148 macvim:snapshot-44 kaoriya:20090321 がベースです。

詳しくはこちら http://repo.or.cz/w/MacVim/KaoriYa.git

2009-04-01

MacVim + KaoriYaパッチ 続き


■Gitリポジトリ (MacVimからのfork)
http://repo.or.cz/w/MacVim/KaoriYa.git

■バイナリ配布予定地
http://code.google.com/p/macvim-kaoriya/

■MacPorts
http://lapangan.net/darwinports/index.php?PrivatePortfile%2FMacVim


MacVim + 香り屋さんのパッチ + なるべく日本語化 = 香り屋さんのWindows版の使い勝手に近いMacVim を勝手に目指します。

vimgdbなどの拡張はPrivatePortfile側で追加

code.googleでバイナリ配布


前sourceforge.jpの自分projectでやってたのを、よりopenなところでやってみました。

本家MacPortsベースのvim(not vim-app)を使ってましたが、このMacVimに乗り換え。


MacVim Core Text branch待ち。わくわく。inlineはvim-cocoa Core Textから持ってきて欲しい。

2009-03-31

Android release-1.0

hardware/msm7k のcupcakeがいつのまにやら進んでるので、release-1.0目的でcupcakeを指定してもcompileできなくなってます。


<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remove-project name="kernel/common"/>
<project path="kernel" name="kernel/msm" revision="refs/heads/android-msm-htc-2.6.25"/>
<project path="vendor/htc/dream" name="platform/vendor/htc/dream" revision="e3868b58332ab687e3d7225a04db4022572762e8"/>
<project path="hardware/msm7k" name="platform/hardware/msm7k" revision="040da078eb98745efe4b3f05ad72e61c66ba70b5"/>
</manifest>


念のためvendor/htc/dreamもrevision指定してみました。