スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Prev.    Category    Next 

設定に役立つ基本関数 - 環境設定のための Emacs Lisp 入門

Emacs Lisp 入門の最後に設定やちょっとしたコマンドを作るのに役に立ちそうな基本的な関数、変数などを紹介します。

ファイルパス関連

buffer-file-name
カレントバッファーのファイルパスが格納された変数です。
expand-file-name
~, 相対パスなどを展開し、絶対パスを取得します。
(expand-file-name "~/.emacs.d/init.el") ;; "d:/home/.emacs.d/init.el"
(expand-file-name ".abbrev_defs" "~/")  ;; "d:/home/.abbrev_defs" 
                                        ;; 2 番目の引数省略時はカレントディレクトリー
file-name-directory
ファイルパスからディレクトリーのパスを取得します。
(file-name-directory "d:/home/.emacs.d/init.el")    ;; "d:/home/.emacs.d/"
file-name-nondirectory
ファイルパスからディレクトリーパスを取り除いたファイル名を取得します。
(file-name-nondirectory "d:/home/.emacs.d/init.el") ;; "init.el"
file-name-extension
ファイルパスから拡張子を取得します。
(file-name-extension "d:/home/.emacs.d/init.el")    ;; "el"
file-name-sans-extension
ファイルパスから拡張子を取り除いたファイル名を取得します。
(file-name-sans-extension "d:/home/.emacs.d/init.el")    ;; "d:/home/.emacs.d/init"

文字列操作

concat
文字列の結合です
(concat "Hello " "world") ;; "Hello world"
format
最初に紹介しましたが、 C の printf の書式で文字列を作成します。 書式について詳しくはマニュアルをご覧ください
(format "%s %d %f" "foo" 3 1.5) ;; "foo 3 1.500000"
(global-set-key (kbd "<S-f7>") '(lambda ()
                                  (interactive)
                                  (compile (format "gcc %s" buffer-file-name))))
format-time-string
現在の時間を指定した書式で文字列にします。 書式について詳しくはマニュアルをご覧ください
(format-time-string "%Y/%m/%d %H:%M:%S") ;; "2014/05/14 01:53:03"
(format-time-string "%x") ;; "2014/05/14"
insert
カレントのカーソル位置に文字列を挿入します。
(global-set-key "\C-o" '(lambda ()
                          (interactive)
                          (insert "\t")))

正規表現

正規表現のマッチ判定には string-match を使います。
(string-match REGEXP STRING &optional START)
string-match 自体を設定で使うことはあまりないと思いますが、 設定に記述した正規表現のパターンなどを *scratch* バッファーで確認するのに使えます。
(string-match "^\"\\(.*\\)\", \\([0-9]+\\) 行目: \\(警告\\|エラー\\)"
              "\"foo.cpp\", 34 行目: 警告") ;; C-j
0
マッチ判定後、 () で指定した文字列を取得したい場合は match-string を使用します。
(match-string NUM &optional STRING)
(match-string 2 "\"foo.cpp\", 34 行目: 警告")
"34"

次は ?

Emacs Lisp 入門は今回で終了です。
環境設定に絞った elisp の入門を書きましたが、実はこれだけで十分だと思って書いたものではありません。 Emacs の醍醐味は elisp を使って自分の欲しい機能を追加したり、 自在にカスタマイズしたりできるようになることです。 この入門が取っ掛かりになり、 elisp にもっと興味を持ってもらえたらと思います。

今後は elisp をもっと知り、 自分の Emacs を愛車ならぬ"愛 Emacs"になるよう仕上げていって下さい。

さらに Emacs を身につけるためには個人的には以下の書籍がお勧めです。 私も最初はこれで elisp 覚えました。
やさしいEmacs‐Lisp講座やさしいEmacs‐Lisp講座
(2011/06)
広瀬 雄二

商品詳細を見る


自分好みの Emacs になっている頃にはきっと Lisp が好きになっていることでしょう。
Emacs Lisp にとどまらず、 Lisp でアプリも作りたくなってくるかもしれません。 そんなときには、 Lisp の最新版といえる Clojure がお勧めです。 これでアプリもバリバリ作っていけます。

関連記事
スポンサーサイト
Prev.    Category    Next 

Facebook コメント


コメント

コメントの投稿

Font & Icon
非公開コメント

このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
9位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
3位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

09月 | 2017年10月 | 11月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。