Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

viの操作を自動化(または同様のこと)したい

よくhttpd.confの設定ファイルを編集するのですが、どのような編集をしたか 残すために設定ファイル中にコメントを残すのですが、別の方法としてviの操作を スクリプトに記述しておいて、それを実行するだけ、みたいなことをしたいと 考えています。ちょっとやってみたのですが、コマンドモードや編集モードだと うまく行くのですが、挿入モードになるとESCできなくなってその後の処理が 出来ません。何か良い方法は無いでしょうか? ちなみにemacs・mule等は使用しない方針です。 ---------------------------------------------------- vi /etc/httpd/conf/httpd.conf.bak /Config Y 5- P I   ・・・この辺までは問題なし     ・・・ここでESCできないので次のZZが保存コマンドとして動かない ZZ

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4910/10378)
回答No.5

#3です。 >ありがとうございます。vimでなくviでやりたいと思っています。 linuxの場合、viとして使われるのは、vim か nvi か elvis だと思っていたのですが、オリジナルの vi が入っているディストリビューションがあるのでしょうか?特定のディストリビューションの特定のviに限った話なら、ディストリビューションやviの種類やバージョンを書いたほうが良いと思います。 nvi だと入力のリダイレクト自体がエラーになりますね。 elvis だとESCのところでelvisが終了してしまう(質問者の状況と似ている)。 いずれにせよ、バージョン管理システム+patch が実用的です。

kenken_pa
質問者

お礼

viでうまくいきました。ありがとうございます。 ちなみにごく標準的にインストールしたredhat9ではvimコマンドは使えませんでした。 rpmではvimでしたので、仰るとおり実体はvimなのだと思います。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

挿入コマンドの終了は ESC じゃなくって . (ピリオド) だけの行だったりするとか. 一応 sourceforge にころがっている vi のソース (に付属のマニュアル) を見てみましたが, :source では ex のコマンドしか受け付けない様子なので.

すると、全ての回答が全文表示されます。
  • notnot
  • ベストアンサー率47% (4910/10378)
回答No.3

FedoraCore4 の vim ではうまくいきますね。 $ cat -v aa iaaaaa^[ ZZ $ vim bb < aa $ cat bb aaaaa $ >例えば遠隔地の顧客に設定ファイルを簡単に直させる際などを想定しています。 そういうときは、diffして遠隔地でpatchするんでしょう。

kenken_pa
質問者

お礼

ありがとうございます。vimでなくviでやりたいと思っています。 patchのほうは少し勉強してみます。

すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

#1 です. まあ, バージョン管理はいかがなものかなぁと, 自分でも思わないでもないですが. ところで, ^V ^[ (Ctrl-V ESC) はやってみました?

kenken_pa
質問者

お礼

^[ はやってみてました。一応^V ^[もやってみましたがやはりそのまま 書き込まれます。引き続き良いヒントをお待ちしております。

すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

ん~, RCS なり CVS なり Subversion なりを検討してはいかがかと.

kenken_pa
質問者

お礼

すいません。必ずしもバージョン管理だけが目的ではないのです。 例えば遠隔地の顧客に設定ファイルを簡単に直させる際などを想定しています。

すると、全ての回答が全文表示されます。

関連するQ&A