• ベストアンサー

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

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

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10261)
回答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% (4848/10261)
回答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

  • viエディタのコマンド

     FreeBSDでapacheのhttpd.confを編集するのにviエディタをつかっているのですがhttpd.confがとても長く編集しずらく感じます。ときどき350行目のここがおかしいと教えていただくのですがviエディタでここが何行目かわかるコマンドがあるのでしょうか?また何行目に飛ぶためのコマンドはあるのでしょうか?今は文字列の検索/でその行までとんでいます。  よろしくおねがいします。

  • confファイル自動保存

    httpd.confなどviで開いて編集して、保存時に差分が出たらhttpd.conf.bkなど自動でファイルを別保存する機能などありますでしょうか? 宜しくお願いします。

  • Viで書き込もうとすると、保存できません。

     はじめまして。Linaxはじめたばかりで躓いています。 viで、 etc/dhcpd.conf や etc/samba/smb.confに書き込もうとすると、 画面の一番下の行に一瞬警告文のようなものが出て、すぐに消えます。 そのご、書き込みをして、上書き保存しようとすると、「読み込みのみで、 保存できない」と言うような感じの内容の文章が出てきます。 esc後、:qで、一度viを終了しようとしても、vi自体を終われません。  ログインはrootでしてるので、編集できると思っていたのですが・・・。 恐れ入りますが、分かる方よろしくお願いいたします。

  • viの操作

    [root@ocn conf]# /opt/apache/bin/apachectl restart /opt/apache/bin/apachectl restart: httpd not running, trying to start Syntax error on line 789 of /opt/apache/conf/httpd.conf: AddType requires at least two arguments, a mime type followed by one or more file extensions /opt/apache/bin/apachectl restart: httpd could not be started 789行目を見たいのですが、行を探す方法って何かありますか?

  • ときどきある /***/***~のファイルってなんですか?

    viで編集したときにときどきみかけるんですけど /etc/httpd/conf/httpd.conf~ これっていったいなんですか? なんか勝手にファイルができて気持ちが悪いんですけど。

  • Linux コマンド

    現在コマンドがわからず四苦八苦しています。 いろいろ調べたのですが、もし、わかる方いらっしゃたら教えてください。 編集後rebootしても、変更が保存されていませんでした。 保存して、再起動  保存して、終了 は、どういうコマンドを打てばいいのでしょうか? emacs viで、編集をすることは、知っているのですが、aaa.conf というファイルに、aaabbb="YES"と、1行追加するときの、コマンドが思い出せません。 教えてください。

  • viでのコメント文字入力

    vi初心者です。多数のサーバを管理しているため、viに慣れるようにがんばっています。 スクリプトファイルや設定ファイルをいじる際、「#」などのコメントアウト文字を行頭に入れる場面がよくあります。 viに詳しくないため、   ・コマンドモードで該当行に移動   ・入力モードに移って、#を入力   ・コマンドモードに戻って次の行へ移動   ・入力モードに移って、#を入力 を繰り返しています。 お尋ねしたいのは、   連続した数行の行頭にコメントアウト文字を効率よく   入力する方法 です。上手い方法があるのでしょうか? いろいろなサイトを見てみたのですが、分かりませんでした。今のやり方だと、一行ごとにモードを切り替えているため、効率が悪いように思うのです。 詳しい方のご回答をいただけると幸いです。よろしくお願いいたします!

  • linux viエディタについて

    linuxのviエディタについて解決できない問題があるので質問させていただきます。 sortコマンドやcutコマンドを実行する時にviエディタで編集したファイルが摘要されず、 実行はできるのですが、何も表示されません。 逆にechoコマンドでファイルにテキストを追加したときは、通常どおりコマンドが実行され表示もされます。 また、echoコマンドでテキストを追加したファイルをviコマンドで開くと、NEWFILE扱いにあり最初っから編集する状態になってしまいます。 touchコマンドで作成し、echoコマンドでテキストを追加したファイルとviエディタで作成したファイルは互換性?がないのでしょうか? どうかご教授いただければと思います。 よろしくお願いいたします。

  • vi で上書き保存(:wq)すると更新日だけでなく作成日まで更新されてしまいます…

    viの上書き保存について教えてください。 私はMacOSX10.4.2(ppc)でサーバ構築の勉強をしています。 各種設定ファイルを作成・編集する際、Terminal上でviを使用しているのですが、この度OSをクリーンインストールして再度サーバ構築を行うことにしたところ、viで設定フィルを編集し「:wq」で上書き保存すると、ファイルの作成日が変更日と同様に更新されてしまう現象が起こっています。 詳しく説明しますと、「:wq」コマンドを実行した瞬間、編集中のファイルと同じディレクトリに「4913」というファイルが作成され、そのファイルが編集中のものと差し替えられ、新規作成されるようなかたちになっているみたいです。 OSを再インストールする前はこのようなことはありませんでした。 また、再インストールをもう一度行ってもこの症状は改善されませんでした。 テキストエディタやemacsでは正常に上書き保存されます。 viにこだわる必要はないのですが、どうしても気になりますので どなたかご回答いただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • Mac
  • httpd.confの編集後は?

    宜しくお願いします。 レンタルVPSサーバー Apache2.2.X系 Apacheは起動していますが、それからが・・・分かりません。。。 Webサイトを公表したいと思っています。 そこで、まず初めにhttpd.confを編集した方が良いとサイトや本で書いているのですが、どうやって編集したら良いのか悩んでいます。 根本的に間違っているかも知れないのですが、自分的にはTeratermを開き、suでroot管理者としてサーバーにアクセスしました。 そして、[root@XXXXXXXXXXX user]# vi /etc/httpd/conf/httpd.conf でhttpd.confを開きました。 色々なサイトや本を参考にhttpd.confの必要な初期設定を行ったのですが、どうやって編集したhttpd.confをサーバーに保存するのか?またapacheを再起動させないと反映されないと書いていたのですが、何時のタイミングで/etc/init.d/httpd restartを実行するのか? ご指導お願い致します。 (1)httpd.confの編集の方法は? (2)編集後にApacheを再起動させるタイミング、方法は?