Hatena::ブログ(Diary)

Koonies/こりゃいいな! このページをアンテナに追加 RSSフィード

2009 | 06 | 07 | 08 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 10 |
2011 | 01 | 02 | 05 | 06 | 07 | 08 | 09 |
2012 | 05 | 06 |

2012-06-11

Koonies2012-06-11

TortoiseHgのカスタムツールバーを設定する方法

TortoiseHg 2.4.1リリースされました。で、1つ前のバージョン2.4で追加されたカスタムツールバーはどうやって設定するのかずっと気になっていましたがようやく分かったのでメモを兼ねて、書いておきます。

設定方法

[tortoisehg-tools]

# Execute a mercurial command. These _MUST_ start with "hg"

# Note that we can use any built-in TortoiseHg icon

update_to_tip.command = hg update tip

update_to_tip.tooltip = Update to tip

update_to_tip.icon = hg-update

no title

上記のように設定ファイルへ[tortoisehg-tools]という項目を追加し、それに続けてコマンドの設定を書きます。それで書けたらソフトを再起動します。

.command必須で、.tooltip.iconオプション(無くても可)ということです。ちなみに上記の引用元のサイト記述例は

誤:update_to_tip.ico = hg-update

正:update_to_tip.icon = hg-update

という風にnが抜けているためアイコンが正しく設定できていないようです。

それとアイコンの設定にはicoファイルのフルパスの他、hg-updateのように内蔵アイコンも設定可能みたいです。これ以外にも下記のアイコンが使える模様。

(右上のスクリーンショットはコレの一覧)

application-exit

document-new

edit-cut

edit-find

go-down

go-jump

go-next

go-previous

go-up

hg-annotate

hg-archive

hg-clone

hg-commit

hg-grep

hg-incoming

hg-log

hg-merge

hg-outgoing

hg-pull

hg-push

hg-qguard

hg-qpop-all

hg-qpop

hg-qpush-all

hg-qpush

hg-rename

hg-status

hg-tag

hg-update

mail-forward

process-stop

tasktab-refresh

thg-console

thg-log-load-all

thg-mq

thg-qreorder

thg-reporegistry

thg-sync

view-filter

view-refresh

さいごに

どうやって設定するんだろ、と1ヶ月もモヤモヤしてたのがスッキリしました。

よかったら参考にしてください。それでは。

2012-05-11

Koonies2012-05-11

TortoiseHgでAmendを使うと2つ前のコミットをやり直せる

TortoiseHgはバージョン管理ソフトMercurialWindowsフロントエンドで、つい先日にリリースされた最新版v2.4でAmendというコマンドが追加されました。Amendを使えば、お手軽に直前のコミットをやり直すことが可能になります。

以前のバージョンでもロールバックして、コミットし直せば同様のことが可能だった訳ですが、実際の操作手順としてはAmendを使った方がコミットのメッセージコピーする必要もないため地味に便利です。リリースされてからまだ数日ですが、既に何度もお世話になってます。

さてタイトルにも書いた「2つ前」の修正の話。

これまでは「1つ前」の修正ならロールバック、それ以上前の修正をやりたい場合はMQなどのエクステンションを使う必要がありました。

最新版では「1つ前」の修正ならロールバックまたはAmendのどちらでもOKになりました。という事はロールバックして、更にAmendすれば「2つ前」を修正できる??という疑問が湧いてきますよね。それで試してみたら、本当に出来ました

手順

1. まずはロールバック

2. 直前の変更点をシェルフ待避

3. コミットの画面にする

4. コミットボタンの隣の▼をクリックし、"Amend current revision"をクリック*1

5. するとボタン表示がコミット→Amendに変わり、「2つ前」のコミットメッセージが表示されるので、修正してAmendボタンをクリック

6. シェルフで待避した変更点を戻し、あとは普通にコミットをやり直す。

さいごに

Mercurialでも同様のことが出来そうな気がしますね。試してないけど。それでは。

*1:ただしAmendはMQエクステンションが有効でないと使用できないみたいなので注意!

2011-08-08

keyhacでクリップボード内のJavaScriptコードを整形/圧縮(JSBeautifier/SlimIt)

JavaScriptをさわってる人ならご存知の人も結構いそうなno title。JavaScriptコードを見やすく整形してくれるWebサービスです。

僕はブックマークレットを作る際など便利でよく使っているのですが、サイトを見てるとコマンドラインバージョンということでPythonコードでも公開されていました。探したらSlimItという圧縮する方も発見。

keyhac*1でクリップボード内のテキストに対して直接実行できたら便利だろうなと書いたのが ↓ のコード。

Win+Jで整形、Win+Sift+Jで高圧縮、Win+Ctrl+Jで低圧縮、というキー配置にしています。

from keyhac import *

## 関数を返す関数にするデコレータ
def ret_func(func):
    import functools

    @functools.wraps(func)
    def _ret_func(*args, **kw):
        @functools.wraps(func)
        def __ret_func():
            return func(*args, **kw)
        return __ret_func
    return _ret_func

