スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
総合案内当ブログについて
Windowsの目次Linuxの目次Linuxの目次2・ ・自作PC関連の目次Web技術関連の目次
全記事一覧情報サイト新着RSS一覧

Sponsored Link

Emacsにweb-mode&php-mode入れて超快適

先日こんな記事を書きましたがLMDE201403にEmacs24を入れる(+CentOS6.6)、Twitter上で人々の助けも得られてweb-mode&php-modeを有効に出来て超快適になりましたっていうお話。
Mozcはあいかわらすsudoだと効かないみたいだけど、これは多分目星がついてるので近々解決するかも知れない。たぶんsudoしたときにユーザーの環境変数が受け継がれてないんだよね。sudoerに変更加えるか、sudo -Eすればいいとかなんとか。

1.過去のゴミファイルがいかんのか?
ってことでEmacs23関係のパッケ−ジ全削除。commonとかそういうの含めて、変な他のパッケージ巻き込まない程度に削除。設定ファイルは~./emacs.dとusr/share/emacs/このへんもrm-rf 。
素の状態でEmacs24 関係のパッケージインストール&再インストール。

emacs24 (24.3+1-2)
emacs24-bin-common (24.3+1-2)
emacs24-common (24.3+1-2)
emacs24-el (24.3+1-2)
emacsen-common (2.0.5)


入れたのはこのへん。

2.Mozcがあれですね。
そういえば昔にビルドしていれたのそのまんまだったんですね。
Mozcの辞書を強化する方法 その2
あーえ!?なんかDebian系はサポート外れたとか何とか。仕方ないのでずっと前にビルドしたMozcに辞書追加 on LMDE201403のころのソースコードがサブ機のDLフォルダかどっかに残ってたのでそれをビルドしてemacs-mozcはそれで行こう。(最新のはどーもビルド通らなかった)

3.web-modeとphp-mode入れて有効化
ここが本命。Emacs24から標準で入ってるpackage機能でweb-modeとphp-modeを入れます。(前回もやったけどphp-modeが有効にならなかった)
~/.emacs.d/init.elにmelpaとmamalade追加

;packages
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/#/"))
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/"))
(package-initialize)


melpaはhttp://melpa.milkbox.net/packages/って記述をよく見かけるんだけど、こっちだとうまく読み込めないこと数回。このURLにアクセスすると結局http://melpa.org/#/にリダイレクトされてるのでこっち入れてみたら上々。
M-x list-packages でC-sで検索かけてweb-modeとphp-modeを探してインストール。似たような名前のがいくつかあると思いますが、ドンピシャな名前のやつをそれぞれ入れればおっけー。

4.init.el
ぶっちゃけload-path云々とかよくわからなかったけど、Twitterでイカの人が設定ファイル晒してくれたりしたので、ありがたく頂戴していいとこ取りな感じで行きましょ−。ということでこんな感じ。

