CUIでいこう」カテゴリーアーカイブ

GNU Screenでタブをまとめるタブ(入れ子型ウィンドウグループ)で大量のウィンドウを管理する

スポンサード リンク

はじめに

GNU screenで,タブをまとめるタブ的なUIでウィンドウグループを実現する方法を紹介する。正確には,ウィンドウをまとめるウィンドウだが。

Screenの入れ子によるウィンドウグループの実現

Screenの入れ子によるウィンドウグループの実現

(能書きはいいから,という人はとにかくお前の.screenrcを見せろをご覧ください)

みなさんは,GNU Screenで大量のウィンドウを開くときどうやって管理しているだろうか。正面から攻めるならウィンドウグループ(window group)を使うのが普通であり,すでにかなり詳しい説明がある(下URL参照)。

開発版GNU Screenで楽々ウィンドウ管理 – Keep It Simple, Stupid
これからの「GNU Screen」の話をしよう – Keep It Simple, Stupid

記事を初めて読んだときは,すごい!と思って僕もウィンドウグループを使って大量のウィンドウを捌こうとしてみた。が,ウィンドウの役割ごとに番号を決めて……という運用では定形作業なら良いけれども,適当な作業ばかりしている僕にはウィンドウと番号の関係を把握しきれないことが判明した。だからこそ,グループ化して管理したかったわけでありまして……。

まぁ,windowlistを見ろって話なんだが,そのためだけに領域を1つ消費するのは断じて許せない。しかも,「次のウィンドウに移る」,「前のウィンドウに移る」のと同じ感覚で「次のウィンドウグループに移る」,「前のウィンドウグループに移る」ショートカットキーが無いのは個人的には致命的と思う。

そこで,卜部昌平のあまりreblogしないtumblr – 俺の .screenrc が火を吹くぜにあるようなSTEM-LEAFの入れ子によって「入れ子型ウィンドウグループ」を実現することにした。

動作確認しているバージョンは Screen version 4.01.00devel (GNU) 2-May-06 および Screen version 4.02.01 (GNU) 28-Apr-14 である。
≫ 続きを読む



カテゴリー: CentOS, CUIでいこう, Cygwin, Debian, Fedora | コメントする

GNU ScreenでSSH接続したいならキーバインドを作るより,シェルのエイリアスを使おう

スポンサード リンク

GNU Screen上で楽にSSH接続を実現する方法として,多段キーバインドを設定する方法が広く使われている。例えば,以下のサイトのように。

開発版GNU Screenで楽々ウィンドウ管理 – Keep It Simple, Stupid

私は複数あるサーバに ssh し易いよう、以下のような感じでランチャ風に多段キーバインドを定義しています。

# alias for remote login
# override default `^V'(digraph) mapping
bind ^V eval 'command -c rlogin' 'echo "select server category: [0]  [1]Web [2] [3] [4] [5]DB [6] [7]Test [8] [9]"'
bind -c rlogin 1 eval 'command -c rlogin1' 'echo "login to: (1 Web)  [1]websvr1 [2]websvr2"'
bind -c rlogin 5 eval 'command -c rlogin5' 'echo "login to: (5 DB)   [1]dbsvr1  [2]dbsvr2"'
bind -c rlogin 7 eval 'command -c rlogin7' 'echo "login to: (7 Test) [1]testweb [5]testdb [6]testdb2"'

# (1 Web/)
bind -c rlogin1 1 eval 'screen -t websvr1 11 ssh websvr1' '@group Web/'
bind -c rlogin1 2 eval 'screen -t websvr2 13 ssh websvr2' '@group Web/'
bind -c rlogin1 3 eval 'screen -t websvr3 16 ssh websvr3' '@group Web/'

# (5 DB/)
bind -c rlogin5 1 eval 'screen -t dbsvr1 51 ssh dbsvr1' '@group DB/'
bind -c rlogin5 2 eval 'screen -t dbsvr2 55 ssh dbsvr2' '@group DB/'

# (7 Test/)
## (7 Test/TestWeb/)
bind -c rlogin7 1 eval 'screen -t testweb 701 ssh testweb' '@group TestWeb/'

