Kamuycikap - SentenceDataBase

日々の勉強の記録を気分で書き綴るブログ

diredモードでM-!した時にバックグラウンドでコマンド実行

find-diredコマンドを利用して、目的のファイルを探す事が頻繁にあり、見つけたファイルを外部プログラムで起動することもしばしば。
Emacsが高機能なファイラーとして機能しています。
昔使っていた、VzエディターのファイラーモードやFD、FILMTNを思い出します。

んで、困ったのがバックグラウンドでのコマンド実行。

M-!でプログラム実行出来るんですが、バックグランドにならない。
でもちょっと調べたらこんなのを発見

M-! command & とすれば,通常でのバックグラウンドでの実行が可能

すばらしいです。

漢字コードを変換する操作方法

Emacs23を利用していて、Windowsで作成したテキストファイル等を編集する場合や、Windowsな友人へテキストファイルを送信する場合に漢字コードを変更する必要があります。

キーボードから入力する文字コード

「CTL+x」「RET」「k」の後、ミニバッファの質問に変更したい文字コードを入力する。

ファイルの保存に使用する文字コード(カレントバッファのみ)

「CTL+x」「RET」「f」の後、ミニバッファの質問に変更したい文字コードを入力する。

画面表示に使用する文字コード

「CTL+x」「RET」「r」の後、ミニバッファの質問に変更したい文字コードを入力する。

文字コードを表す文字列表

文字列 文字コード
euc-japan EUCコード
shift_jis ShiftJISコード
junet JISコード
utf-8 UTF-8コード
cp932 CP932コード

行末改行コードを表す文字列

OS 文字列 意味
Unix -unix LF(Unix)
MS-DOS -dos CR-LF(MS-DOS)
Macintosh -mac CR(Macintosh)

改行コード指定の例

UTF-8で改行コードをLFにする場合

「CTL+x」「RET」「f」の後、utf-8-unixと入力

UTF-8で改行コードをCRLFにする場合

「CTL+x」「RET」「f」の後、utf-8-dosと入力

EmacsLispを触るときの予備知識

EmacsLispをいじり回すための知識

新規ファイルの作り方

1.C-x bとして、空ファイルを作成し、ファイル名を適当にxとかにしておく
2.C-x C-sとしてファイル名をつけて保存。

作成したプログラムの保存について

完成したプログラムを保存する時は
1.ファイルの拡張子を.elにする
2.ファイルの1行目を
 ;;;ファイル名 --- 説明文
 と記述する
3.タイトルとコピーライトメッセージを書いておく

Lispプログラムの評価方法

1.M-x load-fileで作成したファイルを読み込む
2.C-x C-fでファイルを開いてから、M-x eval-current-bufferを実行する
3.M-x lisp-interaction-modeとしておくか、M-x emacs-lisp-modeを実行

1はすでに完成したプログラムをロードする場合
2は継続してプログラムの修正を行う場合の方法として有効
3はLispプログラミング(編集)を行うときのモードとして必須

Lispプログラムの実行方法

Lisp関数やプログラムを実行する為には、あらかじめ関数やファイルを評価している必要がある。
(手順「Lispプログラムの評価方法」を参照)

M-x lisp-interaction-modeとしておくか、M-x emacs-lisp-modeとして評価しておき、関数の閉じ括弧「)」の後ろにカーソルを持ってきて、C-jとする。
または、M-C-xやC-x C-eを実行。

知らない関数の調べ方

setqと言う関数について調べたい場合は

C-h f setq

とコマンド入力。
基本的には英語の説明文になるが・・・・中学英語で頑張れる

知らない変数の調べ方

scroll-stepと言う変数について調べたい場合は

C-h v scroll-step

とコマンド入力。
基本的には英語の説明文になるが・・・・中学英語で頑張れる

こんな機能の関数あるかなぁ〜?と言った場合の関数の探し方

例えば・・・setqを使って変数の値を設定することで実現できそうな機能があるが、設定するべき設定が何なのかわからない場合、aproposコマンドを利用すると解決できるかもしれない。

<例:エディタ画面上の上端/下端を越えた場合、何行スクロールさせるか?>
コマンドaproposは引数として渡した正規表現にマッチするような記号列を名前に含む関数や変数を探してくれるコマンドなので、関係ありそうなscrollだとかcursorだとかで検索してみる

