第92回 「中断(サスペンド)」と「jobsコマンド」をうまくつかって画面を広く使おう

viでなにかファイルを編集中に、
lsなんかでディレクトリの内容を確認したいときありますよね。


こんなとき新しいターミナルを開いていたりすると、どんどん窓が増えますね。
screenなんていうものを使えば、タブブラウザのようになって便利なようですが、入ってない環境ってのもありますよね。



そんなときは、おもむろに、Ctr-Zで「中断」してみましょう。

[1]+  Stopped                 /usr/bin/vi a.txt

a.txtを編集中なら、こんな感じのものが表示され、「中断」できます。


これで、シェルとの対話に戻れるので、lsしてみましょう。

$ ls
a.txt	b.txt	c.txt

b.txtとc.txtがありました。


b.txtを編集したくなったので、またviでb.txtを開いてみます。


b.txtの編集中、やはりシェルとの対話に戻りたくなったので、「中断」します。

[2]+  Stopped                 /usr/bin/vi b.txt

このように表示されます。



ここで、今どれだけのジョブが中断中か知りたくなったとします。
そんなときは、

jobs

です。
打ってみましょう。

$ jobs 
[1]-  Stopped                 /usr/bin/vi a.txt
[2]+  Stopped                 /usr/bin/vi b.txt

これで、
a.txtを編集中のものは、1番
b.txtを編集中のものは、2番とわかります。


では、a.txtをまた編集したくなったとして、a.txtの編集を続けるにはどうすればいいかと言うと、

%1

です。これで、1番目のジョブに戻れます。



それでは、ここで、a.txtの編集をまた「中断」し、
c.txtを編集してみましょう。

[3]+  Stopped                 /usr/bin/vi c.txt

ここでc.txtの編集を「中断」して、シェルとの会話に戻りjobsを打ってみましょう。

$ jobs
[1]-  Stopped                 /usr/bin/vi a.txt
[2]   Stopped                 /usr/bin/vi b.txt
[3]+  Stopped                 /usr/bin/vi c.txt

b.txtを編集したくなれば、

%2

ですね。

こんな感じで、編集したいファイルをいくつも「中断」させ、編集したいファイルを

%番号

で呼び出していくと、効率よく編集作業ができます。



作業を終えるときは、中断中のジョブをなくすようにしておくことをお勧めします。







(書いていて思ったが、カレントジョブとかのちゃんとした話から始めたほうがよかったかも)