ラベル Mac の投稿を表示しています。 すべての投稿を表示
ラベル Mac の投稿を表示しています。 すべての投稿を表示

2013年4月15日月曜日

MarsEditでMarkdown表記で書いた記事をbloggerに投稿するためのAppleScriptを作った

なんかすごく長い記事になってしまったが、bloggerはMarkdown表記の記事をサポートしていないので、投稿するときの少し便利にするMarsEdit用のAppleScriptを作ってみました。

目次

MarsEditでMarkdownを変換したときの不満点

Markdown 記法でブログを書くで紹介されているように、MarsEditは最初からMarkdown記法をサポートしていて、MarkdownからHTMLに変換することも可能なのですが、不満点がいくつかあります。

変換したHTMLに一部不具合が出る。

例えば、下記のようなCode Blocksを含んだ文章をMarkdownで書いたとします。

Markdown sample

これを変換するには ⌘ + ⇧ shift + Tで一度リッチテキストに変換します。すると下記のようにCode Blocksにあった改行が無くなって一行になってしまいます。

Rich Text

さらに⌘ + ⇧ shift + TをしてHTMLに変換しても下記のように無くなった改行はそのままです。

Rich TextからHTMLに変換

プレビューでみると下記のようになり、ソースコードが一行で表示されすごく見づらくなっています。ソースコードをたくさん貼り付けたい場合、修正の作業量が多くなってしまいかえって不便になってしまいます。

HTMLの変換結果をプレビュー

HTMLにいったん変換するとMarkdownに戻せない。

Markdown → リッチテキスト → HTMLと変換した状態で、もう一度 ⌘ + ⇧ shift + TをしてもMarkdownに戻る事はなく、リッチテキストになってしまいます。

記事を投稿した後で、修正したいと思ってもHTMLを直接修正するか、どこかにMarkdown形式の記事を保存しておいて、それをコピーして使うと言うことになると思います。しかし、それではMarkdown記法をMarsEditで書いている意味が無くなってしまいます。

Markdown Scripts for MarsEdit

同じような不満を抱いている人がいないかと思い、ググってみるとMarkdown Scripts for MarsEditと言う、MarsEdit用のAppleScripts1を見つけました。

インストール

softpediaからMarsEditMarkdownScripts.zipをダウンロードして展開します。そして展開したファイルを~/Library/Application\ Support/MarsEdit/Scripts/にコピーします。

$ cd ~/Desktop/MarsEditMarkdownScripts/
$ cp *.scpt ~/Library/Application\ Support/MarsEdit/Scripts/
$ cp html2text.py ~/Library/Application\ Support/MarsEdit/TextFilters/Markdown_1.0/
$

インストールが終了すると、MarsEditのメニューバーにあるスクリプトメニューにTranslate Markdown to HTMLとTranslate HTML to Markdownが増えていると思います。MarsEditのスクリプトメニュー

Translate Markdown to HTML の不満点

早速、さきほどのMarkdownを変換してみます。変換の仕方は、エディタ画面上でスクリプトメニューのTranslate Markdown to HTMLを選択するだけでHTMLに変換してくれます。

メニューからTranslate Markdown to HTMLを実行

下記のようにCode Blocksの改行も保たれたまま変換されています。

Translate Markdown to HTMLの実行結果

プレビューでの表示も問題ありません。Translate Markdown to HTMLの実行結果をプレビュー

しかし、変換エンジンがオリジナルのMarkdown.plを使用しているため、Markdownの拡張シンタックスが使えないので表現力が落ちます。 但し、Translate Markdown to HTML.scpt変更すれば、別の変換エンジンを使用することが可能です。

Translate HTML to Markdown の不満点

Translate Markdown to HTMLで変換したHTMLをMarkdownに戻してみます。

メニューからTranslate HTML to Markdownを実行

微妙に変換後のインデントが変わってしまいます。

Translate HTML to Markdownの実行結果

このため何回かHTML ↔ Markdownの変換をすると、下記のように結果的に表示が崩れてしまいます。

Translate HTML to Markdownの実行結果をプレビュー

これでは、編集作業には向きません。

Toggle Markdown

