2013年9月25日水曜日

Emacs バッファを読み込み専用にする

Emacs で現在編集中のファイルと同じ名前のファイルを開いたときに、どちらが元のファイルか分からなくなってしまうことがある。

ファイルのパスを表示するコマンドを見つけたが (C-x C-v)、同じ趣旨で、参照用として開いたファイルは読み込み専用にしておくと言う手もある。

コマンドは、C-x C-q

バッファを開いた状態で C-x C-q とタイプすれば読み込み専用になります。もう一度タイプすると解除されます。

読み込み専用時には、左下に "%%" が表示されるので、編集中のファイルか参照用のファイルかの区別がつきます。参照用ファイルを間違って編集することもなくなるので余計な気を使わなくて済むのもいい。

***

同じバッファ名だと区別がつかない時、バッファ名を変更するというのが王道なのかもしれませんが、M-x rename-buffer でバッファ名をタイプするのは少々面倒くさい。


<参考>

入門 GNU Emacs 第3版

<リンク> Emacs 現在のバッファのファイルパスを表示する


2013年9月23日月曜日

Emacs 現在のバッファのファイルパスを表示する

index.html とか manifest.json など、名前が決まっているようなファイルがあります。

そのようなファイルを編集している時に、過去はどうだったかと2つめの manifest.json を開くと、 もうどっちが編集中のものだったか分からなくなってしまいます。 やむなく、一回両方のファイルを閉じてもう一回開き直したりして・・・。

ファイルのパスが簡単に分ればいいのに。


ファイルのパスを表示するコマンド

Emacs で現在のバッファのファイルパスを知る方法が無いかと調べたら、こんなコマンドが有りました。

C-x C-v (find-alternate-file)

C-x C-v とタイプするとミニバッファに現在のファイルパスが表示されます。 確認できたら C-gで終了します。


C-g で終了?

実はこのコマンドは本来はファイルを間違えて開いてしまった時などに別の正しいファイルを開き直すコマンドです。
C-x C-f との違いは現在のバッファを閉じて新しいファイルを開くところです。

C-x C-v とタイプしてミニバッファに表示されたパスを編集して、目的のファイルを開く、というのが本来の使い方のようです。

今回はパスを知りたいだけなので、C-g で終了します。

<参考>

入門 GNU Emacs 第3版

<リンク> Emacs バッファを読み込み専用にする






2013年9月7日土曜日

git の見える化コマンド

git add や git commit はするけど過去を振り返ったり、状態を確認する時には戸惑ってしまうので、見える化コマンドをまとめておきます。 全面的に、"開発ツール徹底攻略 (WEB+DB PRESS plus)"の "はじめての Git" の記事を参考にしています。


1. git diff コマンド

  • インデックス(最後に 'git add' した状態)と現在の状態との差分を表示する
    $ git diff
    

  • コミット(最後に 'git commit' した状態)と現在の状態との差分を表示する
    $ git diff HEAD
    

  • コミットとインデックスの差分を表示する
    $ git diff --cashed
    



2. git log コマンド

  • 最新のコミットから順にログを表示する
    $ git log
    

  • ファイルの変更内容をパッチ形式出力する
    $ git log -p
    

  • 出力コミットの数を制限する
    $ git log -2        # 最新と一つ前の2つのコミットログを表示
    

  • ログメッセージの最初の一段落(要約部分)だけを出力する
    $ git log --pretty=short
    
  • ※ git commit する時にログメッセージは以下の形式で書くと良い。

    • 1行目:コミットする変更内容の要約
    • 2行目:空行
    • 3行目:変更詳細
    上記のような形式で書いておくと "git log --pretty=short" した時に要約部分だけが表示される。




3. その他

  • 今の状態では、どのファイルがコミットされるのかを確認する
    $ git status
    
  • 最新のコミット内容の表示
    $ git show       # git log -p -1 と同じかな?
    

<参考>

開発ツール徹底攻略 (WEB+DB PRESS plus)