Macでtmuxを使うときのメモ

Macには,pbcopy/pbpasteという標準入力をクリップボードへコピー/クリップボードの内容を標準出力へ出すコマンドがある.
とても便利で,次のように使う.

# hoge.txtのうち,行頭が「abc」以外の行をコピー
cat hoge.txt | grep -v ^abc | pbcopy

こうすることで,Command+vで他のプログラム等に貼り付けることができる.
例えば,ブログにプログラムのコードや実行結果を貼り付ける時などに役立つ.

逆に,Webからコピったものをコマンドラインプログラムの入力として使いたい場合,

# クリップボードの内容をソートして最後の20行を出力
pbpaste | sort | tail -20

という風に使える.

が,問題があって,tmuxを使っている場合うまく動かない.
そこで,reattach-to-user-namespaceというのを使う.
詳しくは

X環境のクリップボードやOS Xのペーストボードとtmuxのバッファを連携する方法

あたりを参照.

ざっくりいうと

git clone https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard.git
cd tmux-MacOSX-pasteboard
make
mkdir -p /usr/local/bin
cp reattach-to-usernamespace /usr/local/bin

しておき,tmuxの設定ファイル, ~/.tmux.confに以下を追記する.

# tmuxでコピーが働かない問題
set-window-option -g automatic-rename off
set-option -g default-command "reattach-to-user-namespace -l zsh"
set-window-option -g automatic-rename on

ちなみに,/usr/local/binにPATHを通しておくこと.

これで,tmux環境下でもpbcopy/pbpasteが利用できる.

Metafile to EPS Converter

これまで論文に図を乗せるときは,PowerPointで作ってwmf2epsを使って変換していた.
wmf2epsの詳細についてはこちらのページが参考になる.

これを入れると,PowerPointで作った図をコピー&ペーストするだけでemfかwmfファイルが作れ,そこからボタンひとつでepsに変換できる.

が,Windows 8にしてから使えなくなった.ドライバがWindows 7までのようで.

そこで途方に暮れていたが,先日Metafile to EPS Converterというものを見つけた.

これも同じぐらい簡単で,ほぼコピー&ペーストでepsファイルが作れる.

高解像度やめました

MacBookProRetina 15inchを,1680x1050で使用していたが,ちょっと思い立ってディスプレイに最適(Retina)で使用することにした.

画面が狭くなった分,各種アプリケーションの使い方も変更.Lionから導入されたフルスクリーンモードを積極的に使うことにした.

常時起動しているものは,iTerm,MacVim,Chrome,Evernote,Mailの5つ.これらをフルスクリーンにして利用する.切り替えはこれまで通りCommand+Tabで行っている.

しばらくこの設定で使ってみる.

このMacBookのケース良い

EvernoteのWebページには,Evernote Marketがあり,色々販売されている.

今日見てて良いなと思ったのがこれ.

15 INCH DIVER SLEEVE FOR EVERNOTE, GRAY MELANGE

MacBookのケース.伸縮性のある素材を使っていて,ジッパーがなく,ビョーンと伸ばしてMacを出し入れするっぽい.ジッパーがないので傷がつかないのも良い.

13inch MacBookAir用と,15inch MacBookPro用が用意されている.

MacのFinderショートカット

とても良いサイトを見つけた.こちら→ MacのFinderのキーボードショートカットまとめ

特に,Command+↓で選択中のフォルダへ,Command+↑で親フォルダへ移動できるのが便利.一気に作業効率が上がった.

また便利なのが,Command+←→やCommand+マウスクリックでフォルダを複数選択したあと,Command+↓で選択したフォルダをすべて別ウインドウで開ける機能.複数フォルダ内に分散したたくさんの画像を目視で確認する時などに有用.

Fedora 20素晴らしい

先日メインマシンをFedora 19から20へアップグレードしたが,また新たに別マシンにFedoraをインストールすることになった.

インストールも非常に簡単.DVDを入れて起動するとGUIでLive DVDとして起動するかインストールするかを聞かれ,インストールを選択すると,インストールが始まる.