AppleScriptを使用してMarkdownをHTMLにするという発想は良いアイディアだと思うので、その考えを少し転換して下記のような動きをするAppleScriptを作成してみました。

  1. MarkdownからHTMLを変換する。
  2. 変換は拡張シンタクスも変換出来るようにする。
  3. 変換時にオリジナルのMarkdownはHTML内にコメントとして挿入しておく。
  4. HTMLからMarkdownに戻すときは、コメントにしておいたMarkdownから復元する。

Toggle Markdownのインストール

kramdownのインストール(optional)

最初にkramdownをインストールします。拡張されたMarkdown記法を使用しない場合はスキップしてもかまいません。

$ sudo gem install kramdown
Password:
Successfully installed kramdown-0.14.2
1 gem installed
Installing ri documentation for kramdown-0.14.2...
Installing RDoc documentation for kramdown-0.14.2...
$

MarsEditの設定(optional)

こちらも、拡張されたMarkdown記法を使用しない場合はスキップしてもかまいません。

MarsEditはデフォルトでmarkdown表記のプレビューが可能ですが、これはMarkdown.plを使用してプレビューを行っています。このため、kramdownの拡張シンタックスを使うとうまく表示できません。そこで、markdownのプレビューにkramdownを使うように設定します。

{$HOME}/Library/Application Support/MarsEdit/TextFilters/kramdownにkramdownディレクトリを作成し、そこにShell Script ファイルkramdown.shを作成します。

$ midir  ~/Library/Application\ Support/MarsEdit/TextFilters/kramdown/
$ cd ~/Library/Application\ Support/MarsEdit/TextFilters/kramdown/
$ vi kramdown.sh

kramdown.shの内容は下記のようにします。

#! /bin/sh
CMD=/usr/bin/kramdown
CMDARGS="--auto-ids"
$CMD $CMDARGS $1

CMDARGSに設定するオプションはコマンドラインでkramdown –helpとすると出てきますので、お好みで指定します。

ToggleMarkdown.scptをScripts Folderにコピー

ToggleMarkdown.scptをダウンロードし、MarsEditのScripts Folderにコピーします。

$ cp ToggleMarkdown.scpt ~/Library/Application\ Support/MarsEdit/Scripts/
$

MarsEditのメニューバーにあるスクリプトメニューにToggleMarkdownが出たら完了です。

MarsEditのスクリプトメニューにToggleMarkdown

使い方

ToggleMarkdownを実行する度にMarkdown→HTML→Markdown→HTML→… と変換していきます。

ToggleMarkdownはMarkDownエンジンを次のような優先順位で探しに行きます。

  1. ~/Library/Application Support/MarsEdit/TextFilters/kramdown/kramdown.sh
  2. パスが通った場所にあるkramdownコマンド
  3. ~/Library/Application\ Support/MarsEdit/TextFilters/Markdown_1.0/Markdown.pl

次のようなMarkdownで書かれた文書を変換してみます。変換サンプル

スクリプトメニューのToggleMarkdownを実行します。MarsEditのスクリプトメニュー

すると、MarkdownがHTMLに変換されます。オリジナルのMarkdownは上部にコメントとして保存されます。MarkdownからHTMLの変換結果

上記の状態で、再度スクリプトメニューのToggleMarkdownを実行すると、コメントにしてあったMarkdownを元に戻します。この処理は、HTMLをMarkdownに変換している訳では無いのでHTMLを直接編集した場合は編集内容は消えてしまうので注意してください。HTMLからMarkdownに戻した結果

再度、ToggleMarkdownを実行するとHTMLに変換されます。MarkdownからHTMLの変換結果

欠点

ToggleMarkdownはHTMLのコメントとして、変換元のMarkdownを残すので投稿する記事のバイト数が増えてしまいます。これをなるべく避けるためHTML部分の余分なスペースと改行を削除して出力します。

その方がHTMLが難読化されるので、HTMLをうっかり修正してしまうと言うミスも防げると言う利点も…

おまけ

スペースと改行を削除しないほうが良い場合もあるので、削除しないスクリプトをToggleMarkdownNoCompress.scptとして置いておきます。

