楽にカレントディレクトリをコピペするコマンドを作る

スポンサード リンク

GNU Screenなんかで作業していると,このウィンドウと同じパスへ移動したいとか思うことがある。ScreenやTmuxの機能をつかえばショートカットキー一発でかっちょいいかんじにできるだろうけど,今回はシェルのエイリアスで泥臭く,でもシンプルで柔軟な対応をすることにした。

原理

仕組みは簡単。クリップボードを介して,パスのやり取りをする。つまり,

  1. クリップボードにカレントディレクトリを書き込むエイリアス gp (get pathの略)
  2. クリップボードの中身に cd するエイリアス pp (put pathの略)

の2つを作る。

クリップボードを操作する

クリップボードを操作する方法はOSに依存する。

cygwin

cygwinならば, /dev/clipboard を通常のファイルのように読み書きするだけでよい。すなわち,次のように.zshrcに書けば良い。

alias gp='pwd > /dev/clipboard'    # カレントディレクトリをクリップボードへコピー
alias pp='cd `cat /dev/clipboard`' # クリップボードのパスへ移動

Linux

Linuxの場合は xclip -o でクリップボードから標準出力, xclip -i でクリップボードへ入力ができる。すなわち,次のようになる。

alias gp='pwd | xclip -i'  # カレントディレクトリをクリップボードへコピー
alias pp='cd `xclip -o`'   # クリップボードのパスへ移動

あとはこのエイリアスを使ってガンガン移動しまくろう。

Comments !

social