上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--|スポンサー広告||TOP↑

環境
Mac OS X 10.4.11 (PPC; 日本語優先)
TextWrangler 2.3

ドキュメントからドロワーにフォーカスをスイッチ

Option + Tab

次のドキュメント

Option + Command + [ でトグル。
または
Option + Tab でフォーカスをドロワーに移動した後に矢印キー上下。

タブ幅の設定

見つけにくいですが
Preferences > Editor Defaults > Default Font
で、フォントの設定と同時に行えます。

個別のウインドウで開いているドキュメントをひとつのウインドウにまとめる

ドロワー内のアイコンを別のウインドウのドロワーにドラッグアンドドロップ。

もしくは、アプリケーション・スクリプト・メニュー (グローバルでない方。#! というメニューの隣) から Collect Text Documents into Front Window を実行。
どんなスクリプトなんだろうと思って
'~/Library/Application Support/TextWrangler/Scripts/Collect Text Documents into Front Window.scpt'
を開いてみると、document オブジェクトを move 命令で移動するというシンプルなものでした。

改行コードに注意

TextWrangler は通常、Windows の改行コード CR+LF を一回の改行として表示するが、LF と CR+LF が混在するファイルを開いたときに CR と LF の連続をそれぞれ一回ずつ個別の改行として表示することがある。


スポンサーサイト
02/10|Macコメント(7)トラックバック(0)TOP↑

環境
Mac OS X 10.4.11 (PPC; 日本語優先)
Safari 3.0.4

Amazon の
http://www.amazon.co.jp/商品名/dp/ASINコード/ref=ずらずらずらずら...
などという URL を短くして
http://www.amazon.co.jp/dp/ASINコード
にするときに、今までは

javascript:location.href=('http://www.amazon.co.jp/dp'+document.URL.match(/\/[0-9a-zA-Z]{10}(?:\/*|$)/))

というブックマークレットを実行して ASIN を取得していたのですが、これは URL 文字列のうち「スラッシュ + 10 個の [:alnum:] + スラッシュまたは行末」という正規表現に最初にマッチしたものを見ているだけです。

ということはもし 10 個の [:alnum:] で表記された商品名があるとして、それが URL 中で ASIN より先に来ていたらアウトだなと気がつきました。
では dp/ASIN という文字列を探して後方参照すれば良いかというと、...gp/product/ASINコード... なんて URL もあったりして (というかこっちが正式?) 厄介です。

面倒臭くなったので別の方法はないかとググってみました。
すると getElementsBy なんとかかんとか、というメソッドが。
使えそう。

javascript:location.href=('http://' + document.domain + '/dp/' + document.getElementsByName('ASIN')[0].value + '/')

document.domain というのも覚えたので使ってみました。
最初のスクリプトと比べて「関連商品を見る」のページから短縮できなかったりするのが残念ですが、ASIN が Amazon の商品識別番号であることを考えると、商品個別のページなら確実に getElementsByName('ASIN') を取得できるのではないかという気がします。

ついでに、ファイル名が商品の名前で始まる Webloc をデスクトップに作成する AppleScript。
タイトルの先頭にある Amazon.co... という文字列を削ってファイル名にします。URL はもちろん短縮済み。

set bs to «data utxt005C» as Unicode text

tell application "Safari"
try
set the_url to (URL of document 1)
if the_url starts with "http://www.amazon" then
set the_title to (name of document 1)
set sh_url to (do JavaScript "'http://' + document.domain + '/dp/' + document.getElementsByName('ASIN')[0].value + '/'" in document 1)
get {the_title, sh_url}
else
return
end if
on error
return
end try
end tell

set rbscript to "print $_.sub(/^Amazon" & bs & ".[" & bs & "w.]+." & bs & "s+/, '').gsub(/(?:^" & bs & ".|:)/, '-')"
set webloc_name to (do shell script "echo " & quoted form of the_title & " | ruby -Ku -ne " & quoted form of rbscript)

tell application "Finder"
make new internet location file at (path to desktop folder) to sh_url with properties {name:webloc_name}
end tell

tell application "Safari"
if not the_url is sh_url then
do JavaScript "location.href = '" & sh_url & "'" in document 1
end if
end tell


12/12|Macコメント(1)トラックバック(0)TOP↑

環境
Mac OS X 10.4.11 (PPC; 日本語優先)
BathyScaphe 1.6

BathyScaphe が 1.6 になって、3 ペインでも選択文字列を簡単に取得できるようになりました。

selected text of document 1

これだけで OK。
というわけで久しぶりに AppleScript を書いてみました。

BathyScaphe の選択文字列をテキストファイルに書き出す

set dq to (ASCII character 34) as Unicode text
set bs to «data utxt005C» as Unicode text
set orc to «data utxtFFFC» as Unicode text
set rgx to "/^" & bs & "d{1,4}" & bs & "s名前.+" & orc & "*.*(Mail)*.+投稿日.+/"
--またはこう書いた方が「レス番...名前...Mail...投稿日」の行を見つけやすいかも
--set rgx to "/^" & bs & "d{1,4}" & bs & "s名前:" & bs & "s.+" & orc & "*" & bs & "s(?:Mail)*:" & bs & "s.*" & bs & "s投稿日:.+/"

set rbscript to "if $stdin.lineno == 1; print $_.gsub(/" & orc & "/, ''); else; print $_.gsub(" & rgx & ") { | line |; " & dq & bs & "n" & dq & " + line; }.gsub(/" & orc & "/, ''); end"
--または本文をインデントしたい場合
--set rbscript to "if $stdin.lineno == 1; if " & rgx & " =~ $_; print $_.gsub(/" & orc & "/, ''); else; print ' ' + $_; end; else; if " & rgx & " =~ $_; print $_.gsub(" & rgx & ") { | line |; " & dq & bs & "n" & dq & " + line; }.gsub(/" & orc & "/, ''); else; print ' ' + $_; end; end"

tell application "BathyScaphe" to activate

tell application "System Events"
tell process "BathyScaphe"
click menu item "情報をコピー" of menu "スレッド" of menu bar 1
end tell
end tell

tell application "BathyScaphe"
activate
set the_text to selected text of document 1
set info to (the clipboard as Unicode text)
if not the_text is "" then
set file_path to (choose file name default location (path to desktop folder) default name "res.txt")
set file_path_posixpath to (POSIX path of file_path)
else
return
end if
end tell

set str to (do shell script "echo -n " & quoted form of the_text & " | tr '" & bs & "r' '" & bs & "n' | ruby -Ku -ne " & quoted form of rbscript)
set str to str & return & return & "------------------------------------------------------" & return & info

--'情報をコピー'で得た文字列は最後に改行が入っているので echo -n でちょうどよい.
--UTF-8
do shell script "echo -n " & quoted form of str & " | tr '" & bs & "r' '" & bs & "n' > " & quoted form of file_path_posixpath
--UTF-16
--do shell script "echo -n " & quoted form of str & " | tr '" & bs & "r' '" & bs & "n' | iconv -f UTF-8 -t UTF-16 > " & quoted form of file_path_posixpath

こんな感じで書き出せます。
res1.txt
res2.txt (インデントした場合)

また、これは iTunes でもたまにあることですが、このスクリプトは BathyScaphe 専用のスクリプトメニューからは実行できません。グローバルスクリプトメニュー (メニュー右の時計近くの) からなら動きます。
上記スクリプトの場合だと System Events の

click menu item ...

の行で引っかかっている模様。
ちなみにグローバルな方のメニューは '/Applications/AppleScript/AppleScript ユーティリティ' の設定で表示させることができます。


12/07|AppleScriptコメント(0)トラックバック(0)TOP↑

環境
Mac OS X 10.4.10 (PPC; 日本語優先)
curl 7.13.1

次を実行すると保存されたファイル名の濁点の位置がずれてしまいます。

$ curl -o "がぎぐげご.html" http://www.apple.com/index.html

curlo.png

濁点つき仮名が連続しているときによく起こるようです。

iconv で回避できます。
$ filename=$(echo -n "がぎぐげご.html" | iconv -f UTF-8 -t UTF-8-MAC)
$ curl -o "${filename}" http://www.apple.com/index.html


09/19|Macコメント(0)トラックバック(0)TOP↑

環境: Mac OS X 10.4.10 (PPC; 日本語優先)

sips -r

画像を回転させる sips -r の引数にはマイナスも使える
次のふたつは同じ。

sips -r -90 test.jpg --out test2.jpg
sips -r 270 test.jpg --out test2.jpg

Terminal の do script コマンドでシェルスクリプトに引数を与える

ls -avl "$1" を実行するスクリプト /Users/hoge/bin/ls.sh に Finder の最前面ウインドウの target を与えたい場合。

tell application "Finder"
set theDir to POSIX path of ((target of Finder window 1) as Unicode text)
end tell
tell application "Terminal"
activate
do script "/Users/hoge/bin/ls.sh " & quoted form of theDir
end tell

AppleScript で Mail.app の選択文字列を取得

tell application "System Events"
tell process "Mail"
tell scroll area 2 of splitter group 1 of window 1
set headerSelection to (value of attribute "AXSelectedText" of text area 1)
--ヘッダの選択部分
set bodySelection to (value of attribute "AXSelectedText" of text area 2)
--本文の選択部分
end tell
end tell
end tell
if headerSelection is not "" then
set theText to headerSelection & return & return & bodySelection
else
set theText to bodySelection
end if

AppleScript で BathyScaphe の選択文字列を取得してレス間に改行を挿入

tell application "System Events"
tell process "BathyScaphe"
set theText to (value of attribute "AXSelectedText" of text area 1 of scroll area 2 of splitter group 1 of window 1)
end tell
end tell
set bs to «data utxt005C» as Unicode text
set dq to (ASCII character 34) as Unicode text
set gsubText to (do shell script "echo -n " & quoted form of theText & " | ruby -ne 'print $_.gsub(/^" & bs & "d{1,4}" & bs & "s名前.+Mail.+投稿日.+/) { | matched |; " & dq & bs & "n" & dq & " + matched; }'")
set p1 to (paragraph 1 of gsubText)
if p1 is "" then
set gsubText to (do shell script "echo -n " & quoted form of gsubText & " | tr '" & bs & "r' '" & bs & "n' | tail +2")
end if
gsubText

.ace ファイルを展開できるソフト

The Unarchiver
UnaceX
MacUnace
UnaceX 1.2 と MacUnace 2.5 の実行ファイル (unace) はどうやら同じバージョン。

MacUnace の使い方。(bash)
file.ace がデスクトップにあるとして
$ cd ~/Desktop
$ unace e file.ace ./the_folder/

~/Desktop/the_folder にファイルが展開される。
***ディレクトリ名の後にスラッシュをつけないとエラーになる。***
展開先として指定したディレクトリが存在しない場合、新規にディレクトリが作成される。
展開先を指定しないとカレントディレクトリにバラバラと中身が展開される。


09/18|Macコメント(0)トラックバック(0)TOP↑
プロフィール

AquaBowler

  • Author:AquaBowler
  • 現在の Mac 環境:
    iBook Late2001
    Mac OS X 10.4.11
フリーエリア
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブログ内検索
RSSフィード
リンク
del.icio.us
feed meter

RSS feed meter for http://kotoerisan.blog16.fc2.com/

FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。