今まで、AppleScriptで作った事が無かったので、これが初めてのスクリプトです。言語の仕様をwebで調べて2日程度で作ったので動きがおかしな所もあるかも知れません。これを使用したことにより、今までのブログが消えたとしても一切関知しないと言うことで…

  1. download先がリンク切れになっているようですが、softpediaからダウンロード可能なようです。↩

2013年4月12日金曜日

Markdownを使う環境を整えてみた

素のhtmlを使って書くより、Markdownを使用した方がblogやドキュメントが書きやすそうなので、Markdownを使用する環境を整えてみました。

Markdownのインストール

Markdownはオリジナルの表記を拡張した、派生バージョンがあるらしいけれど、まずはオリジナルであるMarkdown.plインストールしてみました。

Markdown.plをインストールする

最初にMarkdownのサイトよりMarkdown.plをダウンロードし、インストールします。

# wget http://daringfireball.net/projects/downloads/Markdown_1.0.1.zip
# unzip  Markdown_1.0.1.zip
# cd Markdown_1.0.1
# chmod 755 Markdown.pl
# mv Markdown.pl /usr/local/bin/Markdown
#

試しにmarkdown.plを使用していくつかの文章を書いてみましたが、ちょっと凝った構造の文章を書こうとすると、HTMLを使わないと表現できなかったりするので、ちょっと貧弱かなと思いました。

kramdown コマンドのインストール

もう少し表現力高いものが欲しいので、シンタクスを拡張したバージョンを使ってみようかと色々と調べてみると、kramdownが機能が豊富で使いやすそうなので、これをインストールしてみました。

$ sudo gem install kramdown
Password:
Successfully installed kramdown-0.14.2
1 gem installed
Installing ri documentation for kramdown-0.14.2...
Installing RDoc documentation for kramdown-0.14.2...
$

これで、/usr/bin/kramdownにインストールされます。

kramdownのドキュメントを見ると、かなり拡張されていて表現力もオリジナルよりアップしています。これならばHTMLタグに頼らなくても大体の文章は書けるのでは無いかと思います。

MarsEditでkramdownを使いプレビューさせる設定

MarsEditはデフォルトでmarkdown表記のプレビューが可能ですが、これはMarkdown.plを使用してプレビューを行っています。このため、kramdownの拡張シンタックスを使うとうまく表示できません。

そこで、markdownのプレビューにkramdownを使うように設定します。

{$HOME}/Library/Application Support/MarsEdit/TextFilters/kramdownにkramdownディレクトリを作成し、そこにShell Script ファイルkramdown.shを作成します。

$ midir  $HOME/Library/Application\ Support/MarsEdit/TextFilters/kramdown/
$ cd $HOME/Library/Application\ Support/MarsEdit/TextFilters/kramdown/
$ vi kramdown.sh

kramdown.shの内容は下記のようにします。

#! /bin/sh
CMD=/usr/bin/kramdown
CMDARGS="--auto-ids"
$CMD $CMDARGS $1

CMDARGSに設定するオプションはコマンドラインでkramdown --helpとすると出てきますので、お好みで指定します。

ファイルの作成が完了したならば、プレビュー画面左下にあるPreview Text Filterプルダウンをkarmdownにすれば、kramdownの拡張シンタックスが正常にレンダリングされます。

karmdown でプレビュー

emacsの設定

emacsからもmarkdownを扱えるようにmarkdown-mode.elをインストール・設定をします。

markdown-mode.elのインストール

Emacs Markdown Modeのサ イトよりmarkdown-mode.elをダウンロードしてelispのディレクトリに置きま す。

$ cd ~/.elisp
$ wget http://jblevins.org/projects/markdown-mode/markdown-mode.el
$

.emacs.elの編集

.emacs.elに下記のコードを追加します。

;;==========================================================
;;	   Markdown モードの設定
;;==========================================================
(autoload 'markdown-mode "markdown-mode"
   "Major mode for editing Markdown files" t)
(add-to-list 'auto-mode-alist '("\\.\\(text\\|md\\|mdwn\\|mdt\\)\\'" . markdown-mode))
(defun markdown-custom ()
  "markdown-mode-hook"
  (auto-fill-mode -1)
  (setq markdown-command "/usr/bin/kramdown"))  ;; コマンドパスの設定