## (7 Test/TestDB/)
bind -c rlogin7 5 eval 'screen -t testdb 750 ssh testdb' '@group TestDB/'
bind -c rlogin7 6 eval 'screen -t testdb2 755 ssh oracle@testdb2' 'encoding eucjp' '@group TestDB/'

こうするとssh接続のためのローカルのシェルは不要で,とってもスマートな感じになる。だがしかし,Screenの多段キーバインドを使ってしまうと,例えば上記のWebsvr1に接続するキーは ^a^V11 となり,決して打ちやすくない。いちいちCtrlキーなんて押したくないよ…… そのうえScreenのbindは一文字しか設定できないからとっても困る。

ということで,僕はシェルのエイリアスを使うことにした。 ≫ 続きを読む



カテゴリー: CUIでいこう, コマンドメモ, シェルスクリプト | コメントする

vimrcでの環境に依存する設定の書き方

スポンサード リンク

vimrcで環境ごとに設定を分けたいことがある。
それにはifとhas()を用いる。
≫ 続きを読む



カテゴリー: CUIでいこう, Debian, Vim, Windows | コメントする

Cygwinで開発版Screenをコンパイルする

-.-.-.-.-.-.-.- 2013-07-09追記 -.-.-.-.-.-.-.-
調べてみたらイマドキはもうScreenのパッケージ自体が開発版になっているようだ。
フツーにsetup.exeからScreenをインストールするだけで縦分割を使えてしまう。


約2年前,CentOS用にGNU Screenの開発版をコンパイルしてインストールした。
CentOS 5.6に最新版GNU Screenのインストールをする | 日々の記録
それ以後,FedoraやDebian sidではリポジトリに開発版のScreenが用意されていたので必要なかったのだが,この度,Cygwinで作業する必要が生じたので久しぶりにコンパイルすることにした。今回はCygwinで開発版(Screen version 4.01.00devel (GNUcbaa666) 2-May-06)をコンパイルすることで縦分割できるようにすることを目指す。
≫ 続きを読む

カテゴリー: CUIでいこう, Windows | コメントする

Vimで文字コードを指定して開く

:e ++enc=utf-8 ファイル名

文字コードを指定して開く。ファイル名を省略すると現在開いているファイルを開き直す。

:set fileencoding=euc-jp

ファイルを保存する際の文字コードを指定する。これを指定しても現在の表示を含めて書き込むまでは何も変化しないので注意。

ここが参考になった。
ずんWiki – vim

カテゴリー: CUIでいこう, Fedora, Linux | コメントする

LinuxでCUIからクリップボードを使う

xclipを使う。xclip-copyfile xclip-cutfile xclip-pastefileの3つはファイルをコピーペーストできる。 ≫ 続きを読む

カテゴリー: CUIでいこう, Linux | コメントする

X-FinderでCygwinのシンボリックリンクを開く

X-FinderでCygwinのシンボリックリンクを開くためにしたことのメモ
≫ 続きを読む

カテゴリー: CUIでいこう, Windows | コメントする

GNU Screenの設定 .screenrcありマス

Screenをインストールしたら今度は設定である。下記のサイトをコピペ参考にして,もう少し使いやすいようにScreenを設定してみた。僕はVim使いなので,ScreenもVimに合わせて設定した。
≫ 続きを読む

カテゴリー: CUIでいこう, Linux | 1件のコメント

GNU Screenの基本的操作方法

GNU Screenの基本的操作方法のメモ
≫ 続きを読む

カテゴリー: CUIでいこう, Linux | コメントする

CentOS 5.6に最新版GNU Screenのインストールをする

縦分割機能を使うべく,CentOS 5.6で最新版のGNU Screenをソースからコンパイル,インストールした。そのときのメモ。

-2011/05/29追記-
ちなみにFedora15ではyum install screenで普通に4.1.0-0.3.20101110git066b098というバージョンがインストールできて,当然縦分割もできる。さすがFedoraだ。
-追記終わり-
≫ 続きを読む

カテゴリー: CentOS, CUIでいこう, Linux | 1件のコメント