上記の広告は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.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↑

環境
Mac OS X 10.4.10 (PPC)
BathyScaphe 1.5 (110)
OnMyCommand 1.8.0

BathyScaphe の選択文字列を OnMyCommand の オブジェクト __OBJ_TEXT__ で取得してテキストファイルに書き出すと改行が反映されない問題について。

__OBJ_TEXT__ を % で渡す設定にして

echo "__OBJ_TEXT__" | ruby -ruri -n -e 'print URI.unescape($_)' > test.txt

などとしてもよいようですが、OMCEdit の編集ウインドウで "その他" タブを選び、"__OBJ_TEXT__ の改行コード" という項目を "Unix(LF) を Mac(CR) に変換" に設定すると

echo __OBJ_TEXT__ > test.txt

を実行するだけで改行が反映されるようになります。

しかしちょっと困ったことが。
echo が文字列の最後に改行を付加するので

「改行が CR に変換された __OBJ_TEXT__」+ 「echo が付加した LF 改行」

という形となり、選択部分の改行は CR なのに 最後だけ LF というヘンテコな内容になってしまうのです。
書き出したファイルはどうせ自分しか使わないんだからそのくらいどうってことないような気もしますが、選択部分が改行で終わっていた場合

文字列(CR)
文字列(CR)
文字列(CR+LF)

と、最後だけ Windows 改行になってしまい、テキストエディタで開いたときに改行が一つ分無視されることになります。
これはなんとなく嫌ですね。
なので

echo -n __OBJ_TEXT__ > test.txt

として echo の改行を抑止するか、または tr で改行コードを CR か LF に統一してしまうのがよいです。

LF で統一
echo __OBJ_TEXT__ | tr '\r' '\n' > test.txt
CR で統一
echo __OBJ_TEXT__ | tr '\n' '\r' > test.txt

ファイルに >> で追記する場合を考えると最後は必ず改行で終わっている方がよいので、echo -n より tr がおすすめですか。

crlf-20070729.png


07/29|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ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。