FC2ブログ
にほんブログ村 IT技術ブログへ
にほんブログ村
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
vim
vim で知っておくと便利なコマンドを紹介します。どれもこれもソースコードを編集するときに役に立つものばかりです。

・リドゥ
Ctrl + r でやり直しのやり直しができます。

・素早く単語検索する
カーソルを単語の上に持って行き、* を入力するとすぐ検索されます。しかも単語として検索してくれるため、変数、関数を検索するときにはとても重宝します。以前は変数を検索するときは一旦変数名をコピーしておき、/ を入力してから変数名をペーストしていましたが、これなら一発で検索できます。コピー&ペーストするというのは時間がかかるだけでなく、プログラミング中の思考の邪魔にもなります。

・画面分割
vim では画面分割することができます。とても長いソースコードの違う箇所を同時に表示したり、編集したりするときに便利です。:sp を入力すると上下方向に画面が分割されます。画面の切り替えは、Ctrl + W を2回入力します。画面分割を元に戻す場合は、:only を入力します。

・右シフト、左シフト(インデント、アウトデント)
>> でカーソル行を右シフト、<< で左シフトできます。vim ではインデントを右シフト、アウトデントを左シフトといいます。

・入力補完機能
意外に知らない人が多い機能です。挿入モードで単語の最初の一文字(または数文字)を入力し、Ctrl + p を入力すると候補となる単語の一覧が表示されるので、カーソルキーで選択できます。入力モードのときならソースコードだけでなく、コメントを書いているときでも使えます。しかも、この機能が驚くほど正確なので、長い変数名、関数名を入力するときに効率が良くなるだけでなく、スペルミスもなくすことができます。

他にも便利なコマンドがあったら、また紹介します。



スポンサーサイト
既に知っている人もいるかもしれませんが、vi リファレンスのマグカップがあります。geekcheat.com というサイトで購入できるようです。

http://www.cafepress.com/geekcheat.11507711

コーヒーを飲みながら vi コマンドを覚えられるので一石二鳥ですね。しかも、マグカップだけでなく、Tシャツ、マウスパッド、トレーナー、更には赤ちゃんのよだれかけらしきものまであるようです。でも、Tシャツやトレーナーだと、自分が着ているときはコマンドを見られないですよね?


僕は普段の仕事でサーバの動きを見るために、ログファイルの成長を監視するということを良くやります。ログファイルを監視するには、tail コマンドが便利です。

[例]
tail -f /var/lib/catalina/logs/catalina.out
(/var/lib/catalina/logs/catalina.out は Web サーバ(Tomcat)のログファイル)



但し、この tail コマンドを使うときには一つ気を付けることがあります。サーバのログファイルはローテーション(世代交代)の設定をしている場合がほとんどです。ローテーションが行われるとログのファイル名が変更され、元のファイル名のログはサイズが 0 の状態から再スタートします。ログを監視している最中に運悪くローテーションが行われた場合、tail コマンドではログファイルの再オープンが行われないため、それ以降ログファイルを監視できなくなります。

こういう場合は、以下のように --follow=name オプションを使うと便利です。

[例]
tail --follow=name /var/lib/catalina/logs/catalina.out



--follow=name オプションを指定すると、ローテーションされた場合でもログファイルを再オープンしてくれるので、引き続きログファイルを監視できます。

また短縮形の -F オプションを使う事もできます。

[例]
tail -F /var/lib/catalina/logs/catalina.out



こっちのほうが覚えやすくて便利なので、ログを監視する時には常に -F オプションを使う癖を付けたほうが良いですね。


一般的には、関数呼び出しのオーバーヘッドには少し時間がかかる、という認識があるようです。
関数を呼び出す場合、引数やリターンアドレスといったスタックフレームの情報をスタックに格納する必要があるので、その処理で時間がかかります。

ここで話題にしたいのは、関数呼び出しのオーバーヘッドについて心配する必要があるかどうか、ということです。

1970年代初めの頃はコンピュータの速度は当然今より速くありませんでしたが、しかしそれでも、関数呼び出しに時間がかかるという考えは的外れでした。当時でさえそうだったので、今の時代だったら尚更です。なので、関数呼び出しのオーバーヘッドが本来やりたいビジネスロジックの足かせになるほど時間がかかるということはないでしょう。

結論としては、関数呼び出しのオーバーヘッドは心配する必要はない、ということになります。


/* 引用 */ blockquote { padding: 0.3em 0.3em 0.3em 0.5em; width: 80%; border-left: 5px solid #4a0400; background-color: #AFEEEE; font-size: 0.875em; overflow: auto; } blockquote pre, blockquote pre code { margin: 0; overflow: auto; }
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。