[tmux] ターミナルだけで完結! 一時ペインでalc検索やgoogle翻訳


ココらへんの記事を読んでいてtmuxで使える一時ペインは単語検索に使えるとひらめいた!

split-window は引数にコマンドが取れて、そのコマンドの出力を一時的なペインで開くことができるんですな。

ペインとは

端的にいうと「tmuxで画面を分割すること」です。
自分の場合はPrefixキーを「Ctrl-t」としているので、画面を分割するには以下のようになります。Prefixキーのデフォルト値は「Ctrl-b」だったと思います。

  • Ctrl-t % (画面を縦に分割)
  • Ctrl-t ” (画面を横に分割)

縦と横に3分割した場合はこんなかんじになります。分割した窓のことをペイン(pane)と言います。
tmux_moment_pane1

あるコマンドを打つ時にペインを一時的に開いて、終了したら閉じるといったことがtmuxだと柔軟に出来ます。(split-windowを使う)
そこでテキストブラウザのw3mコマンド、Shellのfunctionを利用して、alc検索やgoogle翻訳検索をターミナルだけで実行したいと思います。


alcやgoogle翻訳をコマンドで実行するための設定

これについては以前書きました。以下を參考にしてw3mはbrewでインストールして、.zshrcなどにalcコマンドのfunctionを記述します。

これでalcコマンドが使えるようになります。

同様にgoogle翻訳のコマンドを使えるようにfunctionを定義します。
以下の内容を.zshrc(.bashrc)に設定すればOK!!これで「gte」「gtj」というコマンドが利用できるようになります。

  • gte [英語の文字列] => 英語から日本語に翻訳
  • gtj [日本語の文字列]=> 日本語から英語に翻訳
# w3m でGoogle translate English->Japanese
function gte() {
  google_translate "$*" "en-ja"
}

# w3m でGoogle translate Japanese->English
function gtj() {
  google_translate "$*" "ja-en"
}

# 実行方法
# google_translate "検索文字列" [翻訳オプション(en-ja 英語->日本語)]
function google_translate() {
  local str opt cond

  if [ $# != 0 ]; then
    str=`echo $1 | sed -e 's/  */+/g'` # 1文字以上の半角空白を+に変換
    cond=$2
    if [ $cond = "ja-en" ]; then
      # ja -> en 翻訳
      opt='?hl=ja&sl=ja&tl=en&ie=UTF-8&oe=UTF-8'
    else
      # en -> ja 翻訳
      opt='?hl=ja&sl=en&tl=ja&ie=UTF-8&oe=UTF-8'
    fi
  else
    opt='?hl=ja&sl=en&tl=ja&ie=UTF-8&oe=UTF-8'
  fi

  opt="${opt}&text=${str}"
  w3m +13 "http://translate.google.com/${opt}"
}

gteやgtjコマンドの実行結果は以下のようになる
tmux_moment_pane2


tmuxの一時ペインで alc google翻訳の設定を入れる (split-windowの設定)

以下の設定を「.tmux.conf」に入れるとPrefixキー+それぞれのキーに対応した操作が一時ペインで実行できる

  • Ctrl-t a => alcの単語検索
  • Ctrl-t m => manページを開く
  • Ctrl-t g => google翻訳 (英語から日本語)
  • Ctrl-t G => google翻訳 (日本語から英語)
# 一時ペインでコマンドを実行する
bind-key a command-prompt -p "Alc:" "split-window 'source ~/dotfiles/.zshrc.command; alc %%'"
bind-key m command-prompt -p "Man:" "split-window 'man %%'"
bind-key g command-prompt -p "Google Translate en->ja:" "split-window 'source ~/dotfiles/.zshrc.command; gte %%'"
bind-key G command-prompt -p "Google Translate ja->en:" "split-window 'source ~/dotfiles/.zshrc.command; gtj %%'"

試しにalcを実行した結果

  • Ctrl-t a を実行して検索文字列を入力するための黄色い部分を表示する
    tmux_moment_pane3

  • 検索文字列を入力してエンター
    tmux_moment_pane4

  • 一時ペインにw3mブラウザのalcページが表示される
    tmux_moment_pane5

終了させるときは、alcコマンドで開いたw3mのブラウザををquitすると自動的にペインも閉じるようになる!これはめっちゃ便利になった!プログラムを書いていて急に単語を調べたくなるときがあると思います。そんな時にターミナルだけですぐ調べられるこの方法は最強!

【FaceBookでコメント】

comments

Powered by Facebook Comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です