2012年5月19日土曜日

Macの整理


最近、いろいろありまして、深夜に起きることが
ちょいちょいあります。
そんな時間を利用してMac環境を少し整理しておこうかと。
興味でいろいろいれてたけどようわからんので色々消してみた。
残った?というか多分これくらいしか使ってない。
のでまっさらになったらもう一度これらを入れよう。

ひとまず必要最低限のリスト

GoogleJapaneseinput:googlejapaneseinput.dmg  
Skype:Skype_5.5.0.2069.dmg  
Xcode:AppStore?  
MacPorts:MacPorts-2.0.4-10.7-Lion.dmg  
git:MacPorts
perl5:MacPorts
Subversion:Subversion-1.6.17-1_10.7.x.pkg  
SCPlugin:SCPlugin-0.8.2-SVN.1.6.9.dmg  
MAMP:MacPorts-2.0.4-10.7-Lion.dmg  
Eclipse:eclipse-jee-indigo-SR2-macosx-cocoa-x86_64.tar.gz/pleiades_1.3.3.zip  
MacVim:macvim-kaoriya-20120105.dmg  
Mou:AppStore?  
ClipMenu:ClipMenu_0.4.3.dmg  
KeyRemapforMacBook:KeyRemap4MacBook-7.5.0.pkg.zip  
DropBox:Dropbox1.2.49.dmg  
KeePassX:KeePassX-0.4.3.dmg  
CCleaner:CCMac1.00.077.dmg  
AppCleaner:AppCleaner_2.0.5.zip  
YoruFukurou:AppStore?  
Skitch:AppStore?  
GeekTool:AppStore?  
iPhoto:AppStore?  
iMovie:AppStore?  
Alfred:AppStore?  
Growl:AppStore?  
GrowlTimer:GrowlTimer.zip  
MuCommander:svn  
apache-ivy-2.3.0-rc1-bin.tar.gz  
apache-ant-1.8.3-bin.tar.gz  
VMWareFusion:buy
Avast

MacPorts のアップグレード

sudo port selfupdate  
ってやったらエラーが起きたので
sudo port upgrade installed  
した。
んだけど、エラーが起きるので
ひとまず
sudo port clean all  
sudo port selfupdate  
してみたらうまく行った。
こちらににお世話になりました。

gitのInstall

sudo port install git-core  

MacVim kaoriya環境

1.MacVim Kaoriyaをダウンロード

ここからダウンロードしてインストール。

2.$HOME配下に.vimディレクトリ生成、.vimrcファイル生成、.gvimrcファイル生成

3. vimrcファイル記述

Windows用の_vimrcを持ってきた

4. gvimrcファイル記述

Windows用の_vimrcを持ってきた。

5.各種プラギンを管理するBundleインストール

こちらを参考にさせて頂きました。
.vimフォルダにgitで引っ張ってくる
git clone git://github.com/gmarik/vundle.git  

6.Bundleで各種プラギンをインストール–

Bandleは、
Bundle 'Shougo/neocomplcache'
Bundle 'scrooloose/nerdcommenter'
Bundle 'tpope/vim-surround'
Bundle 'thinca/vim-ref'
Bundle 'thinca/vim-quickrun'
Bundle 'kana/vim-fakeclip'
Bundle 'scrooloose/nerdtree'
Bundle 'chrismetcalf/vim-yankring'
vimで:BundleInstallを。と。

7.Windows環境と共存

こちらこちらこちらを参考にさせていただきました。 誠に感謝です。ありがとうございました。
Windows環境でのsubmodule updateがうまく行かなかったため、
git rm でインデックスを削除してから
submodule add /dotfiles/vundle.gitしてwindows環境にも再度addしました。

その後のBundleInstallで[set shellslash]があるためにインストールにコケていたので
Install時はvimrcのset shellslashをコメントアウトしてインストールを実行。

これで同期ができました。

macのターミナルから、
windowsのgitbashから、

両方からvim環境を更新して最新版を保持できるようになったというわけです。
※自分でみずらかったのでMarkDown設定は別にわけることにしよう。

2012年5月5日土曜日

MBP買いました。

あ、そうそう、

ブログの順番が逆ですが、

MBPを買いました。


買ってすぐ、通電確認だけしてSSDに換装したんですが、
LionのCD作るのに間違ってLionを再度買ってしまうわ
SSDに換装したもんだからiPhotoないわ、iMovieないわ、GarageBandないわって
もう一度HDDにして購入済み選択して
またSSDに換装するわなど、、

Mac初心者っぷりが痛すぎますが、
ようやっと開発環境も少し整ってきたんではないでしょうか。

念願のMacです。




muCommanderをほんの少しだけ覗いてみました。 (Alfredも使い始めました)


ソースを見るにあたり、まずはDLしてこないといかんのです。

・ソースDL
ソースはsvnで引っ張ります。
最初は0.9.0の最新版をDLしていじったんだけど ant app 後のjarでmainがないよ~(?)とかいろいろ言われるんで、調査を断念して(しょぼいですが)0.8.5をDLして対応することにしました。Javaなんてちゃんとやったことないしね。
svn checkout https://svn.mucommander.com/mucommander/tags/release_0_8_5 mucommander