(add-hook 'markdown-mode-hook '(lambda() (markdown-custom)))

2013年4月6日土曜日

MacをSyslog Serverにする方法

リモートでSyslogを取りたい場面があって、手元にあるMac miniで取れば良いじゃんと思い方法を調べてみました。

最初にlaunchdの設定を簡単にできるアプリLingonをインストールします。

launchdを立ち上げると下記のような画面が出てきます。ここで、サイドメニューにあるSYSYTEM DAEMONSをマウスオーバーするとSHOWと言う文字が現れますのでこれをクリックします。

クリックすると隠れていたデーモンの一覧が出てきますので、com.apple.syslogdを探してクリックします。

次に画面右下にあるExpert Modeボタンを押下してエキスパートモードにします。

この画面で、下記の赤色で書かれた部分を追加します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EnableTransactions</key>
    <true/>
    <key>EnvironmentVariables</key>
    <dict>
        <key>ASL_DISABLE</key>
        <string>1</string>
    </dict>
    <key>HopefullyExitsLast</key>
    <true/>
    <key>JetsamProperties</key>
    <dict>
        <key>JetsamMemoryLimit</key>
        <integer>300</integer>
        <key>JetsamPriority</key>
        <integer>-49</integer>
    </dict>
    <key>Label</key>
    <string>com.apple.syslogd</string>
    <key>MachServices</key>
    <dict>
        <key>com.apple.system.logger</key>
        <true/>
    </dict>
    <key>OnDemand</key>
    <false/>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/sbin/syslogd</string>
    </array>
    <key>Sockets</key>
    <dict>
        <key>NetworkListener</key>
        <dict>
            <key>SockServiceName</key>
            <string>syslog</string>
            <key>SockType</key>
            <string>dgram</string>
        </dict>
        <key>AppleSystemLogger</key>
        <dict>
            <key>SockPathMode</key>
            <integer>438</integer>
            <key>SockPathName</key>
            <string>/var/run/asl_input</string>
        </dict>
        <key>BSDSystemLogger</key>
        <dict>
            <key>SockPathMode</key>
            <integer>438</integer>
            <key>SockPathName</key>
            <string>/var/run/syslog</string>
            <key>SockType</key>
            <string>dgram</string>
        </dict>
    </dict>
</dict>
</plist>

編集が終了したら、左上にあるsaveボタンを押下して保存します。保存後下記のコマンドを実行してsyslogdを再起動させます。

$ sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
$ sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
$

あとはクライアントの設定を行えば、コンソール.appにクライアントのログが記録されます。今回はMac OSX 10.7.5で行いましたが、他のバージョンでも出来ると思います。

2012年4月4日水曜日

iterm2で処理が終了したとき、Growlに通知する方法

iTerm2のドキュメントにあるInteresting Linksに載っていた方法ですが、リンク先が無くなっていたので備忘録として書いておきます。

iTerm2でコンパイル等の時間が掛かる処理をしている場合、処理が終了したときにGrowl通知させたい、と言う事があると思います。このような場合、下記のコマンドを実行することによりiTerm2からGrowlに通知する事ができます。

$ echo $'\e]9;Growlへ通知するメッセージ\007'
$

メッセージは日本語もOKです。

$ sleep 10;echo $'\e]9;起きたよ〜\007'
$

上記のコマンドでは、10秒後にGrowlに対して「起きたよ〜」のメッセージを通知します。

growl通知

実行する度に、エスケープシーケンスを打ち込むのは面倒なので、.bashrcに関数を定義して登録しておくと便利です。

growl() { echo -e $'\e]9;'${1}'\007' ; return  ; }

試しに、mercurialをportからコンパイルしてみます。

$ sudo port install mercurial +bash_completion; growl "mercurial のインストールが終わったよ"

インストール終了後に、growlに通知されました。

インストール終了のgrowl通知

2012年3月30日金曜日

iterm2の機能まとめ その3

かなり間が開いてしまったが、一応まとめてあったので書いておこう。iterm2の機能まとめ その3です。

隠し設定

ドキュメントに書いてあるのだけれども、設定しても変化がないものが多い。やり方が間違っているのか?

#タブの幅を動的に伸縮させる
defaults write com.googlecode.iterm2 UseUnevenTabs -bool false

