リポジトリを横断しての開発 自分は普段いくつかの(主にマイクロサービス)リポジトリを横断しつつコーディングをしています。 その際に tmux + zsh + neovim を使っているのですが、 tmux (とzsh)を使って複数のリポジトリを横断する最高の設定を使っているので紹介します。 まず前提として、複数リポジトリのマイクロサービスを立ち上げるとめちゃくちゃコンソールが増えると思います。 自分はプロジェクト毎にローカルサーバで1-2個・エディタ1つ・シェルで1つ・REPLで1つくらいは平気で使います。ついでに一時的な検証をするワークスペースを作って5-7個くらいは平気でプロジェクトを横断することがあります。 これを tmux の window と pane だけで管理するのは辛いのでやめましょう。 tmux には session という便利な機能があるのでこれを使います。 簡単に説明
開発用 Ubuntu VM はスリープっぽい保存はするけど、ローカルの Mac は落とさないといけない。で、毎回 ssh でウィンドウやペインごとに ssh つないだりするのはだるい。ということで tmuxinator いれた。 導入 いろいろある。特に ruby の開発してないし、適当にシステムグローバルにいれた*1。 tmuxinatorで一瞬で開発環境を起動する #Ruby #AdventCalendar #tmux #開発環境 - Qiita # インストール gem install tmuxinator # .zshrc に設定 [[ -s ~/.tmuxinator/scripts/tmuxinator ]] && source ~/.tmuxinator/scripts/tmuxinator で、つくる。ひな形やサンプルがあるのでだいたい簡単にできる。 # デフォルトの al
Vim でテストコードを書きながら、Vim を抜けずその場でそのファイルとかその行のテストを流したい そういうとき Emacs とか Atom だとプラグインでやってたけど、いまいち Vim だとそういうやり方がしっくりこないなと思っていたところで「もう tmux で別ペイン開いといて send-keys するのでいいのでは」という結論になった。 この方法だとテストの種類によって変えるのも実行コマンドを変えるだけで簡単にできるし、実際にテストを流すのが Docker コンテナの中、とかいうときにもそのまま応用できるのでなかなかよい。 具体的にどういうことができるかというと、これから書く例では、tmux を左右の2ペインに分割しておいて、 左ペインに Vim 右ペインにテストコマンドを実行したい場所 が設定された状態で、Vim でテストコードを書きながら右ペインでテストを実行するというもの。
いつまで経っても終わらないから帰れない… 途中で終了してしまうと困るので、ログアウトしても終了しないように。 作業の流れ Ctrl+Zでコマンドの中断 bgでバックグラウンドに回す jobsでジョブの確認 disownでログアウトしても実行されるようにする 実際のコマンドだと
複数人で管理している本番サーバの環境をオレオレカスタマイズしてる人はいないと思うが、デフォルトのままだと使いにくいので、ぎりぎり許せる最大公約数的な設定をしているという管理者は多いのではないだろうか。 それでも、tmux や screen のプリフィックスは人によって通常使っているキーが違ったりして、これが異なるだけで非常に使いにくかったりする。自分はログインする度に以下のようなコマンドを打ちこんでいた。実に面倒くさい。 $ tmux set-option -g prefix C-t この件についてtwitterで聞いてみたところ、皆さんサーバ上に個人用の設定ファイルを用意して、ログイン時にそれを読み込んだりしているようだった。 で、これを何とかしようと思って少し調べてみた結果、以下の sshrc を使うのが便利という結論に至った。 https://github.com/Russell91
最初に 2017/10/10 追記 最新 tmux 2.5 に対応したものを書きました。 以下の文書はもう古いので参照しないでください。何かのときのために文書自体は残しておきます。 tmux 2.2 は何か変 tmux 2.2 にはいろいろ問題があって しばらくは使わないほうがいいようです。 パッチが当たらない UTF8 の日本語を tmux で扱うには tmux-ambiguous-width-cjk.patch を当てた tmux がほぼ必須ですが 2.2 になってからこのパッチが当たらなくなってしまいました。何も考えず brew upgrade しちゃった私は後悔し深く反省しました。 パッチが当たった tmux を入れられればいい人 御託は必要なくインストールだけしたい人は以下のようにしてください; $ brew uninstall tmux $ brew update $ brew
はじめに こんにちは、中山です。 唐突ですがみなさんtmuxは使われていますか。そう、有名なターミナルの機能を拡張するツールですね。 この種のツールを使っていない方の中には、職場の先輩などに「ちょwターミナル開きすぎwブラクラかよw」などとドヤ顔で言われたことがある方もいらっしゃるのではないでしょうか。かく言う私もドヤ顔でこの種の発言を繰り返していました。 tmuxはデフォルトの機能がかなり豊富なのですが、tpmというプラグインマネージャを使うとさらに機能を拡張することができます。聞いたことがある方も多いのではないでしょうか。ググると検索結果に結構表示されますね。GitHubのtmux-pluginsというorganizationにはさまざまなプラグインがあります。便利なプラグインを紹介しているブログエントリも結構あります。 私はこのプラグインを今まで結構作ってきました。少しシェルスクリプ
Home Subscribe 勢い余ってtmuxのステータスライン上でSlackの未読件数を見れるようにした話 23 April 2015 on Slack, dotfiles, tmux, ShellScript どうも。オトバンク麦芽系エンジニアのasmzです。最近家のビールが金麦(元々ビールですら無い)からバーリアルに格下げされて辛い日々を過ごしています。 自分の前回のエントリからもう半年ぶりだし、このままだとオトバンクにはbtoさんしかエンジニア居ないんじゃないかと思われかねないので、生存確認も兼ねてたまにはちょっと書いておこうと思います。 今回勢い余ったこと さて今回のネタですが、実は一つ前のbtoさんのエントリ「dotfilesの設定を自動化する」に強く影響を受けています。 このエントリのdotfiles管理方法を自分も導入していろいろ環境いじってたら楽しくなってきて、せっかく
tmuxを使っていて、分割したウインドウにマウス操作で移動できないのが不便だったので下記対応をした。 EasySIMBLをインストール https://github.com/norio-nomura/EasySIMBL/ MouseTerm をインストール https://bitheap.org/mouseterm/ 自分の場合は解凍したできた app ファイルが壊れていると出たので、直接拡張子が「.bundle」のファイルをEasySIMBLの画面にドラッグアンドドロップした。 vimの設定 .vimrcに次の記述を追加する set mouse=a set ttymouse=xterm2これでtmuxを起動しているコンソール上でマウスによるウインドウ移動ができるようになった。 参考URL: http://takaaki-kasai-tech.blogspot.jp/2014/03/use
B! 216 0 1 0 ターミナルマルチプレクサとして GNU Screen を普段使っていますが、 tmux の方が活発に開発されてる様に見えたり 乗り移ってく人も沢山居るみたいなので気になって何度か試してみましたが、 イマイチ違いを吸収出来ずにScreenに戻ってきてました。 無理に移行する理由もそれ程無いですが、また試してみたので 取り敢えず違いなどのメモ。 設定ファイル Prefix (Escape) コマンドモード キー設定一覧 デタッチ/アタッチ キーバインド コピーモード/履歴スクロールバック Session/Layout/Window/Pane split 全Paneに同時入力 swap-paneの問題 Status表示 .bashrcなどでの判断方法 違いが理解できたら 設定ファイル screen tmux ファイル名 ~/.screenrc ~/.tmux.conf
動機 自宅でMBAでtmux起動して作業したり、会社のPCでtmuxして作業したり、リモートにsshしてからtmux起動して作業したり、しかも更にそれらを入れ子で行ったり、といったふうに使い方に応じて色んな場所でtmuxを起動してるんだが…。 たまに今作業してる端末がどこのtmuxなのか勘違いしたまま作業をしてしまい、あれ?てなることがあります。 一応ステータスラインの脇の方にホスト名は表示してるので確認すればわかるんだけど、普段はあまり目に入らない模様。 そんなわけでより目に入りやすいステータスライン全体の色を変えたら良いんじゃないかなってことで試してみた。 設定内容 自分用の設定ファイルは基本githubで管理しててどのホストでも共通のを使ってるので環境変数をみて切り替えるようにしてみた。 ~/.tmux.conf の抜粋。 デフォルト(その他サーバ)はマゼンダ、仕事PC(ホスト名:t
status line の設定方法について調べたのでここにメモしておきます。 status line の構成 tmux の status line は下図のように 3 つの部分から構成されています。 status-left の部分はデフォルトではセッション名が表示されています。 status-right の部分はデフォルトでは現在のウィンドウのタイトルと、現在時刻が表示されています。 window-status にはデフォルトではウィンドウのインデクス、名前、フラグが表示されます。 # status line を更新する間隔を 1 秒にする set-option -g status-interval 1 # window-status を中央揃えで配置する set-option -g status-justify "centre" # status line の背景色を指定する。 set-
冗長化させたホストやスケールアウトさせたホストなどの同じサーバ構成をもつホストグループや、あるサービスに所属するホスト全てに同時にsshして同時に操作したいことがある。 複数のホストに同時ログインするツールとして cssh があるけど、毎回複数のホスト名をチマチマ入力したり、すぐに古くなるホスト一覧ファイルを手元に持ちたくない。Immutable Infrastructure 時代にはそぐわない。Immutable Infrastructure 時代にはホスト名なんて毎日変化するし誰も覚えてない。サーバ管理ツール上のグループ名を使ってグループ配下のホストに同時にsshしたい。 あと、cssh は個人的に挙動がなんか微妙なので、代わりに tmux と ssh を組み合わせている。 cssh はマスタとかスレーブとか気持ちはわかるけど、複数ウィンドウ操作は使い慣れたターミナルマルチプレクサを使
会社の同期で毎週勉強会をやっていて、自分が発表する番だったので最近使ってるCLIツールについてまとめてみた。 hub github/hub プルリクエスト作成などGithub上での作業をコマンドラインから。会社ではGH:Eでプルリクベースの開発スタイルなので毎日使っている。最近はhubのGo実装でghというのもあるみたいだけど、こっちはまだ試していない。 GitHubユーザーのためのhubコマンド - Qiita tig jonas/tig コミットログ等の閲覧を楽にしてくれる。仕事ではSourceTreeも使ってるんだけど、やっぱりメインの作業はターミナル上だし、log・diff・stashあたりがgitコマンドよりはるかに見やすくて手放せない。 ~/.tigrc に以下のような設定をしておけば、historyで選択しているcommitのGithubページをすぐ開くこともできて便利。 t
Lately I’ve gotten really in to tmux and I’ve been looking for ways to integrate it to my Vim workflow. As result I ended up creating this Vim plugin. If you are unfamiliar with tmux, it’s best described as alternative to GNU screen or Tiling Window Manger for console application. For fast start I can recommend a book from The Pragmatic Bookshelf - tmux: Productive Mouse-Free Development. The plug
Docker + tmux = dmux ! dmuxを使うと現在起動中のtmuxのwindowにおいて,新しくpaneをつくりそこでDockerコンテナを起動することができる.使い捨て,かつ高速に起動するクリーンな環境でコマンドを試したり,ツールを入れて使ってみたりなどといったことができる.また,プロセスと途中で止めて,後にそれを再開することもできる. デモ 以下は簡単な動作例. 上のデモでは,以下のことが可能であることを示している. dmux initにより新しいpaneでコンテナを起動し,そこにアタッチする dmux stopでプロセスを停止してpaneを削除する dmux startで停止したプロセスを再開して再びコンテナにアタッチする(for文が途中から再開している) dmux deleteでコンテナとpaneを削除する なぜつくったか Dockerのv0.12.0で追加されたp
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く