・ビルド環境
antっていうビルドツールとantでのビルド時に必要なライブラリを管理(引っ張ってきたりしてくれる)ivyってやつが必要みたいですね。

・Java..
じつはMacOSXにはすでにインストールされていた。
(右往左往しててなぜかEclipse入れちゃってるし。。。)

・antインストール
こちらからhttp://ant.apache.org/bindownload.cgi
DLします。TOPページのニュースに最新版のリリースニュースからリンクたどれるし
左メニューのDownloadからでもダウンロードサイトに行けます。
DLしたらJavaの環境に展開します。
/Library/Java/antというフォルダになるわけですね。

こちらを参考にさせて頂きました。
http://homepage.mac.com/kurusaki/iblog/C403418858/E529803029/index.html
apache-ant-1.8.3-bin.tar.gz
環境変数はzsh用に設定することになります。
~/.zshrcに
PATH=$HOME/bin:/sbin:/usr/sbin:/usr/local/sbin:/Library/Java/ant/bin:$PATH
こんなかんじでantのパスを通しておく。追記したのは「/Library/Java/ant/bin:」。

・ivyインストール
こちらからhttp://ant.apache.org/ivy/download.cgi
DLします。
展開後の ivy-2.3.0-rc1.jar ファイルを
/Library/Java/ant/lib/に設置します。
/Library/Java/ant/lib/ivy-2.3.0-rc1.jarということになるわけですね。


■ソースをビルドしてみる。
コンソールでmucommanderフォルダに移動してantでOKです。
BuildSuccessの後にmuCommanderが起動します。
さらっと動かしてみます。


■ソースをapp形式にする。
ant コマンドに appというパラメタで実行します。
つまりant appとします。
同一階層のdistにapp形式で出来上がります。
その場で起動してみても動くんですが、Mac初心者の為、
一応、Applicationフォルダに入れて起動するか確認してみました。


これで準備が整ったのでいじります。


■どこを弄ろうか

最初はkey関連でgrepかけてAction系の基底クラス部分で動く際に
フィルタすりゃ対応も楽とかおもったんだけどそれだと違ったので中止。
(キーを設定している部分の制御をちょいといじくりゃいいんだろうと思っていた)
まぁ、結果から言うともっと上っ面な対応で終わりました。

■どこを弄ろうか2
結局
「任意」/mucommander/source/com/mucommander/ui/main/table/FileTable.Java
こちらを変更しました。

