Emacs

2008/11/06

.elファイルを任意の場所から読み込むようにする

Emacsの機能を拡張するには、.elファイルをダウンロードしてきて/usr/share/emacs/site-lispディレクトリ(Emacs標準)に配置するわけですが、この方法だと拡張するためにはroot権限が必要になって面倒な上、root権限のないユーザーは拡張できません。

そこで、.elファイルをホームディレクトリ内から読み込めるように設定しておけば便利です。

.emacsの先頭に以下を追加します。

(setq load-path
      (append
       (list
        (expand-file-name "~/elisp/")
       )
       load-path))

このようにするとホームディレクトリ下のelispディレクトリから.elファイルを読み込んでくれるようになります。

| | コメント (0) | トラックバック (0)

2008/11/05

Emacsで印刷

今までソースコードの印刷は

例)

$ nkf -e test.c > test.euc.c

$ e2ps test.euc.c > test.ps

$ lpr test.ps

などという大変面倒なことを繰り返していた。

この作業をどうにかして簡略化できないものかと思っていたらayukawaさんのubulogにカレントバッファをnkf, e2ps, lprを使って印刷する方法が書かれていた。(ありがたや)

Link:Emacsから印刷する - ubulog

(setq my-print-command-format "nkf -e | e2ps -a4 -p -nh | lpr")
(defun my-print-region (begin end)     
   (interactive "r")     
   (shell-command-on-region begin end my-print-command-format))
(defun my-print-buffer ()    
   (interactive)    
   (my-print-region (point-min) (point-max)))

オリジナルのままだと印刷時に「current buffer」みたいなヘッダーが表示されてしまうので、e2psに-nhオプション(no header)を与えている。

使い方は

M-x my-print-buffer

でカレントバッファを印刷。

M-x my-print-region

で選択範囲を印刷。

言うまでもないけど、とても便利!

もちろん、デフォルトプリンタを設定しておくことが大前提。

| | コメント (0) | トラックバック (0)

2008/10/26

Emacs起動時のフレームのサイズ,位置,フォントを指定

前にも起動時のフレームのサイズと位置をelispで設定しようとしたけど失敗し、今までエイリアスで誤魔化してた。

しかし、Emacsの設定は.emacsで完結させたいので再チャレンジ。

;; 起動時のサイズ,表示位置,フォントを指定
(setq initial-frame-alist
      (append (list
       '(width . 120)
       '(height . 45)
       '(top . 0)
       '(left . 0)
       '(font . "VL Gothic-11")
       )
      initial-frame-alist))
(setq default-frame-alist initial-frame-alist)

今度は成功。ついでにフォントもここで設定した。

| | コメント (0) | トラックバック (0)

2008/10/25

1行ずつスクロールする

Emacsはスクロールするとき(たぶん)半画面ずつスクロールするので微妙な調節ができない。

スクロールを1行ずつにするには以下を.emacsに追記する。

(setq scroll-step 1)

これだけ。

| | コメント (0) | トラックバック (0)

2008/10/23

wb-line-numberの行番号とスクロールバーの色を変える

「wb-line-number」を使って左側に行番号が表示できるようになったけど、行番号とスクロールバーの色がピンク

これを別の色に変えるには.emacsに以下を追記する。

;; 左側に行番号を表示
(require 'wb-line-number)
(wb-line-number-toggle)
(custom-set-faces
'(wb-line-number-face ((t (:foreground "LightGrey"))))
'(wb-line-number-scroll-bar-face
   ((t (:foreground "white" :background "LightBlue2")))))

"色の名前"が指定されているけど、これを調べるには

M-x list-colors-display

とすればEmacsで使える色の一覧が表示される。

Colordisplay

| | コメント (0) | トラックバック (0)

2008/10/22

Emacsの左側に行番号を表示する

Emacsの左側に行番号を表示するには「wb-line-number.el」を使います。

Link:wb-line-number.el - 開発者のサイト

リンク先のサイトからwb-line-number.elをダウンロードして/usr/share/emacs/site-lisp/ (Fedoraの場合)などのパスの通ったところに置き、.emacsに以下を追加します。