(add-to-list 'load-path "~/.emacs.d/")
;;======================================================================
;; 言語・文字コード関連の設定
;;======================================================================

(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(setq file-name-coding-system 'utf-8)
;;
;;======================================================================
;; Mozc
;; CTRL-\で入力モード切替え
;;======================================================================
(load-file "/usr/share/emacs/site-lisp/emacs-mozc/mozc.el")
(require 'mozc)
(setq default-input-method "japanese-mozc")
(setq mozc-candidate-style 'overlay)
;;
;;=======================================================================
;; Misc
;;=======================================================================
(setq frame-title-format ; フレームのタイトル指定
(concat "%b - emacs@" system-name))

(display-time) ;;時計を表示
(show-paren-mode t)
(setq inhibit-startup-message t) ;
(setq initial-scratch-message nil) ;スタートアップスクリーン抑制
(setq comment-style 'multiline) ;ボックスコメント
;;

;;=======================================================================
;; ~/.emacs.d/elpa/ にパスを通す
;;=======================================================================
(add-to-list 'load-path (expand-file-name "~/.emacs.d/elpa/"))
;;
;;=======================================================================
;;packages
;;=======================================================================
;packages
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.org/#/"))
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/"))
(package-initialize)
;;
;;=======================================================================
;;web-mode
;;=======================================================================
;web-mode
(require 'web-mode)
;;; 適用する拡張子
(add-to-list 'auto-mode-alist '("\\.phtml$" . web-mode))
(add-to-list 'auto-mode-alist '("\\.tpl\\.php$" . web-mode))
(add-to-list 'auto-mode-alist '("\\.jsp$" . web-mode))
(add-to-list 'auto-mode-alist '("\\.mustache\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.as[cp]x$" . web-mode))
(add-to-list 'auto-mode-alist '("\\.erb$" . web-mode))
(add-to-list 'auto-mode-alist '("\\.html?$" . web-mode))
(add-to-list 'auto-mode-alist '("\\.ctp?$" . web-mode))

(defun web-mode-hook ()
"Hooks for Web mode."
;; 変更日時の自動修正
(setq time-stamp-line-limit -200)
(if (not (memq 'time-stamp write-file-hooks))
(setq write-file-hooks
(cons 'time-stamp write-file-hooks)))
(setq time-stamp-format " %3a %3b %02d %02H:%02M:%02S %:y %Z")
(setq time-stamp-start "Last modified:")
(setq time-stamp-end "$")
;; web-modeの設定
(setq web-mode-markup-indent-offset 2) ;; html indent
(setq web-mode-css-indent-offset 2) ;; css indent
(setq web-mode-code-indent-offset 2) ;; script indent(js,php,etc..)
;; htmlの内容をインデント
;; TEXTAREA等の中身をインデントすると副作用が起こったりするので
;; デフォルトではインデントしない
;;(setq web-mode-indent-style 2)
;; コメントのスタイル
;; 1:htmlのコメントスタイル(default)
;; 2:テンプレートエンジンのコメントスタイル
;; (Ex. {# django comment #},{* smarty comment *},{{-- blade comment --}})
(setq web-mode-comment-style 2)
;; 終了タグの自動補完をしない
;;(setq web-mode-disable-auto-pairing t)
;; color:#ff0000;等とした場合に指定した色をbgに表示しない
;;(setq web-mode-disable-css-colorization t)
;;css,js,php,etc..の範囲をbg色で表示
;; (setq web-mode-enable-block-faces t)
;; (custom-set-faces
;; '(web-mode-server-face
;; ((t (:background "grey")))) ; template Blockの背景色
;; '(web-mode-css-face
;; ((t (:background "grey18")))) ; CSS Blockの背景色
;; '(web-mode-javascript-face
;; ((t (:background "grey36")))) ; javascript Blockの背景色
;; )
;;(setq web-mode-enable-heredoc-fontification t)
)

;; 色の設定
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(web-mode-comment-face ((t (:foreground "#D30628")))) ;コメント
'(web-mode-css-at-rule-face ((t (:foreground "#FF7F00")))) ;CSSタグ
'(web-mode-css-pseudo-class-face ((t (:foreground "#FF7F00")))) ;CSS擬似クラス
'(web-mode-css-rule-face ((t (:foreground "#A0D8EF")))) ;CSSタグ
'(web-mode-doctype-face ((t (:foreground "#82AE46")))) ;docutype
'(web-mode-html-attr-name-face ((t (:foreground "#C97586")))) ;属性名など
'(web-mode-html-attr-value-face ((t (:foreground "#82AE46")))) ;属性値
'(web-mode-html-tag-face ((t (:foreground "##4682ae" :weight bold)))) ;要素名
'(web-mode-server-comment-face ((t (:foreground "#D9333F"))))) ;コメント
(add-hook 'web-mode-hook 'web-mode-hook)

;;=======================================================================
;;php-mode
;;=======================================================================
(autoload 'php-mode "php-mode")
(setq auto-mode-alist
(cons '("\\.php\\'" . php-mode) auto-mode-alist))
(setq php-mode-force-pear t)
(add-hook 'php-mode-hook
'(lambda ()
(setq php-manual-path "/usr/local/share/php/doc/html")
(setq php-manual-url "http://www.phppro.jp/phpmanual/")))



5.実は大体web-modeで事足りる?
Screenshot from 2015-02-28 21:01:31 web-mode
Screenshot from 2015-02-28 21:02:48 php-mode
いや、使い方にもよると思いますが、今回の目的はphp,html,cssを快適に閲覧編集したいってこと。すると実はweb-modeはphpもサポートしているので、php-modeじゃないとダメ!!って場面は少ないような気がします。そこまで使い込んでないけども。インデントとかでビミョーに挙動が違う時もあるけどね。このへんはなれと好みな問題な気もします。
ちなみに麦汁の人におしえてもらったりもしたんですが、M-x php-mode M-x web-modeとかで切り替えもできるんですねすごいね!!

結局php-modeとかうまく動かなかったのは、よくよく調べると以前のVer.のゴミファイルがなんかしてたのと、init.elの書き方でエラーが出てたところがあったみたい。エラーメッセージちゃんと見ようね俺氏。
あぁ、当然CentOSサーバーの方もこのinit.elコピって快適になりました。
 
6.その他ちょっと覚えた便利な使い方
C-x C-fでEmacs閉じないまま違うファイルに移動できる。新規作成もここで行ける。
M-x eshellでEmacs上で端末起動。ちょっとしたcpとかmkdirとか走らせたいときには重宝する。というか普通にコマンド走るのでアレだけれども。exitで終了。

いや、基本的な設定と簡単な使い方覚えるだけでここまで快適になるとは思ってませんでしたね。エディターへのストレスがほぼ消えた感じですごいうれしー。これでガシガシコード書けますね!!

関連記事
LMDEでEmacsのC-Spcが使えなかった問題
Emacsもvimもまともに使えない自分がLinuxMintで使っているエディタとか
コマンド
LMDE201403にEmacs24を入れる(+CentOS6.6)
関連記事
総合案内当ブログについて
Windowsの目次Linuxの目次Linuxの目次2・ ・自作PC関連の目次Web技術関連の目次
全記事一覧情報サイト新着RSS一覧

Sponsored Link

コメントの投稿

管理者にだけ表示を許可する
ブログ内検索

カスタム検索

フリーエリア

クリックで救える命がある。

レンタルサーバー

さくらのマネージドサーバ
さくらインターネットのVPS
ConoHaのVPS
WebARENA VPSクラウド
99円レンタルサーバー
【CloudCore VPS】
GMOクラウドのレンタルサーバー
転送量無制限 ABLENET
@WAPPYレンタルサーバー
SPPDレンタルサーバー

カテゴリー+月別アーカイブ

 

アクセスカウンター

現在の閲覧者数:

プロフィール

Author:tmin
PCヲタ。ライト2ちゃんねら。
スロット好きのギャンブラー。(元
むしろ人生がギャンブルだが目下のところ負けっぱなし。
座右の銘は「結果オーライ」。故に基本適当。
トラブルもまた楽しみのひとつ

コメント、トラバ、相互リンク歓迎。お気軽にどうぞ。
当ブログについて
Twitterでこっちとあっちの更新情報流すことにしてみます。
http://twitter.com/t_min
Project Mikunchu♪Wikiできました。
Mikunchu200x40.png


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