#コンテキストメニュから選択したキーワードをgoogle検索(デフォルト)
defaults write com.googlecode.iterm2 SearchCommand -string "http://google.com/search?q=%@"

#コンテキストメニュから選択したキーワードをyahoo検索
defaults write com.googlecode.iterm2 SearchCommand -string "http://search.yahoo.com/search?p=%@"

#ホットキー押下時のアニメーション速度を設定 (変化無かった)
defaults write com.googlecode.iterm2 HotkeyTermAnimationDuration -float 0.25

#スプリットペインのぼかし量を設定 0(クリア) 1 (不鮮明) デフォルト値は  0.15
#値を変えても変化無
defaults write com.googlecode.iterm2 SplitPaneDimmingAmount -float 0.25

# フォント幅を調整(変化無かった)
defaults write com.googlecode.iterm2 HiddenAdvancedFontRendering -bool true
# フォント幅はマイナスの値で0に近づく程薄くなり、遠くなるほど厚くなります
defaults write com.googlecode.iterm2 HiddenAFRStrokeThickness -float -0.1
    
# フォアグラウンドタブにGrowlの通知を受信したい場合 (変化無かった)
defaults write com.googlecode.iterm2 GrowlOnForegroundTabs -bool true

独自のエスケープコード

カーソルの形状の設定

^[]50;CursorShape=N^G
N=0, 1, 2
0: Block
1: Vertical bar
2: Underline
echo -e "\033]50;CursorShape=0^G"

インサートモードの時にカーソルを細くしたいならば.vimrcに下記の設定をします。

let &t_SI = "\]50;CursorShape=1\x7"
let &t_EI = "\]50;CursorShape=0\x7"

ウインドウタイトルとタブの背景色

ウインドウタイトルとタブの背景色を変更するには次のようにします

^[]6;1;bg;red;brightness;N^G
^[]6;1;bg;green;brightness;N^G
^[]6;1;bg;blue;brightness;N^G
Nは0から255までの十進数です。

bashだと下記の例では背景が紫色になります

echo -e "\033]6;1;bg;red;brightness;255\a"
echo -e "\033]6;1;bg;green;brightness;0\a"
echo -e "\033]6;1;bg;blue;brightness;255\a"

2012年2月23日木曜日

iterm2の機能まとめ その2

前回に続いてiterm2の機能まとめ その2です。まとめてみると知らなかった便利機能が出てきて目から鱗です。

マウスレステキスト選択

マウスを使用せずテキストを選択する場合は、cmd+fで検索窓を開いて選択したい文字のキーワードを打ち込みます。検索候補が複数ある場合は下記のショートカットで候補間を移動出来ます。

  • cmd+g:前候補に移動
  • cmd+shift+g:次候補に移動
Split Horizontally

選択したい文字列に移動したらば、tabキーで選択範囲を後ろへ広げます。shift+tabキーで選択範囲を前に広げます。

  • shift+tab:選択範囲を前に広げます Split Horizontally
  • tab:選択範囲を後ろへ広げます Split Horizontally

画面分割

iTerm2は、複数のセッションを複数の"ぺイン(窓枠)"にcmd+dやcmd+shift+dで分割表示する事ができます。ペイン間の移動は下記のショートカットになります。

  • cmd+opt+←:左のペインに移動
  • cmd+opt+→:左のペインに移動
  • cmd+opt+↑:上のペインに移動
  • cmd+opt+↓:下のペインに移動
  • cmd+[:前ペインに移動
  • cmd+]:次ペインに移動

現在位置のマーク/マークへのジャンプ

cmd-shift-mでセッション内の現在位置をマークします。マークした位置にはcmd-shift-jでジャンプ出来ます。(同一セッション内でのジャンプが可能で他のセッションにはジャンプ出来ません。)

最初にプロンプトが"etc(46)$"の所で現在位置をマークします。

Split Horizontally

しばらく作業したのでプロンプトが"etc(50)$"になりました。

Split Horizontally

上記の状態でcmd-shift-jとするとプロンプトが"etc(46)$"の場所へジャンプしました。

Split Horizontally

正規表現検索