## JobQueue/JobItem でサブスレッド処理にするデコレータ
def job_queue(func):
    import functools

    @functools.wraps(func)
    def _job_queue(*args, **kw):

        num_items = JobQueue.defaultQueue().numItems()
        if num_items:   # 処理待ちアイテムがある場合は、その数を表示
            print u"JobQueue.defaultQueue().numItems() :", num_items

        def __job_queue_1(job_item):
            return func(*args, **kw)

        def __job_queue_2(job_item):
            # print "job_queue : ", func.__name__, args, kw
            pass

        job_item = JobItem(__job_queue_1, __job_queue_2)
        JobQueue.defaultQueue().enqueue(job_item)

    return _job_queue

## JavaScriptコードを整形
# JSBeautifier : http://jsbeautifier.org/
@job_queue
def jsbeautifier():
    import jsbeautifier
    clipboard_text = getClipboardText()
    if clipboard_text:
        js_options = jsbeautifier.default_options()

        js_options.jslint_happy = True
        new_code = jsbeautifier.beautify(clipboard_text, js_options)

        setClipboardText(new_code)
        print
        print "/*  jsbeautifier  */"
        print "// before --------------------"
        print clipboard_text
        print "// after --------------------"
        print new_code

## JavaScriptコードを圧縮
# SlimIt : http://slimit.org/
# PLY : http://www.dabeaz.com/ply/
@ret_func
@job_queue
def jsminify(mangle=False):
    import slimit
    clipboard_text = getClipboardText()
    if clipboard_text:
        new_code = slimit.minify(clipboard_text, mangle)

        setClipboardText(new_code)
        print
        print "/*  SlimIt (mangle=%s)  */" % mangle
        print "// before --------------------", len(clipboard_text), "byte"
        print clipboard_text
        print "// after --------------------", len(new_code), "byte"
        print new_code

def configure(keymap):

    keymap_global = keymap.defineWindowKeymap()

    # JavaScriptコードを整形
    keymap_global["W-j"] = jsbeautifier

    # JavaScriptコードを圧縮(高圧縮)
    keymap_global["W-S-j"] = jsminify(mangle=True)

    # JavaScriptコードを圧縮(低圧縮)
    keymap_global["W-C-j"] = jsminify(mangle=False)

■ ライブラリのインストール

・JSBeautifier

https://github.com/einars/js-beautify/raw/master/python/jsbeautifier.py

↑ のファイルをkeyhacのextensionフォルダへコピーする。

・SlimItとPLY(コード解析)

https://github.com/rspivak/slimit

圧縮ファイルをダウンロードし、圧縮ファイルのsrcフォルダ下にslimitをフォルダごとkeyhacのextensionフォルダへコピーする。

http://www.dabeaz.com/ply/

圧縮ファイルをダウンロードし、圧縮ファイルのplyをフォルダごとkeyhacのextensionフォルダへコピーする。

■ さいごに

ブックマークレットをよく書くという方は特に便利だと思うので、よかったら使ってみてください。

■ 参考リンク

*1:Autohotkeyみたいなフリーソフトで、Pythonコードで色んなソフトのショートカットキーを設定できる

2011-01-31

Google Chromeで素早く再起動させる方法!

ブラウザを落とさず数日間使い続けていると、ページの読み込みが遅くなったり挙動があやしくなることがあります。そんなときは、再起動すれば元通りのサクサクのchromeに。

ただこの再起動ってのが若干面倒。FirefoxならQuickRestartってアドオンがあるんですが、chromeでは再起動系のエクステンションは今のところありません。

でも1クリックとまではいきませんが、それなりに素早く再起動する方法を見つけたのでご参考に。

1.「about:flags」を開く

ブックマークしておくとOK!

20110123110114

2.設定を変えて、すぐに戻す

どれでもいいので「有効にする」→(クリック)→「無効にする」→(クリック)→「有効にする」

20110123110115

3.ページの一番下に再起動ボタンが出現するのでこれをクリック

20110123110116

ちなみに最新のdev版(10.0.648.6)では上記の2・3の代わりに「about:flags」のページを開いてから、↓のブックマークレットを実行しても再起動できます。

javascript:restartBrowser();

(ちなみに別環境の安定版ではこのブックマークレットは動きませんでした)

さいごに

1クリックで出来ないのがイマイチ不満ですが、この方法を見つけてからは少しは快適になりました。それとabout:flagsについてはGoogle Chromeの隠し機能を有効にする呪文「about:flags」のおかげ知る事が出来ました。興味がある方はそちらもどうぞ!

追記 4/8

次の方法でも再起動できました。

1.新しいタブを開く。

2.そこで↓のブックマークレットを実行するとchrome://flags(about:flagsと同じ)へジャンプします。

3.そこでもう一度実行すると再起動できます。

