Emacsのバージョンがかわるたびに拡張入れ直すのめんどいので拡張入れるフォルダを作る
$ mkdir ~/site-lisp
.emacs.elに下のやつを書いてパスを通す
(setq load-path (append (list (expand-file-name "~/site-lisp/") ) load-path))
Emacsのxhtmlな拡張。
Carbon Emacsにははじめから入っているので.emacs.elに設定を書くだけ
(load-library "autostart") (custom-set-variables '(indent-region-mode t) '(nxhtml-global-minor-mode t) '(nxhtml-global-validation-header-mode t) '(nxhtml-skip-welcome t)) (custom-set-faces )
これでnxhtmlのスタートページっぽいやつもでなくなる
下のサイトからダウンロードして、site-lispに解凍。
nxhtml
でloadをちょっと変更
(load "nxml/autostart.el") (custom-set-variables '(ecb-options-version "2.32") '(indent-region-mode t) '(nxhtml-global-minor-mode t) '(nxhtml-global-validation-header-mode t) '(nxhtml-skip-welcome t)) (custom-set-faces '(mumamo-background-chunk-major ((((class color) (min-colors 8)) (:background "*")))) '(mumamo-background-chunk-submode ((((class color) (min-colors 8)) (:background "*"))))) (add-hook 'nxml-mode-hook (lambda () (setq auto-fill-mode -1) (setq nxml-slash-auto-complete-flag t) (setq nxml-child-indent 2) (setq indent-tabs-mode t) (setq tab-width 2)))
Rubyのソースコードを解凍するとmiscディレクトリにemacs用の.elファイルが入っているのでそれをパスが通ったところに置く。
の6つ.
それとendに対応するブロックを教えてくれるruby-block.elもダウンロード.
;; ruby-mode.el (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)) (autoload 'run-ruby "inf-ruby" "Run an inferior Ruby process") (autoload 'inf-ruby-keys "inf-ruby" "Set local key defs for inf-ruby in ruby-mode") (add-hook 'ruby-mode-hook '(lambda () (inf-ruby-keys))) ;; ruby-electric.el (require 'ruby-electric) (add-hook 'ruby-mode-hook '(lambda () (ruby-electric-mode t))) ;; rubydbnx.el (autoload 'rubydb "rubydb2x" "run rubydb on program file in buffer *gud-file*. the directory containing file becomes the initial working directory and source-file directory for your debugger." t) ;; ruby-block.el (require 'ruby-block) (ruby-block-mode t) (setq ruby-block-highlight-toggle t)
Ruby on Rails用emacsの拡張 Rinari: Ruby on Rails Minor Mode for Emacs
詳しくはRinari: Ruby on Rails Minor Mode for EmacsやおもしろWEBサービス開発日記さんのところに載っていますが、 めもとして。
コマンドはM-x describe-bindingsで一覧がでてきます。
まず基本インストール.
gitをつかいます。
$ cd ~/path/to $ git clone git://github.com/eschulte/rinari.git $ cd rinari $ git submodule init $ git submodule update
そして.emacs.elに
;; Interactively Do Things (highly recommended, but not strictly required) (require 'ido) (ido-mode t) ;; Rinari (add-to-list 'load-path "~/path/to/your/elisp/rinari") (require 'rinari)
idoはRinariとは別の便利機能なやつです。自分はdiredが使いにくくなったのでコメントアウトしちゃいました。
そしてRhtml用のセットアップとして
と3つから選べるようになっていますが、nXhtml-modeとかだとerbファイルでスニペットが使えないっぽいのでrhtml-modeを使います。
ここからダウンロードするかgitで
$ cd ~/path/to $ git clone git://github.com/eschulte/rhtml.git
で.emacs.elに
;;; rhtml-mode (add-to-list 'load-path "~/path/to/your/elisp/rhtml") (require 'rhtml-mode) (add-hook 'rhtml-mode-hook (lambda () (rinari-launch)))
背景を黒にしているターミナルやemacsを使ってるとRHTMLモードのハイライトが見づらいので
emacsの~/site-lispとかに入れたrhtml/rhtml-fonts.elを編集
120行目あたりの
((class color) (class min-colors 8)) :background "blue")
blueを
((class color) (class min-colors 8)) :background "black")
blackと変えるとハイライトはなくなるけど見やすくなります。
%hとかのあとにTabを打つと<%h= @item %>とかしてくれる補完機能。便利。
$ wget http://yasnippet.googlecode.com/files/yasnippet-0.5.9.tar.bz2 $ tar jxf yasnippet-0.5.9.tar.bz2 $ mv yasnippet-0.5.9 ~/site-lisp/yasnippet $ cd ~/site-lisp/yasnippet $ git clone git://github.com/eschulte/yasnippets-rails.git
.emacs.elに
(setq load-path (cons (expand-file-name "~/site-lisp/yasnippet") load-path)) (require 'yasnippet) (yas/initialize) (yas/load-directory "~/site-lisp/yasnippet/snippets") (yas/load-directory "~/site-lisp/yasnippet/yasnippets-rails")
これよりもRinariのほうがよさそうな。
これもCarbon Emacsじゃはじめっから入っているので設定だけ
(defun try-complete-abbrev (old) (if (expand-abbrev) t nil)) (setq hippie-expand-try-functions-list '(try-complete-abbrev try-complete-file-name try-expand-dabbrev)) (setq rails-use-mongrel t) (require 'rails)
Carbon Emacsじゃないばあい
3つをパスの通ったところに置いて
(setq auto-mode-alist (cons '("\\.rhtml$" . ruby-mode) auto-mode-alist)) (require 'rails) (define-key rails-minor-mode-map "\C-c\C-p" 'rails-lib:run-primary-switch) (define-key rails-minor-mode-map "\C-c\C-n" 'rails-lib:run-secondary-switch) (defun try-complete-abbrev (old) (if (expand-abbrev) t nil)) (setq hippie-expand-try-functions-list '(try-complete-abbrev try-complete-file-name try-expand-dabbrev))
flexとかをEmacsからやりたいから。Builderはもういや。
これとrascut、
log.asを組み合わせると自動でパブリッシュ、ブラウザの再読み込みが
行われるのでほんとにBuilderいりません。Builderとrascut,log.asの組み合わせも楽だけどなんかいや。
Emacsでactionscriptを使うにはactionscript-mode.elとas-config.elとcc-modeが必要になります。
Casual Game Developmentとsorceforgeから下のみっつをダウンロードして~/site-lispに
actionscript-mode.elの先頭に
(setq load-path (cons (substitute-in-file-name "~/.emacs.d/cc-mode-5.28") load-path)) (require 'cc-mode)
as-config.elの一番上にある(require as-profiler)コメントアウト
.emacs.elに下記を追記。でもnxhtml入れてる場合はmxmlの編集が変なモードになるので
.emacs.elのnxhtmlの設定を記述している前に下記のコードを入れるようにするとなんでかちゃんとなる。
actionscriptの編集だけなら;;mxml以降はいらない。
;; actionscript (defvar running-on-x (eq window-system 'x)) (autoload 'actionscript-mode "actionscript-mode" "Major mode for actionscript." t) (add-to-list 'auto-mode-alist '("\\.as$" . actionscript-mode)) (eval-after-load "actionscript-mode" '(load "as-config")) ;; mxml (setq auto-mode-alist (append (list '("\\.mxml" . xml-mode)) auto-mode-alist)) (autoload 'sgml-mode "psgml" "Major mode to edit SGML files." t) (autoload 'xml-mode "psgml" "Major mode to edit XML files." t)
yasnippetのactionscript-mode版
まずyasunippet-x.x.xx-tar.bz2をダウンロードして解凍してパスの通ったところに置く.
それとyasnippetのactionscript-modeを(.elじゃなく)yasnippet/snippetsに置く
$ cd ~/site-lisp $ wget http://yasnippet.googlecode.com/files/yasnippet-0.5.10.tar.bz2 $ tar jxf yasnippet-0.5.10.tar.bz2 $ mv yasnippet-0.5.10 yasnippet #actionscript-modeの追加 $ cd yasnippet/snippets/text-mode $ svn export http://www.libspark.org/svn/yasnippet/text-mode/actionscript-mode/
次に .emacs.elに
(setq load-path (cons (expand-file-name "~/site-lisp/yasnippet") load-path)) ;; load yasnippet (require 'yasnippet) (yas/initialize) (yas/load-directory "~/site-lisp/yasnippet/snippets") ;;; hippie-expand (global-set-key "\C-o" 'hippie-expand) (setq hippie-expand-try-functions-list '(yas/hippie-try-expand try-expand-dabbrev try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill try-complete-file-name-partially try-complete-file-name try-expand-all-abbrevs try-expand-list try-expand-line try-complete-lisp-symbol-partially try-complete-lisp-symbol))
これで動的略語展開とかと一緒にC-oでyasnippetとかもできるように。
emacsにタブをつける。
からelscreen-tab.elをダウンロードしてパス通ったところにおく
(setq elscreen-prefix-key "\C-z") (require 'elscreen "ELSCREEN" t) (require 'elscreen-tab)
デフォルトのコマンドはC-zだけど変更したい場合はsetq elscreen-prefix-keyの部分のキーを変更
コマンド | 動作 |
---|---|
C-z C-c | 新規タブ作成 |
C-z C-n,C-z C-p | タブ移動 |
C-z C-z | ファイルを新規タブに開く |
C-z C-k | 現在のタブを消す |
IDEっぽい画面をくっつけるなんかすっごい拡張。起動の遅さもIDE…
まだ全然使いこなせていません。
でもelscreen-tabが使えなくなるから使ってません。
必要なものは
Carbon EmacsならCEDETは
Help→Carbon Emacs Package→Net Install→Cedetで簡単にインストールできる
ネットインストールしてるならECBのパッケージをpathが通ったところにおいて
$ cd ~/site-lisp/ecb-2.32 $ EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs CEDET=/Applications/Emacs.app/Contents/Resources/site-lisp/cedet/
cedetも一緒にダウンロードしてインストールするなら
$ cd ~/site-lisp/cedet-1.0pre4 $ make EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs $ cd ../ecb-2.32 $ make EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs CEDET=~/site-lisp/cedet-1.0pre4
.emacs.elに
(setq load-path (cons (expand-file-name "~/site-lisp/ecb-2.32") load-path)) (load-file "/Applications/Emacs.app/Contents/Resources/site-lisp/cedet/common/cedet.el") ;;パスは適宜 (setq semantic-load-turn-useful-things-on t) ;; ECB (require 'ecb) (setq ecb-tip-of-the-day nil) (setq ecb-windows-width 0.25) (defun ecb-toggle () (interactive) (if ecb-minor-mode (ecb-deactivate) (ecb-activate))) (global-set-key [f2] 'ecb-toggle)
F2で起動できるようになります。
js2-mode
下のjavascript-modeよりこっちがよろしそうな。
まず最新版をパスが通ったディレクトリに置く。名前変更。
$ cd ~/site-lisp $ wget http://js2-mode.googlecode.com/files/js2-20080616a.el $ mv js2-20080616a.el js2.el
でemacsからdiredで~/site-lispディレクトリを開く。 んで
M-x byte-compile-file [Enter] js2.el [Enter]
.emacs.elに
(autoload 'js2-mode "js2" nil t) (add-to-list 'auto-mode-alist (cons "\\.\\(js\\|json\\|jsn\\|htc\\)\\'" 'js2-mode)) #下は好みで tab幅を2にする設定 (add-hook 'js2-mode-hook (function (lambda () (setq tab-width 2) (setq javascript-indent-level 2) (setq javascript-basic-offset tab-width) )))
これより上のjs2-modeのほうがよいです、たぶん。
nxhtmlに入ってるからCarbonEmacsにはいらないけど、Linuxの使うときとかに。
ここから最新版
jsファイルだけじゃなくjson,htcもついでにこの拡張で使っちゃうように。
;; javascript-mode (add-to-list 'auto-mode-alist (cons "\\.\\(js\\|json\\|jsn\\|htc\\)\\'" 'javascript-mode)) (autoload 'javascript-mode "javascript" nil t) (add-hook 'javascript-mode-hook (function (lambda () (setq tab-width 2) (setq javascript-indent-level 2) (setq javascript-basic-offset tab-width) )))
ついでにcssも。javascript.elと同じ場所にあるcss-mode.elをsite-lispに入れて、
(autoload 'css-mode "css-mode" nil t) (setq auto-mode-alist (cons '("\\.css$" . css-mode) auto-mode-alist)) (setq css-indent-level 2)
まず、kill-summary.elのtruncate-string を truncate-string-to-widthに変更する
.emacsに
(autoload 'kill-summary "kill-summary" nil t)(global-set-key "\M-y" 'kill-summary)
【M-y】か【M-x kill-summary】で呼び出し。
以下使い方の抜粋
コマンド | 動作 |
---|---|
p | 前の候補を選択し元編集バッファヘヤンク |
n | 次の候補を選択し元編集バッファヘヤンク |
q, C-g | 中止 |
C-xo | 窓を移動するとヤンク領域を消去 |
d | 現在行のキルリングを即座に消去 |
. | で現在行をヤンクポインタに設定 |
t | 各キルの行数表示を切り替え |
_ | でサマリー高さを変更 |
・初期ウィンドウ高さは ~/.emacs 中で次のように行なう(デフォルト値 10)
(setq kill-summary-window-height 10)
kill-ring の内容を一覧表示して選べるようになるまする。
履歴保存。 session.el
(when (require 'session nil t) (setq session-initialize '(de-saveplace session keys menus) session-globals-include '((kill-ring 50) (session-file-alist 100 t) (file-name-history 100))) (add-hook 'after-init-hook 'session-initialize))
apacheの設定ファイルを色分けしてくれます。 debianのsite-とかの中のファイルも色がつくので便利です。
.emacs.elに
(autoload 'apache-mode "apache-mode" nil t) (add-to-list 'auto-mode-alist '("\\.htaccess\\'" . apache-mode)) (add-to-list 'auto-mode-alist '("httpd\\.conf\\'" . apache-mode)) (add-to-list 'auto-mode-alist '("srm\\.conf\\'" . apache-mode)) (add-to-list 'auto-mode-alist '("access\\.conf\\'" . apache-mode)) (add-to-list 'auto-mode-alist '("sites-\\(available\\|enabled\\)/" . apache-mode))
ローカルのemacsでリモートのファイルを直接編集できるようになるやつ。
まずtrampをダウンロード。でもCarbon Emacsには始めからはいっているからこの手順はいらない。
$ cd ~/src $ wget http://ftp.gnu.org/gnu/tramp/tramp-2.1.9.tar.gz $ tar xzfv tramp-2.1.9 $ mv tramp-2.1.9 ~/site-lisp/tramp
.emacs.elに下記の2行を追加。Carbon Emacsは最初の一行はいらない。
$ emacs .emacs.el (add-to-list 'load-path "~/site-lisp/tramp/lisp/") (require 'tramp)
使い方はC-x C-fで
/ssh://user@host:path ;;例 /ssh://emacser@example.jp:/home/emacser/.emacs.el
でもsshのポートを標準の22から変えていたりすると動きません。なのでローカルマシンの~/.ssh/configを設定。
$ vi ~/.ssh/config Host ex HostName example.jp Port 1122 User emacser Protocol 2
で、
/ssh:emacser@ex:/home/emacser/.emacs.el
で繋がるように。
/etcとかrootのファイルをいじりたい場合は
/multi:ssh:emacser@ex:sudo:root@localhost:/etc/resolv.conf
Emacs補完インターフェースの拡張。GUIっぽく。 C-oの補完がカッコよくなります。
まずは、githubからダウンロード
$ cd ~/site-lisp $ git clone git://github.com/m2ym/auto-complete.git $ cd auto-complete $ git checkout v1.0 $ emacs -L . -batch -f batch-byte-com;ile *.el
そして.emacs.elに記述
$ emacs ~/.emacs.el (add-to-list 'load-path "/Users/ユーザ/site-lisp/auto-complete") (require 'auto-complete) (require 'auto-complete-config) (global-auto-complete-mode t)
参考 http://www.emacswiki.org/emacs/ZenCoding
めんどくさいHTMLを簡単にしてくれるzencodingを使うための拡張。
まずgithubからインストール
$ cd ~/site-lisp $ git clone git://github.com/chrisdone/zencoding.git
.emacs.elにとりあえずzencodingを使いたいモードを追加。あとはここを参考にC-<Return>で
;;zencoding (add-to-list 'load-path "~/site-lisp/zencoding/") (require 'zencoding-mode) (add-hook 'html-mode-hook 'zencoding-mode) (add-hook 'nxhtml-mode-hook 'zencoding-mode) (add-hook 'text-mode-hook 'zencoding-mode) (add-hook 'sgml-mode-hook 'zencoding-mode) ;; Auto-start on any markup modes
自分が入れたEmacs便利拡張・設定集 (2013年版)を参考に。
multiple-cursors, expand-region, smartrepの3つをpackage-list-packageからインストール
.emacs.d/init.elに下記を追記
(require 'expand-region) (require 'multiple-cursors) (require 'smartrep) (global-set-key (kbd "C-,") 'er/expand-region) (global-set-key (kbd "C-M-,") 'er/contract-region) (global-set-key (kbd "<C-M-return>") 'mc/edit-lines) (smartrep-define-key global-map "C-." '(("C-n" . 'mc/mark-next-like-this) ("C-p" . 'mc/mark-previous-like-this) ("*" . 'mc/mark-all-like-this)))
使い方
C-,で同時編集したい単語を選択して、C-. *で同時編集と言った感じで。
コマンド | 動作 |
---|---|
C-, | 選択 |
C-. * | 全選択編集 |