cmd+fで検索窓が開きますが、虫眼鏡マーク横の下矢印により正規表現検索を有効に出来ます。正規表現はIUCシンタックスが使用されます。

Split Horizontally

オートコンプリート

タブまたはそのスクロールバッファ内に存在する任意のテキストを、そのタブ内で自動補完することができます。オートコンプリートを使用するには、補完したい単語の先頭の一部を入力してcmd+;を押下すればオートコンプリートウィンドウが開きます。

Split Horizontally

オートコンプリートウィンドウには、入力候補が20個表示されますが、更に文字を入力する事により入力候補を絞り込む事が出来ます。

候補を選びエンターキーを押下すると、その候補がコマンドラインに入力されます。

候補を選びtabキーを押下すると、その候補対する幾つかの候補が絞り込まれます。

ペースト履歴

テキストをコピーまたはiTerm2に貼り付けされるたびに、それがペースト履歴に追加されます。

cmd+shift+hでペースト履歴を表示する事ができます。文字を入力する事により履歴の絞り込みが出来ます。

Split Horizontally

Preferences > General > Save copy/paste の設定によりペースト履歴をディスクに保存する事も出来ます。

インスタントリプレイ

topコマンドやwgetの進捗バーの様なインタラクティブなプログラムは画面が上書きされてしまい、履歴を見ることが出来ません。 インスタントリプレイを使用すると、時間を遡るように過去のある時点の画面とまったく同じものをステップ実行で見ることができます

インスタントリプレイモードを有効にするには、cmd+opt+bを押下します。

Split Horizontally

インスタントリプレイモードでは、左右矢印キーで時間を前後に移動出来ます。インスタントリプレイから抜けるにはescを押下します。

Split Horizontally

デフォルトで各セッションは、インスタントリプレイの履歴を保存するために4メガバイトまで使用出来るように設定してあります。 これはPreferences > General > Instant Replay uses __ MB per sessionで設定可能です。

フルスクリーン

cmd-enterでフルスクリーン表示になります。フルスクリーン表示では透明度の設定が(画面に集中できるように)無効になります。cmd-uで透明度の設定を再度有効にすることができます。 (出来なかった)

256色モード

iTerm2は256色モードをサポートしています。 cshシェルでこれを有効にする には、設定(Preferences > Profiles > Terminal > Report Terminal Type)でxterm-256colorを選択します。

一部のアプリケーションでは、このモードをサポートするように構成する必要 があります。vimではvimrcにこれを追加します。

set t_Co=256

マウスフォーカス制御

このオプションはデフォルトでオフになっていますが、Preferences > General > Focus follows mouseで有効に出来ます。(Build 1.0.0.20120203ではPreferences > pointer > Focus follows mouseで設定出来ます)[iTerm2ウィンドウ間でマウスフォーカス制御が有効になるだけで、他のアプリケーション間だとフォーカス制御が働かないようです]

スマート カーソル カラー

ブロックカーソルを使用する場合、それはすべての背景色に最適なカーソルの色を選択するのは難しいです。スマート カーソル カラー(Preferences > Profiles > Colors)を有効にすると背景色に最適なカーソル色を動的に選んでくれます。

Growlをサポート

あなたのマシンにGrowlがインストールされており、iTerm2のGrowlを有効(Preferences > Profiles > Terminal > Enable Growl Notifications)にしている場合は、幾つかの端末状態をGrowlに通知させることができます。

Split Horizontally

Exposéのタブ

cmd-opt-eで全てのタブを一度に表示出来ます。

Split Horizontally

ウィンドウ アレンジメント

現在開いている、ウィンドウ、タブ、メニューオプションのウィンドウとペインのスナップショットをcmd+shift+sで保存する事が出来ます。

リストアしたい場合は、デフォルトに設定したアレンジメントの場合はcmd+shift+rで戻せます。それ以外のアレンジメントはメニューオプションのWindow > Restore Window Arrangementから選んでリストア出来ます。

iTerm2を立ち上げたときにリストアしたい場合は、Preferences > General > Open saved window arrangementを設定します。複数のアレンジメントの管理は Preferences > Arrangementsで出来ます。

Split Horizontally

燃え尽きなければ、その3も書こうかな...

2012年2月22日水曜日