javascript:(function(){if(location.href=="chrome://flags/"){restartBrowser();}else{location.href="chrome://flags";}})()

確認したchromeのバージョンは12.0.725.0devです。

追記 6/6

BATファイルを使う方法、Windows限定ですが以下の方法が一番手っ取り早い。

1.(準備)下記のコードを「restart_chrome.bat」として保存し、ツールバーのクイック起動などに置いておく。

2.再起動したくなったらこのBATファイルをクリックし、コマンドプロンプトの画面でEnterを押すと再起動します。

@echo off
echo Google Chromeを再起動
pause

taskkill /im chrome.exe

:: Windows XP 以前の場合は下記のパスを環境に合わせて修正
start "" "%LOCALAPPDATA%\Google\Chrome\Application\chrome.exe"

2011-01-20

サクサク軽快な!EijiroX(英辞郎のchrome拡張)を秀丸から使う!

英辞郎ってご存じですか?スペースアルク(http://www.alc.co.jp/)でも公開されている英和・和英辞書です。

オンラインなら無料で検索できてスゴイ便利。

だけどオフラインの環境でプログラムを書いたりすることが多くて、いちいちネットに繋がっている端末まで移動して、検索するというのが面倒になりAmazonで英辞郎 第五版を購入しました。

これで移動せずに検索できるようになり、便利になったな〜と思っていました。つい先日までは

でも↓の動画を見て衝撃を受けたのです!(10秒目あたりから注目)

D

なんじゃ!この圧倒的なスピードは!!!

これは是非とも使いたい!と、オフライン環境なのでGoogle Chromeも入っていなかったのでここからchromeの完全版インストーラをダウンロードし、ブラウザで英辞郎を検索する EijiroX - by edvakf in hatenaを参考にしながら拡張とTEXTのコンバートを実行しました。(TEXTコンバートは5回ほど失敗したが、タスクマネージャでchromeの優先度を高に変更したら無事変換できた)

これって便利だけど、さらにテキストエディタに連動させると更に良いのでは?と思って書いたのが今回紹介するマクロです。

★ セットアップ

1.次のブロックを「EijiroX.MAC」と名前を付けて保存する。

    //  chrome.exeのパス設定(\→\\と変えること!)
    $chrome_path = "C:\\Users\\(ユーザ名)\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe";
    
    if (selecting == 0) {
        //  入力ダイアログ
        $search_word = input("検索文字を入力(日本語はNG)", "word");
    } else {
        //  選択文字列の文字列取り込み
        $search_word = gettext(seltopx, seltopy, selendx, selendy, 1);
    }
    
    //  EijiroX起動
    run "\""
      + $chrome_path
      + "\" --app=\"chrome-extension://incofakicgjnjoggkkepbldklfocgafh/public_html/index.html#query="
      + $search_word
      + "\"";

(注意)2行目のchromeのパスは要変更!!!

2.マクロを登録

秀丸メニュー>マクロマクロ登録を選択

 タイトルEijiroX

 ファイル名:(1で保存したファイルを選ぶ)

20110120004924

3.右クリックメニューに登録

秀丸メニュー>その他メニュー編集ユーザーメニュータブを選択

 メニュー:選択中右ボタン で、[追加]ボタンを押して

 コマンドメニュー/マクロを選び、マクロ1:EijiroXを選択したら[追加]ボタンを押す

 最後に[OK]ボタン

20110120004925

以上で、セットアップは完了。

これで秀丸で、文字列を選択状態で右クリックすればEijiroXという項目が追加されているハズです。

20110120004926

↓で、EijiroXをクリックすると、スッとEijiroXが起動&サッと検索されます!

20110120004734

※この記事を書いている環境では、コンバートしてないので検索は出来ない(^^;

と、まあこんな感じです。ちなみに↑のマクロでは英語しか検索できません。多分日本語は渡すときにエンコードしなきゃダメなんだと思うんですがとりあえず英語が検索できればいいかなと。

(追記ここから)アプリケーションショートカットモードを使わなければ日本語もOKみたいです。日本語対応にしたい場合は下記のように修正してください。

      + "\" --app=\"chrome-extension://incofakicgjnjoggkkepbldklfocgafh/public_html/index.html#query="

 ↓こう変えるとOK!(--app= を取る)

      + "\" \"chrome-extension://incofakicgjnjoggkkepbldklfocgafh/public_html/index.html#query="

(追記ここまで)

ちなみに秀丸以外のエディタでも他アプリが起動できるマクロが搭載されていれば同様の処理で起動できるハズです。

そんな訳でEijiroXサイコーですので、是非使ってみては?

¥ 2,500
Amazonで詳細を見る by AmaGrea

2009 | 06 | 07 | 08 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 10 |
2011 | 01 | 02 | 05 | 06 | 07 | 08 | 09 |
2012 | 05 | 06 |
日記の検索

ads
最近のコメント
etc
あわせて読みたいブログパーツ