Open/Saveダイアログで指定のフォルダに移動する簡単な方法 with QuickSilver

MacのOpen/Saveダイアログで簡単に指定のフォルダに移動したい、つまりフォルダをブックマークしておいてクリック一発で指定したいんですが、いい方法が思い浮かばなかったので、しかたないのでDefault Folder X買うしかないかな〜といろいろやってると、まぁまぁの方法を発見。

あ、フォルダをダイアログにD&Dするのは知ってます。以前からその方法は使ってますが、Finderから持ってこないといけないのでFinderに表示してないフォルダには使えません。

で、その方法は

  1. ダイアログでCommand+Shift+Gで「フォルダの場所を入力」シートを表示する。
  2. QuickSilverでフォルダを選択して、Copy to Clipboard。
  3. シートにペースト。

という手順です。

クリック一発で指定とはいきませんが、指定したいフォルダをいつでも選べるのでブックマークより汎用性があるかもしれません。

ちなみにQuickSilverでCommand+Shift+Gを何かトリガーに指定していると、シートが表示されません。私はCommand Window with Selectionにバインドしていたのでショートカットを変更しました。

自分でQuickSilverのアクション書いて、ペーストまで自動化するのがいいかもしれませんね。

Command+Option+FでGoogleの検索はQuickSilverで

Command+Option+FでGoogleの検索ボックスに移動

FirefoxとSafariで使えます。

覚えておくとマウスに手を運ばなくてもいいので便利。

[From 隠された10の便利なショートカット | Macの手書き説明書


以前はFirefoxやSafariでそのまま使ってましたが、今はCommand+Option+FにはQuickSilverでGoogle検索に割り当ててます。FirefoxやSafariがアクティブでなくても使いたいショートカットなので。

ピクチャ 1 ピクチャ 1

ことえりのローマ字入力を改造

サブテーブルとは、先頭の No. で指定され、そこから NodeFlags が偶数になるまで No. の昇順に並んだ、テーブルの行の集合である。
初期行とは、サブテーブルの一つで No.240 で指定されるもの。 実行の開始時点では初期行にいる。
サブテーブルからサブテーブルへの遷移は入力に従って決まる。
NodeValue が 0 ならば(サブテーブルはただ一つの行からなるはずだ)入力を消費せずに Cursor 値で指定されるサブテーブルに遷移する。
それ以外の場合、サブテーブルの中の行で NodeValue が入力に合致するものがあればその行の Cursor 値で指定されるサブテーブルに遷移する。 ただし Cursor 値が -1 ならば遷移先は初期行とする。
残った場合、即ち、入力に合致する行が無ければ、初期行に遷移する。
遷移に際して、次の動作を行う。
Cursor が 0 以上でかつ NodeFlags が {0,1} かつ Result が 0 ならば、エラーキューに NodeValue を送る。
Cursor が 0 以上でかつ NodeFlags が {0,1} かつ Result が 0 でないならば、エラーキューに Result を送る。
Cursor が 0 以上でかつ NodeFlags が {4,5} ならば、エラーキューに NodeValue を送り、出力キューに Result を送る。
Cursor が -1 ならば、出力キューに Result を送り、出力キューを出力に流して、エラーキューを破棄する。
Cursor が -1 でかつ NodeFlags が {3} ならば、上記に加え入力を一つ戻す。
合致行なしでの遷移の場合、エラーキューを出力に流し、出力キューを破棄する。

[From Floating Log 8.4.2007]

を参考にして、ことえりのローマ字入力を少し変更してみた。ciなどcでサ行になるのをカ行に変更。うまくいったけど、今後Dvorak-JP化するには修正がもっと複雑になるだろうからちょっと心配。

OmniFocus AppleScriptいろいろ

いろいろといってもまだ少ないですが。

プロジェクト・アクション・子アクションの作成

tell application "OmniFocus"
	tell front document
		set oFolder to folder "オークション"
		tell oFolder
			set oProj to make new project with properties {name:"new proj"}
			tell oProj
				set oTask to make new task with properties {name:"new task", note:"This is a new task."}
				tell oTask
					make new task with properties {name:"child task"}
				end tell
			end tell
		end tell
	end tell
end tell

Inboxにアクションを追加

tell application "OmniFocus"
  tell front document
    make new inbox task with properties {name:"New Task", note:"This is a new task."}
  end tell
end tell

クイックエントリの表示

tell application "OmniFocus"
  tell quick entry
    activate
  end tell
end tell

ecto3がatom0.3に対応→Livedoor Blogで使用可能に

ecto3.0b54になってatom0.3に対応してくれました。

infinite-sushi.com – pluginsにあるAtom03.zipをダウンロード&解凍して、ダブルクリックしてインストール。(か手動で~/Library/Application Support/ecto3/blogsystems/に置く)

アクセスポイント:http://cms.blog.livedoor.com/atom/
システム:Atom 0.3
ユーザネーム・パスワードはLivedoorのを入力。

とすればオッケー(のはず。まだ投稿してないけどMac-de-cocolog: ecto3.0b54では送受信できたということです)。

CotEditorから投稿できるようにしようかと考えてたところだったので、無駄な努力をせずにすんでよかったですよ。

CotEditorからmixiに投稿するRubyスクリプト

CotEditorからmixiに投稿できると便利なんだけど・・・ということで、Rubyスクリプトを作成してみました。

まずwsseライブラリをgemでインストールします。

$ sudo gem install wsse

以下のスクリプトをCotEditorのスクリプトフォルダに保存して、実行権限をつけます。username, password, member_idは適宜書き換えます。
下記スクリプトには間違い(というか詳しくはコメントを参照ください)があって、17行目の「content = < <EOS」の「<<」の間に半角スペースが入ってしまってます。「< <」を「<<」に修正してお使いください。

#!/usr/bin/env ruby
#
# xx)pre.rb
#
# %%%{CotEditorXInput=AllText}%%%
require 'rubygems'
require 'wsse'
require 'net/http'

username = 'username@example.com'
password = 'password'
member_id = 0000000

title = STDIN.gets.chomp
summary = STDIN.read

content = < <eos


  #{title}
  #{summary}

EOS

header = {'X-WSSE' => WSSE::header(username, password),
'Content-Type' => 'application/atom+xml'}

Net::HTTP.start('mixi.jp', 80) {|http|
  response = http.request_post("/atom/diary/member_id=#{member_id}", content, header)
}

使い方
テキストの1行目にタイトルを、2行目以降に本文を記述します。それからスクリプトメニューからこのスクリプトを実行すると、mixiに投稿ができます。