で、QuickSearchクラスで実装してるんだけど
そいつはmain配下のFileTableでstart,end制御されてて
        public synchronized void keyPressed(KeyEvent e) {
内でそのあたりの制御は実装されていました。

L.1835 あたりから
                //modify SLASHの時のみ開始
                if(keyChar == KeyEvent.VK_SLASH){
                    // Start the quick search and continue to process the current key event
                    start();
                    return;
                }

よーするにスラッシュじゃないと開始しないようにしたこと。
と、

L.1902 あたりから
            //modify isActive add
            else if(isValidQuickSearchInput(e) && isActive()) {

Active状態じゃないと検索文字列に追加しないようにした。

■Versionを変えておこっと。
混乱しないようにVersionも0.8.5.1ってことにしておいた。
「任意」/mucommander/source/com/mucommander/build/mucommander/structure.xml

L.30あたりを。


ホントはね、GUI上でQuickSerchmodeのON/OFFを切り替えられる設定ができるようにするの
がいいんだろうけど、、ね。


=少し迷ったこと=======
■これは諦めた未解決問題(0.9.0)

antからWarningが出た。
http://d.hatena.ne.jp/eggtoothcroc/20100526/p1
こちらの現象。ひとまず回避。

つぎのが厄介。
どうすりゃいいか右往左往した。
mainがないっていわれるんだけど、Lancharの中にあるし。
build.xmlのなかみてみたけど、あんま関係なさそうだし。
ふつーにコンパイル実行時は起動して動くんだけどなぁ。。

Exception in thread "main" java.lang.NoClassDefFoundError: mucommander
Caused by: java.lang.ClassNotFoundException: mucommander
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

結局いろいろ調べたけど、
もういいや。
諦めました。



=今後の展開(できたらいいなぁと思うこと)====
ActionManagerで管理されたActionをキーから取得してきて
Actionのperformを実行しているのだけど、
つまり、このアクションに選択パスを渡すことさえ出来れば
他のActionと同様に実装して、内部でsvnコマンド叩いて。。
ってやればsvnコマンドを叩けるので今のだいなにより近づくんだけどね。
という話です。
あとはQuickSearchモードでnで後方への検索、Nで前方への検索
をやってみたいなぁ。。と。
多分半年くらいは触らないでしょうけど。



=Alfredについて=
QuickSilver、、Preferenceを開くと落ちるので困ってたら
@asanoさんがAlfred教えてくれました。
すごく困っていたのでかなり良いです!!こういうのいい。


実際使ってる人に聞いて動いてるの見て
ってのがいいですね。
ホント感謝です。
@flame1980さん、@asanoさん
ありがとうございました。
おしまい。

muCommanderを使ってみてます


忘れるのでメモっておこうというネタが出たので更新しておきやす。

まず、ブログを完全に放置してました。
ここ最近の4ヶ月間、いろんなことがありましたので。
いまもいろんなことは起き続けています。
が、


GWなのと、ネタができたのでブログを更新します。



muCommanderを使ってみてます。



■muCommanderを教えてもらったよ。

Macを買ってから、随分と触われてなくてモヤモヤしてたんですが。
そう言いつつも環境を整えたくてちまちまとやってました。
Finderに慣れずMacで2画面ファイラをさがしてました。
Forkliftってソフトを入れて買うかどうか悩んでたんです。

すると、、
@flame1980さんになんとまぁナイスなソフトを
教えてもらいました!

「muCommander」

です。
keybind設定ができるので
こちらはだいなファイラと同様に設定して利用しています。
keyの設定の実体は/Library/Preferences/muCommander/action_keymap.xml

にあります。

■現在のkeybind設定
現在の設定は・・・



<?xml version="1.0" encoding="UTF-8"?>
<!-- See http://trac.mucommander.com/wiki/ActionKeyMap for information on how to customize this file -->
<keymap version="0.8.5">
<action id="GoToParent" keystroke="H" alt_keystroke="LEFT"/>
<action id="MarkNextBlock"/>
<action id="Mkdir" keystroke="shift M"/>
<action id="RevealInDesktop"/>
<action id="SwitchActiveTable" keystroke="ctrl L" alt_keystroke="ctrl H"/>
<action id="CopyFilesToClipboard" keystroke="ctrl C"/>
<action id="Mkfile" keystroke="shift N"/>
<action id="AddBookmark" keystroke="shift B"/>
<action id="Rename" keystroke="R"/>
<action id="MarkNextRow" keystroke="shift J"/>
<action id="Delete" keystroke="D" alt_keystroke="DELETE"/>
<action id="MarkPreviousRow" keystroke="shift K"/>
<action id="OpenInOtherPanel" keystroke="shift EQUALS"/>
<action id="ExploreBookmarks" keystroke="meta B"/>
<action id="ToggleHiddenFiles" keystroke="alt H"/>
<action id="FocusNext"/>
<action id="SortByDate" keystroke="meta D"/>
<action id="InternalEdit" keystroke="E"/>
<action id="ShowParentFoldersQL" keystroke="UP"/>
<action id="PasteClipboardFiles"/>
<action id="SortByName" keystroke="meta S"/>
<action id="SelectNextPage" keystroke="ctrl F"/>
<action id="SelectPreviousPage" keystroke="ctrl F"/>
<action id="MinimizeWindow"/>
<action id="SelectPreviousBlock" keystroke="G"/>
<action id="SelectNextBlock" keystroke="shift G"/>
<action id="Refresh" keystroke="F5"/>
<action id="Open" keystroke="L" alt_keystroke="ENTER"/>
<action id="SelectPreviousRow" keystroke="K"/>
<action id="MarkPreviousBlock"/>
<action id="Move" keystroke="M" alt_keystroke="meta M"/>
<action id="FocusPrevious"/>
<action id="Copy" keystroke="C" alt_keystroke="meta C"/>
<action id="SelectNextRow" keystroke="J"/>
<action id="LocalCopy" keystroke="W"/>
</keymap>



こんな具合です。
hで上の階層
jkで上下
lで下へ
Ctrl+h
Ctrl+jでウィンドウの移動
Shift+~で該当フォルダを他方のウィンドウへ
と行った感じで現在のだいなふぁいらに合わせてあります。
このファイルの設定はGUIで可能です。

内部ではこのkeystrokeからidを取得して該当するActionを
取得して実行しているようですね。


で、「うーん」という感じがひとつありました。

■問題

まず、上でも書いたようにmuCommanderでのkeybindをだいなふぁいらと同じ様にしています。
で、だいなでのファイルのインクリメンタルサーチは「/」で有効としてるんです。
で、muCommanderだとkeybind自体はそれっぽく決まるんですが
このインクリメンタルサーチが常にON状態のため、
通常のキー入力でインクリメンタルサーチが走ってしまいます。
かつ、keybind優先なのでhjklとかから始まるファイルにヒットできない。。。

運用のリズムとしては
hjklでフォルダ移動やら上下移動してて、
「/」でインクリメンタルサーチのモードにして
ファイル名までジャンプして、、というのを期待してるのだけど
/入力が効いてしまうのでhogeというファイル名までジャンプしようとすると
「/hoge」とかになるし、「d」だと削除になってしまったり、
当然hjklは使えない。。。


■では、どうすればいいか?

以前Forkliftを使おうかと迷っていた際に入れていたKeyRemap4MacBookで
調整も考えたけど、影響が他にもでるのでNG。

色々調べるけど今ひとつ。
同じ悩みをもった方が対応版を提供して下さっていたけど、
0.8.4っぽいのでやめて今後の自分カスタマイズを考えると
一度ソースをのぞいてみるのも良いかと思い。。。


就寝前に数カ月ぶりに趣味の時間をとったわけです(先日のことです。。)

(続く。)