Showing posts with label vi. Show all posts
Showing posts with label vi. Show all posts

2012-05-29

社会人プログラマー向けのお勧め参考書記事が参考になる

という記事を読んだ。書かれたのは 2012-03-30。良記事なので、ブックマークを兼ねて紹介する。

タイトルは「新社会人 Web プログラマ向け」と書いてあるけれども、プログラマーだったら誰でも読む価値あり。大学生・高校生でも読める本は沢山ある。ウェブ・プログラマーじゃなくても、開発手法や VCS (Version Control System) の参考書は勉強になる。こういった参考書を読み漁って十分な知識を得た上級者には、他人に本を薦める時の手間を省いてくれる記事になる。

目次は以下の通り:

  1. プログラマとしての心得
  2. 開発手法
  3. WEB (追加)
  4. データベース
  5. VCS
  6. エディタ
    1. Emacs
    2. Vim
  7. CI/CD
  8. PHP
  9. JavaScript
  10. Ruby
  11. Python
  12. Perl
  13. “プロ”グラマ向け
  14. その他

各項目ごとに参考書が複数冊紹介されており、それぞれにコメントが付けられている。コメントは短いもので一行。たいてい 4 行。本を読んでみようか、興味を持つには十分な長さ。ぼくは全ての本を読んだわけじゃないけれども、良書が並んでいると思う。

2009-11-09

vi & 置換

vi で全文置換する時は、コマンド・モード (インサート・モードにいる時は ESC を押すとコマンド・モードに入れる) で「:」を入力した後、次のやうにする。

%s/foo/bar/g

上の例は、「foo」という文字列を「bar」に置換している。

&

さて、ここで「&」といふものの使い方を紹介しませう。この「&」を置換側で使うと、置換元の文字列へと展開される。例えば、「Eulenspiegel」を「Till Eulenspiegel」としたい場合、次のコマンドを打つ:

%s/Eulenspiegel/Till &/g

もし & を使わなかったら、かうなる:

%s/Eulenspiegel/Till Eulenspiegel/g

なんか置換側を typo してしまいそう。それに比べて、「&」一つで済むのはスマート!

C と &&

普段、vi を使わないぼくがこんなエントリーを書いているのは、この「&」におもいっきしハマったから。

というのも、vi 使いの人が置換が変になると言ってぼくに相談してきた。その時、彼は C のコードを修正していて、確かこんなコード

#if defined(FOO) || defined (BAR)

を、次の形に置換しやうとしていた。

#if !defined(FOO) && !defined(BAR)

それで使っちゃった置換式がこれ。

%s/#if defined(FOO) || defined (BAR)/#if !defined(FOO) && !defined(BAR)/g

見事にハマった。結局、& を \ でエスケープしたら通った。

%s/#if defined(FOO) || defined (BAR)/#if !defined(FOO) \&\& !defined(BAR)/g

vi。奥が深い。