CentOSでvim 7.0を使用しています。

10~20ファイルくらいを同時に編集していることが多いのですが、
うっかりvimを終了してしまって切ない思いをすることがあります。
(保存はできているけれど、開き直すのが面倒…)

以下についてどちらか1つでも結構ですのでご回答よろしくお願いします。

(1) Firefoxの「前回終了時の状態に戻す」みたいな機能
 Vimの機能にあったりするのでしょうか。プラグインでも結構です。

(2) ファイルをまとめて開く方法
 ファイル名の一覧をテキストファイルで用意しておいてそこからまとめて開く、等

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2008/08/20 22:51:52
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:b-wind No.4

回答回数3344ベストアンサー獲得回数440

ポイント120pt

(PHP)プログラマのためのVIM (8) - セッション、misc、ヘルプ - おぎろぐはてな

セッションの機能があるので、それを使うのが良いかと。

Just another Ruby porter, 2006-4-a

で、自動化。

id:o-q

すばらしい!完璧です!

他にも色々なTipsが紹介されているサイトを紹介していただき感謝です。

これで快適に作業ができます。ありがとうございました!

2008/08/20 22:48:10

その他の回答3件)

id:zzz_1980 No.1

回答回数492ベストアンサー獲得回数64

ポイント60pt

vim -r [filename]

です。

id:o-q
  • rはクラッシュ時にスワップファイルからリカバリするためのオプションと

理解しているのですが、質問にあるような使い方もできるのでしょうか?

試しに複数のファイルを開いてから:q!で終了後、vim -rを実行してみましたが

スワップファイルが見つからないというメッセージしか表示されませんでした。

2008/08/20 19:26:31
id:zzz_1980 No.2

回答回数492ベストアンサー獲得回数64

> rはクラッシュ時にスワップファイルからリカバリするためのオプション

そうです。Ctrl-Zで止めちゃったまま kill するようなケースを想定していました。

:q!対策としては、

http://www.water.sannet.ne.jp/clean/gvim.doc/doc/usr_11.txt

より

'updatecount'か'updatetime'を設定して自動的にセーブするようにすると良いでしょう。1 を設定すると updatecount なら 1文字毎に、updatetime なら 1秒毎にセーブします。

自分は昔ながらのviしか使っていないのでまめに<ESC>:wするくせをつけてます。

id:poch-7003 No.3

回答回数43ベストアンサー獲得回数8

ポイント60pt

使っていたリストを戻すのはちょっとわかりませんが,リストを書いて一気に読み込むのは良くやります.

$ cat list.txt
file1.c
file1.h
file2.c
file2.h
ruby.rb
perl.pl

$ vi +args `cat list.txt`

もしくわ
$ vi `cat list.txt`

args付きだと,開いたときに読み込むファイル一覧が表示される.

#コマンドラインモードで一気にファイルを読み込むときは :args *.cとかやりますね.

id:o-q

ありがとうございます!

(2)が実現できました。

2008/08/20 22:43:40
id:b-wind No.4

回答回数3344ベストアンサー獲得回数440ここでベストアンサー

ポイント120pt

(PHP)プログラマのためのVIM (8) - セッション、misc、ヘルプ - おぎろぐはてな

セッションの機能があるので、それを使うのが良いかと。

Just another Ruby porter, 2006-4-a

で、自動化。

id:o-q

すばらしい!完璧です!

他にも色々なTipsが紹介されているサイトを紹介していただき感謝です。

これで快適に作業ができます。ありがとうございました!

2008/08/20 22:48:10
  • id:o-q
    質問が分かりにくかったので補足します。
    vimがクラッシュした時のリカバリ方法ではなくて、
    正常に保存・終了した後に、直前まで編集していた
    複数のファイルをまとめて開き直す方法を知りたいです。
  • id:zzz_1980
    なるほど、それでは補足した回答でも足りないですね。(できれば開かずに捨ててください。)find で探し回るか…考え直してきます。
  • id:o-q
    すみません、コメントを見る前に回答を開いてしまいました。
    自動セーブの件も今後の参考にさせていただきます。
    質問の件につきましては何か良い方法が見つかりましたらよろしくお願いします。
  • id:zzz_1980
    「vim で触っていたファイル」ではなく「直近の5分間にアクセスしたファイル」
    になってしまいますが、
    % find . -name "*.c" -atime -5m -print
    でいけますので、
    % vim `find . -name "*.c" -atime -5m -print`
    ではどうでしょう。ファイルの種類はとりあえずCのsourceを想定して "*.c" としてみました。
    -atime を -mtime にかえると、「…アクセスしたファイル」ではなく「…変更したファイル」になります。
    -5m をたとえば -5s にすると「直近の5秒間」-5h ならば「直近の5時間」になります。
  • id:o-q
    >zzz_1980さん
    ありがとうございます!
    -atimeで時間を長めにすれば(1)に近いことができそうですね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません