home ホーム search 検索 -  login ログイン  | help ヘルプ

find 検索

1011 - 1020 / 1320    [|<]  [|<]  [<]  101  102  103  104  105  106  107  108  109  110   [>]  [>|][>|]
タイトル/名前 更新者 更新日
添付ファイル/030827002904_elisp.tar.gz msakamoto-sf 2009-04-26 20:14:10
Emacs/文字コード msakamoto-sf 2009-04-26 16:01:56
Emacs/モードライン(mode-line-format) msakamoto-sf 2009-04-26 15:49:20
Emacs/メニューバー・ツールバーの非表示 msakamoto-sf 2009-04-26 15:16:34
Emacs/ナローイング(選択範囲で○○する) msakamoto-sf 2009-04-26 15:02:56
Emacs/EmacsLispロードパス(load-path)の調整 msakamoto-sf 2009-04-26 14:43:58
Emacs/Infoファイルの追加 msakamoto-sf 2009-04-26 14:24:49
Emacs/M-xで始まる便利コマンド msakamoto-sf 2009-04-26 14:15:04
Emacs/コマンド履歴の呼び出し msakamoto-sf 2009-04-26 14:02:32
Emacs/バッファを読み込み専用に msakamoto-sf 2009-04-26 13:48:11
ソート項目 / ソート順     1ページ 件ずつ表示

添付ファイル/030827002904_elisp.tar.gz  

所有者: msakamoto-sf    作成日: 2003-08-27 20:07:51
カテゴリ: Emacs 添付ファイル 
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-04-26 20:14:10
md5:e8fe0d8c43fba1a0b49038825eaff01f
sha1:9dbb25f39596287e0ef01cc2c8a03963d256ad1e

Emacs/文字コード  

所有者: msakamoto-sf    作成日: 2003-01-30 13:24:56
カテゴリ: Emacs 

Emacs 20以降は多国語化されています。
しかしその反面、Mule関連の書籍で紹介されている文字コード変換系列のキーバインドやコマンドが軒並み使えなくなってます。
正確にはキーバインドやコマンド名が変更されています。

よく使うものについて簡単に紹介します。

まず「今どの文字コードを使用しているか」の確認です。
モード行右下に "EE-" や "EEE" と表示されている部分(C-x C-b のバッファ一覧ではEEJになったり)が、左から順に

  • キーボード入力の文字コード
  • 画面出力の文字コード
  • ファイル入出力の文字コード

を表しています。

"E" なら euc-jp , "S" なら shift_jis を意味します。

各文字コードを変更するには、以下のキーバインドを使います。

C-x RET l        set-language-environment
C-x RET c        universal-coding-system-argument
C-x RET C-\        set-input-method
C-x RET X        set-next-selection-coding-system
C-x RET x        set-selection-coding-system
C-x RET p        set-buffer-process-coding-system
C-x RET k        set-keyboard-coding-system
C-x RET t        set-terminal-coding-system
C-x RET f        set-buffer-file-coding-system

通常は最後の3つを使います。この3つはinternational/muleパッケージに属していて、Emacs由来とmule由来が混ざっています。

1.バッファファイルの読み書き(mode-lilne:X+Terminal)
取得:変数 buffer-file-coding-system(emacs由来)
設定:buffer-file-coding-systemを直接変更するか、set-buffer-file-coding-system関数(mule由来)で変更する。
キー:C-x RET b

2.キーボード入力(mode-line:Terminalのみ)
取得:関数keyboard-coding-system(mule由来)
設定:set-keyboard-coding-system(mule由来)
キー:C-x RET k
補足:これはencoded-kbd-mode (minor) が有効になっている必要がある。

3.端末入出力(mode-line:Terminalのみ)
取得:関数terminal-coding-system(emacs由来)
設定:set-terminal-coding-system(mule由来)
キー:C-x RET t
補足:set-terminal-coding-system内では結局、set-terminal-coding-system-internal関数(emacs由来)を起動している。

整理すると、X上でのファイルとバッファの文字コードを指定したい場合は

C-x RET f        set-buffer-file-coding-system

を使います。
ターミナルから使っていて、キーボード入力と画面出力の文字コードを設定したい場合は

C-x RET k        set-keyboard-coding-system
C-x RET t        set-terminal-coding-system

を使います。

文字コード周りはGoogleで調べると色々先達の苦労を知ることができますので、詳しくはそちら。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-04-26 16:01:56
md5:fc6ed6aa0205cf2264d4c0943cce6cb2
sha1:488c08d21281f9516ee6942729882410152be164