iterm2の機能まとめ その1

iTerm2を常用していますが、一部の機能しか使用していないので、どんな機能があるのかしらべてみました。と言ってもここに書いてある事が殆どだけれども(笑)

iTerm2は頻繁にアップデートされているため、ここに書いてある事が古くなる可能性が高いです。ここでの記述はBuild 1.0.0.20120203のiTerm2を前提にしています。

タブ

iTerm2は複数のWindowセッションを開くことが出来ます。複数のセッションを開くには複数の方法がありあります。

  • Shell > New Window で新しいウインドウを開きます
  • Shell > New Tab で新しいタブを作成します
  • Shell > Split Horizontallyで現在のウインドを水平に分割して新しいセッションを開きます Split Horizontally
  • Shell > Split Verticallyで現在のウインドを垂直に分割して新しいセッションを開きます Split Vertically

タブは一般的なタブブラウザと同じような動作をします。タブをウインドウの外に出すことにより、新しいウインドウを作成できます

tab separate

デフォルトのタブタイトルは、現在動かしているジョブ名が表示されます。幾つかのシステムではカレントディレクトリが表示されます。

Tab alart

タブタイトルはPROMPT_COMMAND環境変数(bashを使用)を設定する事によって表示は変更可能です。私の場合は、ホスト名:カレントディレクトリ(現在動いているジョブ名)を表示するように設定してあります。

PROMPT_COMMAND='echo -ne "\033]0;${HOSTNAME%%.*}:${PWD/$HOME/~}\007"'

他のshellを使用の場合は、How to change the title of an xtermを参考にして下さい。

タブはステータスによって色付けされます。現在開いているタブ以外のタブに出力があると、タブのタイトルがマゼンダ色に変化します。更に数秒後に赤色に変化して注意を促します。変化があったセッションのタブをアクティブにすると元の色に戻ります。これは、 Preferences > Appearance > Color tab labels on activityで無効に出来ます。

proc finish Proc done

マウス

マウスの主な用途はテキストの選択です。選択されたテキストは直ちにクリップボードにコピーされます。ダブルクリックすると単語を選択します。トリプルクリックすると行全体を選択します。クアドラプルクリック(4回クリック)すると、urlやメールアドレスと認識した文字列にマッチした所を選択する"スマートセレクト"を実行します。

shiftを押下しながらクリックすると、現在の選択エリアがクリックされた所まで拡張されます。

cmdキーを押下しながらurlをクリックすると、そのリンクをブラウザで開きます。

cmdキーを押下しながらファイル名をクリックすると、そのファイルをエディタで開きます。"FileName:LineNo"と言う形式の表示をクリックし開くアプリケーションがMacvim, Textmate,BBEditである場合には、ファイルを開き指定した行番号にジャンプします。

cmdキーを押下すると、選択文字列をドラッグ&ドロップできます。

cms+Ctrキーを押下しながら選択すると、長方形に選択出来ます。

rectangular selection

"Mouse Reporting(Preferences > Profile > Terminal)"が有効にしてあると、現在の動作している端末のアプリケーションがマウスを使用している時、optキーで一時的にマウスを無効にし選択を行うことができます。

Ctrキーを押下しながらクリックした場合は、右クリックをシミュレートします。

スクロールマウスをサポートします。

トラックパッド(ナビゲートに設定されている場合)を右または左に3本指スワイプすると、隣接するタブを選択します。(自分の環境では動作しなかった)

キーボード

便利なキーボードショートカットがあります。

  • "cmd+→","cmd+←"と"cmd+{","cmd+}"は前後のタブを移動します。
  • "cmd+数字" 数字番目のタブに移動します。
  • "cmd+opt+矢印"で分割されたウインドウ間を移動します。
  • "cmd+[","cmd+]"で分割されたウインドウ間を使用順に移動します。

Preferences > Keys で グローバルキーショートカット・Preferences > Profiles > Keys で プロファイル ローカルなキーボードショートカットを設定出来ます。

Preferences > Keys では、cmdのような修飾キーを変更する事ができます。

iTerm2は、グローバルホットキーを定義することができます。これを定義する事により、ウインドウを非表示にしたり、全面に表示したりできます。

コンテキストメニュー

