「Voyage MPD」を弄る上でこれだけは知っておきたい「vi」のコマンド

はじめに

Windowsの世界ではファイルのオープンや保存、カーソルの移動などという主要なファイル操作はマウスによって行ないます。そして、キイボードは文字の入力だけを行います。(削除や変換なども含めて・・・)
しかし、viではマウスは使えません(使いません)から、あらゆる操作をすべてキイボードから行います。
まさに、この点に違和感があるわけですが、「Voyage MPD」を使い倒すためには必須のスキルですから、できる限り分かりやすく解説しておきたいと思います。

しかし、一般論では分かりづらいので、『「Starter Kit」で電源ぶち切りでもデータベースファイルが保存されるようにMPDの設定ファイル「/etc/mpd.cof」を編集してみる』を例題として解説していきたいと思います。

起動とファイルのオープン

vi ファイル名 でviが起動されファイルがオープンします。

vi /etc/mpd.conf

と、入力して「Enter」キーを押すとファイルが開きます。

コマンドモードと入力モード

viはマウスが使えないために、保存などの編集作業を行う「コマンドモード」と文字を入力する「入力モード」があります。
これが非常に違和感があるのですが、一番の勘所なのでしっかりと身につけましょう。

viが起動したときは「コマンドモード」です。

この状態では、いくらキイボードをおしても文字は入力されません。
ですから、文字を入力しようと思えば「入力モード」に切り替えないといけません。

入力モードへの切り替え方は最低限、2通りだけ覚えておけば大丈夫です。目的に応じて選びます。

  1. 「i」を押す→文字は現在のカーソル位置から挿入されます。
  2. 「o」を押す→文字はカーソル位置の次の行から挿入されます。

つまり、文字を編集したいときは、
編集したいところにカーソルを持っていてから「i」を押せば、その位置から文字が入力できます。
それから、
「次の一行を追記してください」などと言うときは、カーソルで一番下まで移動してから「o」と押せば、その位置からすぐに貼り付けが可能です。

では、具体的にやってみます。
電源をぶち切ってもデータベースファイルが保存されるためには、データベースファイルをNASの中に保存するようにするのが一番簡単です。
そして、こういう風にMPDの挙動をコントロールしているのが「/etc/mpd.cof」という設定ファイルです。
この設定ファイルを自由に編集できるようになれば、いろいろと細かくチューニングすることもできて楽しみも広がります。

データベースファイルをどこに作成するのかは設定ファイルの中の

db_file “/var/lib/mpd/tag_cache”

と言う行です。
「↓」キーで下の方へと探していきます。

見つかりましたね。
今回はこの

db_file “/var/lib/mpd/tag_cache”

db_file “/music/tag_cache”

と書き直して(編集して)保存したいと思います。
なお、「/music」というディレクトリに書き換えるのは、そこにNASの音楽ファイルを認識するように「fstab」を編集したからであって、別のディレクトリにマウントするように設定している場合は適宜読み替えてください。

では、まずはじめにもっとも基本的な「i」を押して文字を入力するモードで編集してみます。
要は、「var/lib/mpd」を消して「music」と入力すればいいわけです。

カーソルを「var/lib/mpd」のところに移動させます。

そして、「x」キーを押すと1文字ずつ削除されていきます。
viでは「Back Space」や「Delte」を押しても文字は削除されません。その役割を果たすのが「x」キーです。
こんな感じで、書き直したい部分を全て削除します。

そして、ここで「i」キーを押して「入力モード」に切り替えます。

別段何の変化も起こりませんが、これで「コマンドモード」から「入力モード」に切り替わって、文字の入力ができるようになっています。
ですから、「music」と入力します。

そして、保存するのですが、「入力モード」のままでは保存できませんので、再び「コマンドモード」に切り替えます。
コマンドモードに切り替えるのは、「Esc」キーです。

「Esc」キーを押します。

またまた、何の変化も起こりませんが、これで「入力モード」から「コマンドモード」に切り替わります。
そこで、

「Sift+Z」を2回押せば保存されます。(以下、このような場合は「Sift+ZZ」と記述します。)

コピー&ペーストで編集したいとき

今回のように、「var/lib/mpd」を消して「music」と入力するくらいならキーボードから入力してもミスは起きないと思いますが、もっと長くて複雑な編集をするとなると、おそらくwindowsの方で完成させておいて、それを貼り付ける方が楽だと思います。

そう言うときは、

db_file “/var/lib/mpd/tag_cache”

という行をバッサリと削除して

db_file “/music/tag_cache”

をコピーして貼り付けるという方法になります。

やはり、カーソルを「db_file “/var/lib/mpd/tag_cache”」という、編集したい行のところへ移動させます。

そして、「dd」と「d」を二回押すと一行がバッサリ削除されます。