Emacs/モードライン(mode-line-format)  

所有者: msakamoto-sf    作成日: 2003-05-30 15:29:58
カテゴリ: Emacs 

参考:"mode-line-format をダイエットさす"
http://homepage1.nifty.com/blankspace/emacs/mode-line.html

aproposで"mode-line-format"で適当に調べて、自分好みに調整したのが下記mode-line-formatになります。

(line-number-mode t) ;; display line number
(column-number-mode t) ;; display column number
;; mode-line-format customization
(setq-default mode-line-format
  '("-"
    (line-number-mode "L%l-")
    (column-number-mode "C%c-")
    (-3 . "%p")
    "-"
    mode-line-mule-info
    mode-line-modified
    " "
    mode-line-buffer-identification
    " %[("
    mode-name
    mode-line-process
    "%n" ")%]-%-"
    ))
(setq-default default-mode-line-format mode-line-format)

本当は現在バッファの「総行数」も表示させたかったのだけれど、mode-line-formatで使用できる変数に該当するのが無かったので諦めました。

あと、mode-line-mule-info 変数の表示形式が nox とXで違っています。
X上だと "E" or "S" 一文字であったり、デフォルトエンコーディングの場合は何も表示されず、そのまま次のmode-line変数を表示します。 つまり、1文字しかありません。
しかしターミナルから起動する場合は3文字です。

これに関しては、mode-line-mule-infoをaproposしてみると判明しました。これの中身は

coding system for saving or writing the current buffer
coding system for keyboard input (if Emacs is running on terminal)
coding system for terminal output (if Emacs is running on terminal)

という順番になっています。
つまり後ろのキーボード入力・端末出力のエンコーディングは端末上で動作する場合のみ表示され、Xの場合は表示されないのが元々の仕様です。

というわけで、mode-line-mule-info 変数の表示形式が nox とXで違うのは仕様と言うことでスルーしました。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-04-26 15:49:20
md5:a96720714fd6e0793906dcbcf76faad2
sha1:b4b36d30796341543f20f6c15346d91401c6f93a

Emacs/メニューバー・ツールバーの非表示  

所有者: msakamoto-sf    作成日: 2003-05-30 15:11:01
カテゴリ: Emacs 

個人の趣味に依るところが大きい話です。
個人的に、Emacsではメニューバーやツールバーを全く使いません。メニューバーもX上でならまだしも、ターミナルから起動した時にすら表示されるのは邪魔です。
また、キーバインドやキー入力をミスするとビープ音がなる時があり、これも消したい。
そういう場合の.emacs.el設定を一部掲載します。

