スポンサーサイト

上記の広告は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

LMDEのLEMPでCakePHP

動かしてみました。
CentOSで行こうかとも思ったけど、いい加減Nginxのlistenポートダダかぶりでエラーが出たとき切り分けが難しいかもと思ってデスクトップのLMDE。
CakePHPは2.6.1。
環境はNginx1.4.4 PHP5.5.6 php-fpm使ってLEMP環境は構築済み。

1.DL&インストール
CakePHPのサイトから安定版なり最新版なりRCなりを。今回はとりあえず触って見る勉強なので、安定版、ということで2.6.1。
コマンドライン環境しかない人はwgetでいきましょー。(俺は普通にDLしたけど

$ wget https://github.com/cakephp/cakephp/archive/2.6.1.zip
$ unzip 2.6.1.zip


これでcakephp-2.6.1ってフォルダができます。

インストールもクソもWebサーバーのrootディレクトリにそのままおけばとりあえず動くんですが。
LMDEだとNginxのrootは/usr/share/nginx/html/なのでそこに持っていきます。あと名前長いのでリネーム。

$ sudo cp -r cakephp-2.6.1 /usr/share/nginx/html
$ sudo mv /usr/share/nginx/html/cakephp-2.6.1 /usr/share/nginx/html/cakephp


あと権限とか

$ sudo chown -R nginx:nginx /usr/share/nginx/html/cakephp
$ sudo chmod 755 -R /usr/share/nginx/html/cakephp


これでlocalhost/cakephpにアクセスすると・・・エラーだらけだ!!
Warningがたくさん出ててCSSもあたってない感じ。rewriteも効いてないってエラーメッセージが出てる。

2.Nginxの設定をしよう
公式にあるんですよね−。
nginxでのきれいなURL
example.comのとこlocalhostに変えたら行けるかなーと思ったら、リダイレクトループがどうの、alias設定してみたら404とか503とか502とか。
まぁ結果的にはこれで動きました。LMDE上の話なのでデストリ違う人はパス変えたら行けるとおもうよ。


location / {
try_files $uri $uri/ /index.php?$uri&$args;
}


このあたりになんか色々はまってた時に変なリライト設定書き足してました。それが原因っぽい。公式えらい。

3.インストール時のエラーの対処あれこれ
CakePHP インストール時エラーの対処
タイムゾーンの設定がないよ−って。
It is not safe to rely on the system's timezone settings.
/etc/php5/fpm/php.iniを開いてAsia/Tokyoに

$ sudo emacs /etc/php5/fpm/php.ini
date.timezone = Asia/Tokyo
$ sudo service php5-fpm restart


CakePHPのダウンロードとインストール
Security.salt及びSecurity.cipherSeedの変更
cakephp/app/Config/core.php に変更。
Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi') ← ''内を適当な文字列に入れ替え。
Configure::write('Security.cipherSeed', '76859309657453542496749683645'); ←''内を適当な数列に入れ替え。
これで再読み込みしたらエラーは消えてるはず。rewriteどうこうはNginxガチャンと設定されてたら大丈夫なはず。
これでガシガシいじってく環境が出来ましたね。

関連記事
LMDE(Linux Mint Debian Edition)でローカルにサクッとLEMP(Nginx+MySQL+PHP)
LMDEにLEMP(Nginx+MySQL+php−fpm)でConcrete5.7β
LMDEローカルLEMPでconcrete5とWordPress
CakePHP2.6の初期エラーいろいろ解決
Nginx+php-fpmで502とか504とかのエラーをなんとかしよう
総合案内当ブログについて
Windowsの目次Linuxの目次Linuxの目次2・ ・自作PC関連の目次Web技術関連の目次
全記事一覧情報サイト新着RSS一覧

Sponsored Link

LMDE201403にEmacs24を入れる(+CentOS6.6)

LMDEのEmacsは標準で23。でも24はリポジトリに上がってます。
基本的に不自由がなければシステム標準のものを使うのがベターではあるのですが、24ではpackage installの機能が標準で追加されてるらしいので先週くらいから気になっていました。なんちゃら.elを入れるのにいちいちネット探してDLして展開して、設定ディレクトリにおいてinit.el書き換えて、ってめんどいですよね!!
というわけで24に乗り換えるのを決定。どうせ今後は24が標準になっていくだろうに、23までの機能でハマったりするのもアレですし。

1.Emacs24は標準でリポジトリに上がってるよ
はい。標準で上がっているのでリポジトリ追加とかビルドとかいらないです。synapticでも、apt-getでも入ります。
今回は欲しくなりそうなパッケージ入れれたら入れたかったのでSynapticから。
入れたのは

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


emacs24-elだけ自分で指定しました。

2.起動
メニュー>プログラミング>GNU Emacs24もしくは端末で$ emacs24で起動。

3.Emacs23は消してしまえ
端末で$ emacsって打った時に23のほうが立ち上がっちゃうのがめんどいので23は消しちゃいましょう。
削除したのは以下のパッケージ。

emacs
emacs23
emacs23-bin-common
emacs23-common
emacs23-el


関連パッケージはたくさんあるので他にもあるかも知れないけど、とりあえずこれで目的の「端末でemacs打った時に24が普通に立ち上がる状態」にはできました。

4.パッケージ管理を使ってみよう
Emacs24 の新機能
M-x(Esc+x)list-packagesで。
利用するリポジトリ追加のために~/で$ emacs .emacs.d/init.el してリポジトリ追加。

(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)


保存してemacs立ち上げなおしてM-x list-packages。
Screenshot from 2015-02-25 12:45:05 こんな感じ。
入れたいパッケージのところでIを押してインストール候補、xでインストール実行(yes or noでyes)。
けっこうパッケージ多いんだけど、C-sで検索かけられるから便利。意外とすんなり色々見つかります。
とりあえずweb-modeとmozcはいれてみました。
ほぼ使い始めたばかりでたいして設定とかにこだわりはないんだけど、設定方法がいまいちわかんなくてinit.el書き換えたら.elが見つからなくて読み込めないよ!!って怒られたりしてたのでこれは便利。

5.こんなに便利だとCentOSにも入れたくなりますね!!

でもCentOS6.6も標準はEmacs23。しかも標準リポジトリには入っていません。ビルドしてもいいんだけど後々の事を考えるとyumで入れたいよね。
Yum Install Emacs24 on CentOS 6.5
リポジトリ追加で行けるらしいです。

$ cd /etc/yum.repos.d
$ sudo wget http://pj.freefaculty.org/EL/pjku.repo
$ sudo rpm --import http://pj.freefaculty.org/EL/PaulJohnson-BinaryPackageSigningKey
$ sudo yum install emacs-24.2-4.el6.x86_64
更新:
emacs x86_64 1:24.2-4.el6 pjku 2.6 M
依存性関連でのインストールをします。:
emacs-filesystem noarch 1:24.2-4.el6 pjku 54 k
liblockfile x86_64 1.08-9.el6 epel 18 k
依存性関連での更新をします。:
emacs-common x86_64 1:24.2-4.el6 pjku 21 M
$ emacs --version
GNU Emacs 24.2.1
Copyright (C) 2012 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.


おっけー。

とりあえずのinit.elはこんな感じ

(add-to-list 'load-path "~/.emacs.d/init.el") ;;
; 言語を日本語にする
(set-language-environment "Japanese")
; 入力
(load-file "/usr/share/emacs/site-lisp/emacs-mozc/mozc.el")
(require 'mozc)
(setq default-input-method "japanese-mozc")
(setq mozc-candidate-style 'overlay)

; 極力UTF-8とする
(prefer-coding-system "utf-8")
(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

(global-set-key [M-kanji] 'ignore)
(global-set-key [kanji] 'ignore)

(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 '("\\.[agj]sp\\'" . 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 '("\\.mustache\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.djhtml\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode))



しかしsudoで立ち上げるとmozcが動かないっぽい。このへんの設定はよくわかりません。
これっぽいんだけどなぁ。
sudo権限でemacsを起動したときのみmozc日本語入力が使用できない

関連記事
LMDEでEmacsのC-Spcが使えなかった問題
Emacsにweb-mode&php-mode入れて超快適
LMDE2014からLMDE2(Besty)にupgrade
総合案内当ブログについて
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ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。