次に「o」キーを押すと一行空白ができて「文字入力モード」に変わります。
こういう風に、一行丸ごと貼り付けたいときは「i」ではなくて「o」で「入力モード」に切り替えた方が便利です。

あとは、「db_file “/music/tag_cache”」というのをコピーしてから貼り付ければ編集は完了ですから、「Esc」で「コマンドモード」に戻り「Sift+ZZ」で保存します。

なお、よくあるのは、編集をしていて今どのモードで作業しているのかが分からなくなることです。
そういうときは、何度かEscキイをおしてとりあえずコマンドモードに戻してから作業をやり直すと間違いが少なくてすみます。

以上、極めて簡単ですが、取りあえずはこれくらい理解しておけば最低限の編集は可能だと思います。

編集ミスでわけが分からなくなったときの対処法

最後に是非とも覚えておいて便利なのが、作業をやっているうちに「ぐちゃぐちゃ」になってしまってわけが分からなくなったときの対処法です。
こう言うときは、今までの作業はすべてなかったことにして終了させるのが一番利口です。編集ミスをリカバリーしようと思ってがんばると、ますますわけが分からなくなるの一般的です。
そう言うときは

「:q!」というコマンドを覚えておいてください。

これは今までの一切の変更を保存はしないでviを終了させるというものです。
途中で無茶苦茶になれば、「:q!」というコマンドで終了させて、もう一度最初からファイルを開いて編集作業をやり直せば、システムに何のダメージも与えずにすみます。
これもまた必須のコマンドです。

最後に

「Voyage MPD」を弄る上でこれだけ覚えておけば何とかなるというコマンドを最後にまとめておきます。

「i」→ 現在のカーソル位置から文字が挿入される。
「o」→ 現在のカーソル位置の次の行から文字が挿入される。
「x」→ 一文字削除
「dd」→ 一行バッサリと削除
「Esc」→ コマンドモードに戻る
「:q!」→ 保存はしないでviを終了。
「Sift+ZZ」→ ファイルを保存してviを終了。

これ以外にも検索や置換などのコマンドもあって、使いこなせば意外と便利なのがviというエディタなのですが、取りあえずはこれくらいから慣れていけば、また一つ、新しいPCオーディオの世界が広がるのではないでしょうか。

*なお、上記の編集が終われば

#/etc/init.d/mpd restart //MPDを再起動します。

これで再起動すると、当然データベースが存在しないのでwarningが出ますが大丈夫です。MPDは自動的にデータベースを作成してNAS上に「tag_cache」を作成してくれます。


5 comments for “「Voyage MPD」を弄る上でこれだけは知っておきたい「vi」のコマンド

  1. Phoenicia
    2012年2月19日 at 9:29 PM

    コピーペーストで編集したい時は、WEBページから直接コピーしてviエディタ画面にペーストするのではなく、必ず一旦別のテキストエディタ上にペーストしたものを使って下さい。

    WEBページからのコピーには制御コードが入っていたり日本語全角キャラクタになっていたりキャラクタが化けていたりすることが良くあります。
    そこで一旦テキストエディタにペーストしたもので内容を確認することでミスを未然に防ぎます。

  2. 2012年2月20日 at 9:56 AM

    こんにちは。

    viの使い方って本当にむずかしいですよね。
    当方はviはどうしてもなじめませんので、jedを使用しております。

    apt-get install jed
    にてインストールするだけですが、viよりは易しいと思います。

  3. yan
    2012年2月20日 at 12:30 PM

    viで気をつけなればいけないこと

    viのコマンドは大文字、小文字を区別します。
    i – カーソルの位置から挿入
    I – 行の先頭から挿入
    o – 次の行から挿入
    O – 前の行から挿入

    capslockがかかっていると思ったとおりに操作できないので注意です。

    “J”連打で何度泣かされたかわかりません。多分分かる人には分かると思います。(笑)

  4. フリップ^2
    2012年3月2日 at 1:52 AM

    Vi覚えずとも、
    # apt-get update パッケージ情報を更新してから
    # apt-get install nano  エディタのnanoを
    インストールすれば、いいのでは?

    viを使うメリットがいまいちわかりません。
    設定ミスを誘発するだけなのでは?

  5. フリップ^2
    2012年3月2日 at 2:04 AM

    電源ブチギリでもDBなどの設定を保存する方法として、スターターキットの
    マニュアルでは下記の方法が推奨されています。

    webgui (e.g. http:///)の Cron に以下のエントリーを記入

    # m h dom mon dow command
    */5 * * * * ( /etc/init.d/voyage-sync sync )

    さらに、, エディター( nano か viを使って),
    /etc/default/voyage-utilを編集し、

    VOYAGE_SYNC_RECOVER=”YES”
    VOYAGE_SYNC_RECOVER_DIRS=”var/lib/mpd”

    を記入
    とあります。

Comments are closed.