(cond
 ((eq window-system 'x)
  ;; when running on X 
  (set-scroll-bar-mode t) ;; enable X scroll bar
  (tool-bar-mode -1)      ;; disable tool bar
  ))
(setq visible-bell t)     ;; enable visual bell
(menu-bar-mode -1)        ;; disable menu bar (on terminal or X)


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-04-26 15:16:34
md5:f65ca767535885adb0e94d0c2e5322a1
sha1:f913dbf2af059b7573e868d0e8ad588049be7c85

Emacs/ナローイング(選択範囲で○○する)  

所有者: msakamoto-sf    作成日: 2003-05-30 14:53:46
カテゴリ: Emacs 

sakuraエディタを初めとするWindows上で動作する一般的なテキストエディタでは、「選択範囲に限定して」置換する機能があります。これはプログラミング時に非常に便利で、vimにも搭載されています("V" or C-v で範囲選択した状態で":"にすると、開始-終了が選択範囲になったコマンド入力モードになります)。

Emacsでそれを行うには、「ナローイング」という機能を使います。

詳しい説明は以下のURLを参照して下さい。
http://www.math.s.chiba-u.ac.jp/~matsu/lisp/emacs-lisp-intro-jp_7.html

基本的な使い方としては、まず範囲を選択するにはC-@でリージョン選択を開始した後、範囲選択後

C-x n n

or

M-x narrow-to-region

を実行します。
初回実行時には「本当に実行しますか?」と聞かれます。y or yesで実行され、以降は質問されません。

すると、選択範囲外のテキストが一切見えなくなります。
なぜ初回実行時に質問されるかというと、ナローイングを知らない初心者にとっては混乱を招くからです。

この状態で検索や置換を行うと、表示されている範囲のみが対象になります。これで「選択範囲内での検索・置換」を行えます。

ナローイングを解除するには widen コマンドを実行します。

M-x widen

or

C-x n w

C-x n はnarrowing 系のプレフィクス・キーで、n がナローイング、wがwidenning と覚えればキー・マップもわかりやすいでしょう。

なお、自分で作成した関数をナローイング対応させる場合の注意点については上述のURLを参照して下さい。簡単にまとめると、save-restriction, save-excursion という二つの特殊形式(special format)を使用して「一時的に」ナローイングを解除して、処理終了後に戻すようにする必要があるかも知れません。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-04-26 15:02:56
md5:b6ae76cadf22d459183e66ef5078ec91
sha1:859076737fe547332a5e9330cb091f78d74c32ee

Emacs/EmacsLispロードパス(load-path)の調整  

所有者: msakamoto-sf    作成日: 2003-05-25 14:34:29
カテゴリ: Emacs 

例えば "~/sample.el" というLispソースをロードし、Emacs起動時に評価・実行するには、以下の一文を.emacs.elに設定します。(またはLispモードで評価させます)

(load "sample")

実際には、その前にLispソースを探索するディレクトリを設定する必要があります。
load-path 変数にこんな感じで、対象ディレクトリを追加します。

(setq load-path
    (append (list nil
            (expand-file-name "~/")
            (expand-file-name "~/site-lisp"))
        load-path))

load-pathリストに、ホームディレクトリとその中のsite-lispディレクトリを追加しています。
さらに、nilを追加するとカレントディレクトリも探索対象になります。
expand-file-nameはホームディレクトリを表す "~" をフルパスに展開します。これにより、間違いなくホームディレクトリを指示できます。

load関数をもう少し詳しく解説します。

(load filename (optional) missing-ok nomessage nosuffix must-suffix)
filename
ロードするLispソースファイル。nosuffix がnilであれば、.el or .elcを勝手にくっつけて、load-path内を探索する。nosuffixがnil以外であれば、.el or .elc までfilenameで指定されているものとする。
missing-ok
nilだと、Emacsはエラーを通知する。nil以外だと、エラーは通知されず、load関数はnilを返す。
nomessage
nilだと、ロード中にエコー領域に「Loading hoge...」などと表示。nil以外だと何も表示しない。
nosuffix
nilだと、filename.elcをまず探し、次にfilename.elを探す。nil以外だと、filenameにすでに.el or .elcが含まれているものとして探索する。
must-suffix
nil或いは省略されていれば、適当に.elや.elcを付加して探索。nil以外ならfilenameにすでに.el or .elcが含まれているとして探索。
(load "sample")

を詳しく説明すれば、

  1. エラーがあれば通知
  2. "sample.elc", "sample.el" の順にload-path内を探索
  3. ロード中にエコー領域にメッセージ表示

という設定でsample.elc or .el をロード、評価しなさい、という意味になります。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-04-26 14:43:58
md5:8b524da59b5d8dbbc356dca33d4fc801
sha1:18a1d7f5905386fde6b9feb6e69801ccff5cdb98

Emacs/Infoファイルの追加  

所有者: msakamoto-sf    作成日: 2003-04-27 14:16:53
カテゴリ: Emacs 

メジャーモードのEmacsLispなどでは、Infoモードで閲覧可能なinfoファイルが添付されている場合があります。以下では、後からインストールしたEmacsLispのinfoファイルを"M-x info"から閲覧可能にする為の原理や手順をまとめてみました。

基本的な原理

M-x infoのinfoモードでは、Infoファイル(foo.info等)の存在するディレクトリのリストを次の順で生成します。

  1. Info-default-directory-list
  2. "M-x info" 時に Info-directory-list

最初に 1. が読み込まれ、Infoモードの起動時にそれをもとにInfo-directory-listが構築されます。

では実際にM-x infoで表示される一連の「メニュー」はどこに記述されているのか。それは、Infoディレクトリリストに登録されているディレクトリ中の「dir」ファイルです。
例えば「/usr/share/info」ディレクトリが登録されていたとすると、「/usr/share/info/dir」ファイルに件のメニューがInfoモード特有のフォーマットで記述されています。

このフォーマットは次のように記述されます。

^_
File: dir       Node: Top       This is the top of the INFO tree
* Menu:
Texinfo documentation system
User Install Documents
* Mew: (mew).                    Mail Client On Emacs.
* Mew(Japanese): (mew.jis).     Mail Clinet On Emacs(Japanese Ver).

最初の「^_」から「Texinfo ... system」までは、"M-x info" で表示するための「おまじない」と考えて下さい。
「User Install ...」からが、本論です。最初の「User...」の部分はカテゴリーとして認識される部分で、M-x info なら下線+太字表示されている部分です。
続いて「* Mew:」。ここで、いわゆる「Infoファイルへのリンク」が設定されます。

アスタリスク 半角空白 表題 コロン 半角空白

です。
次の「(mew)」が、「使用するInfoファイルの指定」です。末尾の".info"は省略可能なようです。
この例だと、実際は「mew.info」ファイルが参照されるようになっています。

半角括弧始まり Infoファイル名から.infoを省いたもの 半角括弧終わり ピリオド

がフォーマットです。最後のピリオドを忘れないで下さい。
ファイル名の部分は、パス指定も可能です。

最後のフィールドは説明文になります。

以上のような内容のdirファイルを、Info-default-directory-listに登録されているディレクトリ中に配置します。最終的にそれらのdirファイルはマージされ、M-x infoで表示される形式に整えられます。

実際にInfoディレクトリを追加してみる.emacs.el設定

;; Emacs and Other Info files
(require 'info)
(setq Info-default-directory-list
  (cons (expand-file-name "/home/foobar/external/info/")
    Info-default-directory-list))

添付ファイルは、/home/foobar/external/info/dirファイルです。
同ディレクトリ中にDDDやMewのinfoファイルが存在するイメージです。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-04-26 14:24:49
md5:420fb24729f787d0dd2307b94798de13
sha1:db8d4415d48fdb0b3a740b9c38633db4ad13bd52

Emacs/M-xで始まる便利コマンド  

所有者: msakamoto-sf    作成日: 2003-06-01 14:03:40
カテゴリ: Emacs 

Emacsでは M-x に続いて実行可能なコマンドがたくさんあります。その内で良く使っていた幾つかを紹介。

ヘルプ画面

全てはここから始まると言っても過言ではありません。

M-x help

ヘルプの種類それ自体の一覧が新しいバッファで開かれます。
ヘルプの種類毎にキーバインドがリストされ、エコー領域には

Type one of the options listed, or SPACE or DEL to scroll:

と表示され、ヘルプの種類に応じたキーバインドかスクロールを求めています。

"b" でキーバインドの一覧を確認できます。
"i" でInfoマニュアルを開くことが出来ます。

Infoマニュアルのナビゲーションを簡単にまとめます。

  • リンクっぽいところで(* hogehoge::とか)RET:リンク先に飛ぶ。
  • "n" :次のページへ。
  • "p" :前のページへ。
  • "u" :Infoの階層を一階層上へ。
  • "t" :そのInfoセクションのトップに移動する。

シェル実行

シェルモードの起動 :

M-x shell

その場でシェル実行 :

M-x shell-command
or
M-!

バッファ編集内容を破棄してファイルを再読込する

M-x revert-buffer

設定可能なオプション変数の一覧

M-x list-options

表示までに時間がかかる場合があります。

sを押すとその変数の値をその場で変更。
xを押すとその変数が t と nil で交互にトグル。

EmacsLispソースをバイトコンパイル

M-x byte-compile

で、ソースファイルの場所を入力する。
拡張子が.elcというファイルが、ソースと同じ場所に生成される。

変数名・関数名・コマンド名で情報取得

M-x apropos RET 変数名・関数名・コマンド名(正規表現可)

適合する変数名・関数名・コマンド名のリストが表示される。
望みのものにカーソルを合わせれば、詳細情報が表示される。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-04-26 14:15:04
md5:11773c34432d0367c50abbf7d7238bf2
sha1:1edcec6fcd10a632a368a3358f0e954d0921c449

Emacs/コマンド履歴の呼び出し  

所有者: msakamoto-sf    作成日: 2003-03-12 14:00:46
カテゴリ: Emacs 

検索のときとか。テキストの途中で検索を始めたけど、やっぱ先頭からしたいときなど。
Emacsコマンドの履歴呼び出し :

C-x ESC ESC

前の履歴へ :

ESC p

次の履歴へ :

ESC n

RETでそのコマンドを再実行できます。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-04-26 14:02:32
md5:8cc8783e6bac9d337095e9173e67a92d
sha1:42be31bcf3476442a82fee693629d7356293f511

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

所有者: msakamoto-sf    作成日: 2003-01-31 13:46:05
カテゴリ: Emacs 

C-x C-q

で現在のバッファの読み込み専用フラグをON/OFFできます。
バッファリスト上の"%"キーでも切り替えることができます。



プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-04-26 13:48:11
md5:a3abc759c0f251d2cb77ff48ecb8d4d0
sha1:d10765aaa796c84bdd6e5b85456383a17e190781