M-x apropos cursor\|scroll

すると、*Apropos*と言う名前のバッファが開いて、検索結果が画面に表示される。
表示された内容についてC-i等の検索コマンドを利用してみたり、少しずつしたにスクロールしながらみたりすれば・・・
scroll-stepなる変数を見つけることができて、その行でとすれば、詳しい説明を見ることができる。

この方法は、英語的な感覚(ボキャブラリ)が必要になるが、この方法が一番早い気がする。

キーバインドの一覧表示

M-x describe-bindings

特定のキーのバインド調査

M-x describe-key
この入力の後、調査したいキー操作を行う。
実際に呼び出されている関数を調査することが出来る。

Lispプログラミング時に利用するモード

下記2つのモードのどちらかで問題なくEmacsLispを編集できる。
M-x lisp-interaction-mode
M-x emacs-lisp-mode

Emacs23のキルリングとUbuntuのクリップボードをリンクさせたい

Emacsの操作にてC-kやC-spaceからのM-w等のキルリング操作とクリップボードを気持ちよく同期できないものか・・・・

つまり、Emacsで操作するカット&ペーストとUbuntuで操作するカット&ペーストを同期させたい。
デフォルトでは、Emacsでコピーした内容をChromやFirefoxの検索欄に貼り付けたりすることが簡単にはできない設定になっている様子です。
今まではマウス操作でカット&ペーストしていたんですが、やはり面倒くさい。

調べたらやはりありました。

; クリップボードとキルリングを同期させる
(cond (window-system
(setq x-select-enable-clipboard t)
))

これを、init.elに記載すればオッケーです。

Ubuntu9.10でEmacsのCtrl+Spaceを「Mark Set」にする

Ubuntu9.10でEmacsを利用している時、Ctrl-SpaceでMark SetしたいのにAnthyが起動します。
なんとかしてAnthyのCtrl-Space起動を変更したかったのですが、Anthyの設定にはそんなキーバインドがありませんでした。
するとこんなブログを発見!!

http://osima.jp/memo/ubuntu910-anthy.html:Title=Ubuntu9.10 + Anthy 日本語入力の切り替え設定

さっそくやってみたら、Ctrl-SpaceでのAnthy起動を変更できたので、早速メモです。
※いつまでも元ネタのブログがあるとは限りません。

IBusの設定開く

「システム」→「設定」→「IBusの設定」をクリック。

キーバインドの変更

キーバインド」→「一般タブ」→「キーボードショートカット 切り替え」の右にある「...」をクリック
「Ctrl-Space」を選択して「Shift」をクリックして「摘要」をクリックすると設定終了!!

Shift-SpaceでAnthyのON-OFFが切り替わります。

Emacs22へRubyモードを追加する

Ubuntu8.10のEmacs22にRubyモードをインストールする。

パッケージのインストール

KAMUYCIKAP% sudo apt-get install ruby-elisp 

.emacsに下記を記入する。

(autoload 'ruby-mode "ruby-mode"
  "Mode for editing ruby source files" t)
(setq auto-mode-alist
      (append '(("\\.rb$" . ruby-mode)) auto-mode-alist))
(setq interpreter-mode-alist (append '(("ruby" . ruby-mode))
                                     interpreter-mode-alist))

Ubunto8.10にEmacsをインストール

1.synapticパッケージマネージャを起動
  下記の順番にメニューからパッケージマネージャを起動。

  システム → システム管理 → synapticパッケージマネージャ

2.Emacs22パッケージを検索
  起動されたsynapticパッケージマネージャの「クイック検索」にEmacs22を
  入力。
  ※クイック検索欄はパッケージマネージャの上段(メニュー下あたり)にあります。

3.Emacs22パッケージをインストール
  パッケージ欄に表示されるEmacs22をダブルクリック。
  パッケージマネージャ上段、メニューした辺りにある「適用」ボタンをクリック。

Emacsのバージョンが22.1になっている事にびっくりです。
さらに、Ubuntuのパッケージ管理にビックリ。
aptをGUIで行うツールなのですが、依存関係やら気にしなくても良いのは楽ちんです。