画面上で右クリックするとコンテキストメニューが開きます。

Context menus

プロファイル

多くの設定はプロファイルに保存されています。 プロファイルは設定の名前付きコレクションであり、好きなようにあなたはそれらの多くを持つことができます。

ほとんどのユーザーは1つのプロファイルだけを持っていますが、あなたが頻繁に別のサーバーに接続するような場合、複数のプロファイルで管理する事は役に立つかもしれません。

プロファイルの主な特徴は、プロファイルに使用するコマンドを関連付け、それを開始時に実行する事が出来ます。例えばexample.comに頻繁にsshでログインするならば、example.comのプロファイルを作成し、"ssh example.com"を自動実行する設定をする事ができます。

Profiles

その2に続きます。多分…

2011年11月30日水曜日

Bose SoundLink Wireless Mobile speaker を買おうと悩んでいたらApple TVを買っていた

BoseのSoundLink Wireless Mobile speakerが日本でも発売されると聞いて物欲指数上昇中でした。ipadではTuneIn Radio Proを、MacではRadiumを使ってjazz系のラジオを聴いているのですが、やはり内蔵のスピーカーではもの足らないので、ある程度音がよいスピーカーで聴きたいと思ったからです。このスピーカーはbluetooth対応なので実機のそばにスピーカを置かずに使えるので邪魔にならないと言うのも物欲指数上昇ポイントのひとつです。

SoundLink Wireless Mobile speaker

アメリカでの価格は$299、それに対して日本での価格は36,750円。1ドル70円代後半の時代にこの価格は高すぎるだろうと、個人輸入出来るショップを探してみるとSMARTHOMEと言うサイトが日本へ配送可能らしい。送料は$37.98で商品とあわせて$336.98となり1ドル=80円としても27,000円程度で買えることになる。

危うくポチりそうになったのだけれども結構高額なので、冷静になって既に持っているアンプとスピーカーを有効活用できないものかと調べてみました。すると"Apple TV"や"AirMac Express"を使えばairplayを使用して無線・有線経由で音声データを送れる事が出来るらしい。これだと1万円程度でワイヤレスなオーディオ環境を構築できるので、こちらに急遽変更することにしました。

airplay対応の機種は少ないながら幾つか出ていますが、サードパティ製のairplayのアンプやスピーカーなどは高いので却下w 一番安価な"Apple TV"か"AirMac Express"を選ぶことにします。

"AirMac Express"は無線ルータですが、付属機能としてairplayが使えるようです。アナログ出力もあるのでアナログアンプと接続も直接できます。しかし、無線ルータは既に持っている。発売時期が2008年と古いので、新しい製品が出ると悔しい思いをしそうな気がします。なにより、ネット上で評判をみると熱がこもりやすいので故障しやすいとの事なので、汎用性の高そうな(動画も見れるし)Apple TVの方が良さそうです。

AirMac Express

"Apple TV"の場合、出力がオプティカルのみでアナログアンプに接続するには、デジタル→アナログ変換するDCコンバータを別途買う必要があります。

Apple TV

ネット上で調べてみると同じ事を考える人がいるようで、"Apple TV"にDCコンバータをかましてアナログアンプに接続している方々がおられました。その中で評判が良かった ハイパーツールズ デジタル→アナログ音声変換器 DCT-3を選択してみます。

DCT-3

買うものは決まったので、最安値を検索して…と言っても"Apple TV"は値引きしている所がほとんどありません。2〜3日グダグダと安いところは無いかと探していると、なんとamazonのマーケットプレスで中古-新品同様のApple Tvが7,147円で出されています。出品者はwarehouse_deals_jp。なんか怪しそうだと思いつつ検索をかけてみると、アマゾンが商品を中古販売する時に使うIDらしい事がわかったので即注文w 同時にハイパーツールズのDCT-3と同等品と思われるランサーリンク DCT-3が安かったのでこちらも注文。合計して送料込みで11,127円と比較的安く買えました。

注文合計

届いたApple TVは箱の角が多少凹んでいる程度の未開封新品でしたので、お買い得だったと思います。

届いたApple TV

早速開封し、接続して使っています。そのうち感想でも書こうと思います。

開封したApple TV