インストール時にやることといえば,言語の選択,パーティションの選択と,ユーザ作成ぐらい.あとは勝手に進む.最後に再起動してDVDを取り出せばOK.

画像処理の研究をやっているとOpenCVをよく使うが,開発環境のインストールも非常に簡単.

yum groupinstall "C 開発ツールとライブラリー"
yum install opencv-devel

でOK.これでmakeとかgccとか必要なツールと,OpenCVを使った開発に必要なライブラリがインストールされる.しかも,gccのバージョンはかなり新しい4.8.2で,OpenCVのバージョンも2.4.7(最新版は2.4.8)と嬉しい.また,Pythonも2.7.5が入っている.

CentOSで開発しようとすると,gccもOpenCVも古くて,まずgccをソースコードからコンパイルして入れ,さらにOpenCVをコンパイルしていたが,Fedora 20やっぱり素晴らしい.

LinuxでOpenCV使った開発はFedora 20がとても良いと思う.

Skim.app使ってます

この時期,卒修論の添削をしている.直接学生に直接会って返却することが出来る場合は紙ベースのやりとりをするが,休みの日等で直接あって返却出来ない場合,PDFベースのやりとりになる.

Acrobat ReaderでもPDFに注釈を付けられるけど,最近MacのアプリのSkim.appを使っている.

アップデート

 

ツールバーはこんな感じ。

skim

ひと通りのことができることがわかると思う。下線や打ち消し線を弾いたら、クリックしてコメントも記入できる。

 

grepでマッチしたファイル名一覧を取り出す

vimで,「特定の文字列を含むファイルだけを開く」といったことをやりたいとする.
実際,例えば関数getHoge()を呼び出している関数を含むファイルだけをvimで編集したいというようなことがある.

まず、grepして、探したい文字列を検索して、該当するファイルを開けばいい.
ここで使うのが grep の -l オプション.普通 grep はマッチした部分と、そのファイル名を画面に出力するけど、この -l オプションをつけると、マッチした部分は表示されず、ファイル名の一覧が表示される。これを xarg を使って vim 等に渡せばいい。
結果的に

grep -l "getHoge()" *.cpp | xarg vim

でOK.

Fedora19 -> Fedora 20 のアップグレード

Fedora20がリリースされ,rpmfusionもFedora20用のが出ていたので,アップデートに踏み切った.

やり方はここを見ればわかるとおり,とても簡単.以下の操作はすべてrootユーザで行なう.

fedupというコマンドを使うので,まずそれをインストールする.

# yum install fedup

ついでにfedora-releaseも更新しておく.

# yum update fedora-release

あとは,fedupを使ってFedora 20へ更新.

# fedup --network 20

これで,ネットワーク越しにFedora20へ更新ができる.
僕の環境では6000個以上のパッケージをダウンロードして更新が行われたので,とても時間がかかった.

処理が終わったら再起動.
すると,起動オプションにfedupが追加されていて,そこからアップグレードが開始される.

Mac OSX (Mountain Lion) の homebrew で OpenCV のインストール

パッケージ管理システムのHomebrewを使って,OpenCVをインストールしたときのログです.
ここでは,Homebrewの設定は済んでいるものとします.
このへんのページを参考にしてください.

まず,OpenCVに必要なライブラリをインストールします.
必要なものは

  • TBB ( Intel Threading Building Block ) 並列化ライブラリ
  • Qt GUIライブラリ

です.
それぞれ

 brew install tbb
 brew install qt
 

でインストールします.

次に,OpenCVをインストールします.
これもbrewコマンドで一発ですが,上でインストールしたライブラリを有効にするためにオプションを追加します.

 brew install opencv --with-tbb --with-qt
 

僕の環境では,これではコンパイルが通りませんでした.
コンパイルにllvmを使うように指定します.

 brew install opencv --with-tbb --with-qt --use-llvm
 

これでコンパイルが通るかと思います.

僕はインストール前に,

 brew edit opencv
 

して,--with-qtの行を参考に,--with-cudaと--with-eigenというオプションを追加して,各ライブラリを有効にしたコンパイルをしています.