by W. ジェイソン ギルモア
避けにくい気を散らすことで、平均的な勤務時間のうちどのくらいが失われていますか?携帯電話の呼び出し音や電子メールの通知が頻繁に聞こえること、Facebook や Twitter をもう一度チェックしたいという魅力、そして地元のコーヒー ショップなどの従来とは異なる環境で働く私たちの周囲の音や光景を考えると、おそらくあなたはそう思うでしょう。数分ではなく数時間の損失になります。
合理化された IDE を選択すると、多くの商用製品に通常見られる視覚的な付加機能は失われますが、入力するのと同じくらい早くコードを作成、整理、リファクタリングする能力が得られます。世界中の何百万もの開発者にとって、その IDE は Vim です。この記事では、PHP コードをこれまでよりも速く書くために Vim がどのように役立つかを説明します。
Vim の紹介Vim は、技術界の著名人である Bill Joy が 1976 年に最初のバージョンをリリースして以来、Unix ベースのオペレーティング システムの主力となっている、今では伝説的なテキスト エディターである vi の子孫です。Vim は「 Vi i mproved」の略です。 Vim は 1991 年に Bram Moolenar によって最初にリリースされており、ソフトウェア コミュニティへのまったくの新規参入者ではありません。古いにもかかわらず、Vim は現在も活発に開発されており、2010 年 8 月に新しいバージョンがリリースされました。
オープンソース プロジェクト、 Vim は、Windows を含むすべての主要なプラットフォームで利用できます。最新バージョンは Vim の公式ウェブサイトからダウンロードできます。また、Ubuntu などのオペレーティング システムを実行している場合は、パッケージ マネージャー内にあります。
Vim は、vi と同様にモーダル エディターです。つまり、その動作は、エディターが挿入モードかどうかを決定するメタ キーの使用に依存します。ややこしく聞こえるかもしれませんが、まさにこの機能により、驚くべき速度でコードを記述し、エディターの機能を操作できるようになります。
PHP 開発用の VimVim がインストールされていることを前提として、エディターを使用して簡単な PHP スクリプトを作成する手順に従ってください。
まず、コマンド プロンプトを開き、開発 Web サーバーのルート ディレクトリ内の便利な場所に移動します。次に、次のコマンドを実行して、Vim 内で Books.php という名前の PHP スクリプトの編集を開始します。
%>vim books.php
Vim エディタが開きますが、下部のステータス バーを除いて、コマンドと区別することはほとんどできません。ライン。挿入モードの場合、Vim は他のエディターと区別がつきません。通常どおり入力し、Enter キーを使用して次の行に進み、Backspace キーを使用して文字を削除します。挿入モードに入るには、i を押します。完了すると、ステータス バーに挿入モードが有効であることが表示されます。
次に、次のスクリプトをエディターに入力します。
<?php $books = array( "The Sun Also Rises", "The Dome", "The Jackal" ); if (count($books) > 0) { echo "You must like to read!"; } else { echo "Want to play video games?"; } ?>
入力中に間違えた場合は、undo コマンド (Esc に続いて u) を使用して変更を元に戻してみてください。複数の変更を元に戻すには、 u を複数回押します。
Vim コマンドモードのタスクファイルを保存するには、挿入モードを終了してコマンド モードに入る必要があります。これを行うには、Esc キーを押します。次にコロン(:)キーを押し、最後に w キーを押してファイルを書き込み、または保存します。この一連の流れは最初はぎこちないように思えるかもしれませんが、すぐにこの作業が習慣になるでしょう。
ファイルを保存して Vim を終了する場合は、Esc キーを押してから :wq というシーケンスを押します。
ここで、少しのリファクタリングを行っていて、変数名 $books を $library に変更したいとします。 Vim のグローバル検索と置換機能を使用すると、このタスクを驚くべき速度で実行できます。これを行うには、(もう一度 Esc キーを押して) コマンド モードに入り、次のように入力します:
:%s/$books/$library/g
このコマンドは、Vim に文字列 $books を検索 ( %s) して文字列 $library に置き換えるよう指示します (これをグローバルに実行します)。 %g)。
これは文字通り何百ものコマンド モード タスクのうちの 1 つにすぎません。たとえば、Vim 内で 2 つのファイルを同時に編集したいとします。インターフェースがまばらであることを考えると、これは不可能に思えますよね?もう一度コマンドモード(Esc)に入り、「:new」と入力します。これにより、図 1 に示すように、Vim 内に 2 番目の「ウィンドウ」が開きます。
ここをクリックすると大きな画像が表示されます
図 1. Vim での複数のファイルの編集
To switch between these windows, you'll use the command mode sequence Ctrl+w and then either k to enter the top window or j to enter the bottom window.
Incidentally, if you prefer a tabbed interface, try opening a second file using the command :tabe filename.php. You can then switch between tabs while in command mode using the sequence gt.:tab.
Even with 13 years of experience developing websites with PHP, I still manage to forget the name or parameter ordering of various native functions regularly. Vim removes the need to refer to the manual constantly thanks to its native omni completion feature, which supports command completion for dozens of languages, PHP included. To enable this feature, create a new file named .vimrc in your home directory and add the following line:
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
The .vimrc file is useful for managing configuration settings, which Vim will read each time the program is started. The above command will enable code completion for the PHP language. Once saved, restart Vim and open the books.php script again. Enter insert mode and type da, followed by Ctrl+x, Ctrl+o, and you'll see a select box similar to that shown in Figure 2.
Click here for larger image
Figure 2. Using PHP Command Completion
Use your arrow keys to select the desired function, pressing enter to insert it into the text. Experienced PHP developers will recognize that the five functions shown in this list are just a few supported by PHP 5.3.X. This is because the command-completion file tends to lag behind the latest release, so if you suspect that the command you're looking for isn't in the select box, refer to the manual just to be sure.
Taking Advantage of Vim PluginsVim is an extensible IDE and developers around the world have created hundreds of useful plugins that make your life as a developer much easier. Project is one such plugin, which allows you to manage and access files associated with a particular project easily. Figure 3 illustrates how Project will provide you with immediate and convenient access to a project's files. (See the Project homepage for configuration instructions.)
Click here for larger image
Figure 3. Using the Project Plugin
As this tutorial demonstrated, when you become familiar with Vim's command sequences, it's possible to write and manage scripts with amazing speed.