おぎろぐはてブロ

なんだかんだエンジニアになって10年以上

(PHP)プログラマのためのVIM (6) - ビジュアルモード、ウィンドウ、タブ

進むたびに、1回の量が少なくなっているような気もしなくもない。

ビジュアルモード (visual mode)

  • これなら、あいまいになってる範囲や移動コマンドを思い出すより簡単
  • 選択開始は
    • v - 文字単位
    • V - 行単位
    • CTRL-V - ブロック単位 (矩形選択)
      • [補足] CTRL-○のときは、基本的に、○のところは小文字でも大文字でも同じ動きです
  • 選択範囲を変更するのに、移動コマンドをなんでも使える
  • 選択中に通常コマンド及び:コマンド(=置換とか)を実行できる
  • ビジュアルブロックモードはすごいよ (→CTRL-V)
    • 特にテーブルのようなテキストのとき
    • [tip] ビジュアルブロックで選択中に、oで、矩形選択中の対角にカーソルが移動します。反対側の選択範囲を変えたいときに使います。下の図のように選択している状態でoをおすと、左上隅のFに移動します。また、Oだと、同じ行の反対側(左下のF)に移動します。


  • ブロックモードでの一括操作
    • I<text><Esc> - 選択した範囲の前に全行<text>を挿入
    • A<text><Esc> - 選択した範囲の後に全行<text>を挿入
    • c<text><Esc> - 選択したブロックの各行について<text>に選択範囲を置き換える
    • r<char><Esc> - 選択範囲を全て<char>に置き換える

ウィンドウ

  • ウィンドウの操作について習得しよう
    • [補足] ここでのウィンドウとは、vimの中で画面分割してるところです
  • ウィンドウ間を移動するにはどうしたらよいか
  • :new (新規ウィンドウ作成)、:sp (画面分割)をすぐに使えるように覚えておこう
  • CTRL-W - ウィンドウ間の移動と、サイズ変更の必須コマンドを覚えておこう
  • [補足] ちょっと原文が少ないので自分がよく使っている範囲で補足しておきます (↓の上から4つだけ覚えておけばどうにかなる)
    • ウィンドウ作成
      • :new - 新規ウィンドウ作成
      • :sp - 画面分割 (水平分割)
      • :vsp - 垂直分割
    • ウィンドウ間移動
      • CTRL-W CTRL-W or CTRL-W w - ウィンドウ間を順に移動
      • CTRL-W CTRL-K or CTRL-W k or CTRL-W ↑- 現在のウィンドウから上に移動
      • CTRL-W CTRL-J or CTRL-W j or CTRL-W ↓- 現在のウィンドウから下に移動
      • CTRL-W CTRL-H or CTRL-W h or CTRL-W ←- 現在のウィンドウから左に移動
      • CTRL-W CTRL-L or CTRL-W l or CTRL-W →- 現在のウィンドウから右に移動
    • ウィンドウサイズ変更
      • nCTRL-W+ or CTRL-Wn+ - 高さをn行分高くする
      • nCTRL-W- or CTRL-Wn- - 高さをn行分低くする
      • nCTRL-W< or CTRL-Wn< - 幅をn行分狭くする
      • nCTRL-W> or CTRL-Wn> - 幅をn行分広くする
      • CTRL-W= - 全てのウィンドウの幅・高さを揃える

タブ

  • vim7ではタブがサポートされた
  • :tabe <file>で新しいタブでファイルを編集できる
  • :tabcで閉じる
  • :tabn, :tabp (もしくは、gt, gT)でタブ間移動
  • たぶん、もっと簡単に移動できるようにキーをマップしたいんじゃないかな (もし、gt, gTが合わないなら)
    • [補足] CTRL-<PageDown>, CTRL-<PageUp>にも割り当てられています。(いま使ってるキーボードはファンクションキー押さないとダメだから使えないけど) デフォルトで他にどのようなコマンドにアサインされているか知るためには、:help gtとかヘルプ+コマンド叩いてみると、いいかも

40ページ/全77ページ

半分超えた!
次は、補完、キーマッピング

PHP Security Tips #1〜#7

Zend Developer Zoneで、PHP Security Tipsというのが連載されはじめた。現時点で#7まで。

  • PHP Security Tip #1
    • PHPのバージョンを最新に保とう
  • PHP Security Tip #2
    • あなたのサイトについて、エラーを表示させていないことと、潜在的に情報を漏らしていないかを確認しよう
    • Simply setting display_errors = Off in your php.ini of your production server will prevent you from leaking information that may give intruders hints to the structure of your system. By default, display_errors = On.
  • PHP Security Tip #3
    • Since your application may be harboring security vulnerabilities that you have not been exposed to, third-party security software or services should be considered to help bring a fresh perspective and find overlooked weaknesses.
  • PHP Security Tip #4
    • 重要な情報を含むファイルやフォルダは、デフォルトの名前を利用しない
  • PHP Security Tip #5
    • ユーザを信頼するな
    • 入力をフィルタし、出力をエスケープする
  • PHP Security Tip #6
    • 数字をSQLクエリで扱う際は、常にキャストする
  • PHP Security Tip #7
    • session fixation(セッション固定)攻撃対策となるsession_regenerate_id()の利用方法について
    • [補足] session fixationについては、PHPのSession Fixation問題 – yohgaki's blogを参考にすると分かりやすいと思います

軽い内容だけれど、積み重ねていくのが大事かも。