Hatena::ブログ(Diary)

四角革命前夜

2013年10月08日(火)

tmuxで^aをターミナルに送る

screenからの乗り換え組のため、プレフィックスキーがC-aな私です。

なのでC-eを押してターミナルの最後に移動することはできても、C-aを押してターミナルの最初に移動することはできません。

……だったのですが、あまりにも不便なのでC-a aでC-aを送るように設定しました。というかちゃんとtmuxを調べてなかったので、その設定方法がわからなかったのですが。

ちなみにUbuntuなどの場合はHomeキーとかEndキーを使ってました。

unbind a
bind a send-keys ^a

これでC-a aを押せばC-aが送られるのでカーソル(キャレット?)が先頭に移動します。今まで矢印キー押したりしてたので捗りそう。

2013年01月11日(金)

tmuxをインストールしたよ

tmux1.7をインストールしました。1.7では画面を分割した際に分割前のカレントディレクトリに移動してくれるようになってるのです。


libevent2.0.21-stableのインストール

最初にtmuxが依存しているlibeventをインストールします。

$ curl -O -L https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
$ tar xfz libevent-2.0.21-stable.tar.gz
$ cd libevent-2.0.21-stable
$ ./configure --prefix=$HOME/Binary/libevent
$ make all install

tmux1.7のインストール

続いてtmuxをインストールします。

$ curl -O -L http://downloads.sourceforge.net/tmux/tmux-1.7.tar.gz
$ tar xvf tmux-1.7.tar.gz
$ cd tmux-1.7
$ ./configure --prefix=$HOME/Binary/tmux CFLAGS="-I$HOME/Binary/libevent/include" LDFLAGS="-L$HOME/Binary/libevent/lib"
$ make all install

あとはtmuxを使うだけ、なのですが若干の工夫が必要です。

$ exports PATH=$HOME/Binary/tmux/bin:$PATH
$ alias tmux="LD_LIBRARY_PATH=$HOME/Binary/libevent/lib tmux"
$ tmux

libeventの場所をLD_LIBRARY_PATHで指定してあげないといけません。


これで画面分割時に元居たディレクトリに移動する手間が省けました。

2012年08月11日(土)

tmuxをpbcopy/pbpaste対応にする

tmuxってMacだとpbcopy/pbpasteでクリップボード使えないじゃないですか。で、tmux-MacOSX-pasteboard使いましょうとかってなるんですが。

.tmux.confのdefault-commandに直に設定しちゃうとUbuntuで動かなくなると思うので試行錯誤をしてみました。

環境:MacOS 10.7.4 / tmux 1.6


結論としては、

set -g default-command "which reattach-to-user-namespace >/dev/null 2>&1 && reattach-to-user-namespace -l $SHELL || $SHELL"

と書いてみたのです。これで良いのかどうなのか、大丈夫なのかわからないのですけど。

Ubuntuでも試してませんし。シェルスクリプト的にはおかしくないのですけど。でもまあ、一応動いてるみたいです。


これ以外にも試してみたこととして、

  • if-shellを使う
  • if-shellとsource-fileを使う

をやってみたんですが、if-shellがそもそも変な挙動なようなので失敗。*1

if "test `uname` = 'Darwin'" "display-message 'MacOS'"

みたいな感じのを一番上の感じにしたものを試して駄目でした。(ifはif-shellのエイリアス)


ラッパースクリプト書いたりとか、いろいろあるみたいですが面倒だしとりあえず良いみたいなので(あと最悪の場合command + c使うし)方法の一つとしていいんじゃないでしょうか。

2012年07月14日(土)

screenからtmuxに乗り換えた?よ?けどちゃんとVimShell使い始めたよ?

愛用のターミナルマルチプレクサGNU screenからtmuxに乗り換えてみました。

環境:MacOS 10.7.4 64bit + Ubuntu 12.04 LTS 64bit


インストール

Mac環境ではbrewから離れようと思っているのでソースからコンパイル。Ubuntuもソースからコンパイル。

でもtmuxだけソースを持ってきてもコンパイルできない(libeventが必要)なのでその両方を自動でダウンロード・コンパイル・インストールするMakefileを書きました

というわけでこのMakefileをinstallターゲットで実行するだけ。中身としては、tarballをcurlで持ってきて展開、普通にコンパイルしてるだけです。


使ってみたものの

tmuxの新しいキーバインドが覚えられない!GNU screenのキーバインドのサンプルを使ってみてもいろいろ違う!めんどい!


結果

VimShellを使おう