(require 'wb-line-number)

Emacs起動時に行番号を表示するには

(wb-line-number-toggle)

も書いておきます。また、起動後に行番号を表示したい場合は

M-x wb-line-number-toggle

とすると表示されます。

| | コメント (0) | トラックバック (0)

2008/10/10

NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その5

前回までの作業でC言語開発環境は整いましたが、実は問題があります。

その問題は次のようなコードを実行してみるとわかります。

#include <stdio.h>

int main(void)
{
  int num;
  
  printf("Please Input Num:");
  scanf("%d", &num);
  printf("Num:%d\n", num);
  
  return 0;
}

これをMSYSから実行しても次のようになってしまいます。

$ ./a.exe
100
Please Input Num:Num:100

scanf()の直前のprintf()で表示するはずの文字列が表示されません。これはMSYSで使っているrxvtの実装に問題があるためです。

この問題の対処法はrxvtを使用せず、Windows標準のコマンドプロンプトを使用するのが簡単です。具体的に「はC:\msys\1.0」内にある「msys.bat」の41行目の

if EXIST rxvt.exe goto startrxvt

をコメントアウトして

rem if EXIST rxvt.exe goto startrxvt

とすればMSYS起動時にrxvtが呼び出されなくなります。

| | コメント (0) | トラックバック (0)

2008/10/09

NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その4

1.動作確認

まずはデスクトップ上に作成されたMSYSのショートカットをダブルクリックしてMSYSを起動して次のようにコマンドを入力してください。

user@host ~
$ pwd
/c/Home

user@host ~
$ gcc
gcc.exe: no input files

user@host ~
$ make
make: *** No targets specified and no makefile found.  Stop.

user@host ~
$ gdb
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i686-pc-mingw32".
(gdb) quit

user@host ~
$ 

gcc、make、gdbはこのようなメッセージが表示されればOKです。また、pwdコマンドの実行結果のとおりホームディレクトリは「C:\Home」になっています。MSYSのデフォルトのホームディレクトリはC:\msys\1.0\homeなのですが、環境変数HOMEが設定されているとHOMEで指定されているパスをホームディレクトリを認識します。

2.設定(お好みで)

MSYSを起動してみてわかると思いますが、MSYSのシェルは白地にグリーンとブルーのプロンプトで目がチカチカします。そこで色を変更してみます。

シェルの色を変更するには「C\msys\1.0」内にある「msys.bat」を編集します。

55行目にある
if "x%MINGW32BGCOLOR%" == "x" set MINGW32BGCOLOR=LightYellow
if "x%MINGW32FGCOLOR%" == "x" set MINGW32FGCOLOR=Navy
を次のようにコメントアウトしてこのような2行を追加
rem if "x%MINGW32BGCOLOR%" == "x" set MINGW32BGCOLOR=LightYellow
rem if "x%MINGW32FGCOLOR%" == "x" set MINGW32FGCOLOR=Navy
if "x%MINGW32BGCOLOR%" == "x" set MINGW32BGCOLOR=Black
if "x%MINGW32FGCOLOR%" == "x" set MINGW32FGCOLOR=White

また、Emacsの背景も黒にしたい場合はemacsコマンドに-rvオプションをつけて起動すればEmacsが黒基調になりますが、いつもオプションをつけるのは面倒なので'emacs -rv'を'emacs'と認識するようにエイリアスを登録しておきます。

エイリアスを登録するには「C:\msys\1.0\etc」内にある「profile」に

alias emacs='emacs -rv'

と追記しておく。(MSYSを再起動すると変更が反映される)

| | コメント (0) | トラックバック (0)

2008/10/08

NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その3

今度はMinGWとMSYSをインストール。

1.MinGWのインストール

まずはSourceForgeからMinGW-5.1.4.exeをダウンロードします。ダウンロードしたらインストーラを起動します。(このとき新しくフォルダを作って、その中でインストーラを起動したほうがいい)

インストール途中にインストールするコンパイラの選択画面が表示されるので欲しいインストーラを選択します。その後インストール先の指定画面が表示されますが、もしパスに空白が含まれているとトラブルの元なのでインストール先は「C:\MinGW」とします。

2.MSYSのインストール

SourceForgeからMSYS-1.0.10.exeをダウンロードしてきて、インストーラを起動します。(MinGWのインストーラと同じフォルダ内で起動する)

インストール先を聞かれたら「C:\msys\1.0」とします。

インストールが開始されてプログレスバーが100%になるとコマンドプロンプトが立ち上がり、いくつかの質問に答えることになります。

Q.1 Do you wish to continue with the post install? [yn ] ・・・ y

Q.2 Do you have MinGW installed? [yn ] ・・・ y

Q.3 Please answer the following in the from of c:/foo/bar.
       Where is your MinGW installation?
MinGWをインストールしたパスを入力します。このとき「\」ではなく「/」を使います。

このあと、もし「Makeがありません」といった内容のメッセージが表示されても問題ないので先に進んでください。

3.GDBのインストール

一応、デバッガをインストールしておきます。

SourceForgeからgdb-6.3-2.exeをダウンロードしてきてインストーラを起動します。インストール先はMinGWをインストールしたパスと同じに。「C:\MinGW」

4.環境変数の設定

PATHに、「C:\MinGW\bin;C:\msys\1.0\bin」を追加

また以下を新規作成

C_INCLUDE_PATH=C:\MinGW\include

CPLUS_INCLUDE_PATH=C:\MinGW\include

LIBRARY_PATH=C:\MinGW\lib

| | コメント (0) | トラックバック (0)

2008/10/07

NTEmacs + MinGW + MSYSでWindows上にC言語開発環境を構築してみる - その2

まずはNTEmacsのインストール。

1.NTEmacsのバイナリをダウンロードする。

NTEmacsはIMEを利用した日本語入力に難があるようなので、「NTEmacs JP Project」からIME patchが当てられたNTEmacsのバイナリをダウンロードします。(現在の最新版は22.2)

Link:NTEmacs JP Project - SourceForge.JP

2.インストール

ダウンロードしたバイナリを起動すると解凍する場所を聞いてくるので、「C:\」を指定します。(ハードディスクのルートならC:\でなくてもよい)

解凍が終わるとC:\emacsが作成されます。NTEmacsの実行ファイルは C:\emacs\22.2\bin内のrunemacs.exeです。

3.起動する前に

NTEmacsを起動する前にいくつか設定を済ませておきます。

まずはC:\に「Home」というフォルダを作成しておく。(今後、このフォルダがホームディレクトリになる)

次は環境変数PATHに、NTEmacsの実行ファイルが置かれているパス「C:\emacs\22.2\bin」を追加する(パスとパスはセミコロン「;」で区切る)。これでNTEmacsをどこからでも呼び出すことができるようになる。

さらに環境変数HOMEを作って、値には「C:\Home」を設定する。

4.NTEmacsを起動

とりあえずrunemacs.exeのショートカットをデスクトップに作成してNTEmacsを起動してみます。

Ntemacs_2 

設定ファイル「.emacs」はC:\Home内に作成します。.emacsを新規作成して

(setq inhibit-startup-message t)

と書いて保存し、NTEmacsを再起動すると先ほどの起動画面が表示されなくなることが確認できるはずです。

| | コメント (0) | トラックバック (0)