- PR -

viについて

1
投稿者投稿内容
taku
会議室デビュー日: 2004/07/31
投稿数: 11
投稿日時: 2004-11-23 20:34
$ cat /home/UserID/test.txt | less
として、test.txtファイルを見ている際、viコマンドで編集しようと
$ vi /home/UserID/test.txt | less
と良く間違えてしてしまいます。

その際、viでの編集作業が固まってしまい、シェルに戻れなくなってしまうのですが
どのようにすれば、通常のシェルに戻れるのでしょうか。

どなたかご存知の方ご教授願えませんでしょうか。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-11-23 21:02
こんばんわ.

「やらないように less で参照する」ではダメですか?
Linux なら仮想 console に行って kill すれば良い気がしますが...

taku
会議室デビュー日: 2004/07/31
投稿数: 11
投稿日時: 2004-11-23 23:37
ご意見有難う御座います。

そうですね。確かに私の良くない癖を直せば済む話ではあるのですけれども・・。

後、「仮想 console に行って kill すれば良い気がしますが... 」
との事ですが、そうですね。そうすれば抜けられますね。

私の説明不足でしたが、コマンドライン上からどうにか抜けられないかな・・と思っているのですけれども、もしコマンドライン上から抜ける方法をご存知の方がいらっしゃいましたら、ご掲示頂けませんでしょうか。

宜しくお願い致します。

ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2004-11-24 00:19
NetBSD上の vi で試してみると、:q で抜けられました。
抜けられないとすると、vi の素性に依存する問題じゃないでしょうか。
ほんまもんの vi なのか、vim とかの亜種なのか、等のことで。

訂正:
viは起動直後に終了してました。

下でちいにぃさんが書かれているように、ジョブコントロールを
利用する手でしょうねえ。

[ メッセージ編集済み 編集者: ぽんす 編集日時 2004-11-24 08:06 ]
ちいにぃ
大ベテラン
会議室デビュー日: 2002/05/28
投稿数: 244
投稿日時: 2004-11-24 01:52
$ cat /home/UserID/test.txt | less

のかわりに、

$ less /home/UserID/test.txt

とすれば、そもそも間違わないと思うのですが。
(kazさんが示されたのはこういうことですよね?)


また、bashやtcshやzshを使ってるのであれば、以下のように
ジョブコントロールを使えばよいかと。

$ vi test | less

(ctrl-Z を1〜2回押して、'vi test|less' を停止する)

[1]+ Stopped vi test | less

(ジョブ番号1が停止したので、これを終了させる)
$ kill %1

[1]+ Stopped vi test | less

(リターンを押す)
$
[1]+ Terminated vi test | less

(Terminated、つまりジョブ番号1のジョブが終了した。)


[ メッセージ編集済み 編集者: ちいにぃ 編集日時 2004-11-24 01:57 ]
taku
会議室デビュー日: 2004/07/31
投稿数: 11
投稿日時: 2004-11-25 01:40
ぽんすさん、ちいにぃさん、ご掲示有難う御座います。

ぽんすさんのおっしゃるNetBSD上の vi では:qで抜けられるとの事ですが、
当方のRHL9上のviでは抜けられませんでした。
viやvim の亜種などもあるんですね。まだまだ知らない事だらけで良い勉強になります。

そしてちいにぃさんkazさんのおっしゃる通りlessでファイルを見るようにすれば
問題はないですよね。これからはそうするようにしたいと思います。

後ちいにぃさんからご掲示頂いた方法ですが、Ctrl+zで抜けられる事を確認できました。
これで胸のつっかえが取れました。有難う御座います。

また通常のvi test.txt作業の中で、ctrl+zで停止し、そのジョブをfg %1としてフォアグラウンドで復活させ作業を開始させる事もあわせて復習できました。

ちいにぃさん初めみなさま、勉強になる良い機会を有難う御座いました。

[ メッセージ編集済み 編集者: taku 編集日時 2004-11-25 01:42 ]
1

スキルアップ/キャリアアップ(JOB@IT)