Emacs カスタマイズ

画像
$ sudo yum install emacs
$ leafpad .emacs

;; load path .elファイルを入れるフォルダ
(setq load-path (cons "~/.lisp/" load-path))

; プラグインファイルの追加が必要なのでとりあえずコメントアウト require
;(require 'install-elisp)  ; Alt + x inst <Enter> Ctrl + y(でURLをペースト) <Enter>
;(setq install-elisp-repository-directory "~/.lisp/")
;(setq session-undo-check -1)
;(require 'session)  ; カーソルの位置を復元
;(add-hook 'after-init-hook 'session-initialize)
;(require 'anything-config)  ; Buffer や ローカル などから一度に検索  Ctrl + ;
;(setq anything-sources (list anything-c-source-buffers  ; 表示する項目を設定(省略時はすべて)
;                             anything-c-source-locate))
;(global-set-key (kbd "C-;") 'anything)  ; キーバインド Ctrl + ;
;(require 'point-undo) ; ジャンプする前の位置へ戻る Ctrl + z
;(define-key global-map "\C-z" 'point-undo)
;;;(require 'auto-complete)
;;;(global-auto-complete-mode t)

(icomplete-mode 1)  ; M-xでコマンドを入力するときに自動で候補を表示する
(setq c-auto-newline t)   ; 全自動インデントを有効
(setq x-select-enable-clipboard t)   ; Xとクリップボード共有(Alt + w とかでコピーしたものを別のアプリに貼り付けできる)
(fset 'yes-or-no-p 'y-or-n-p)  ;;"yes or no"を"y or n"にする
(pc-selection-mode) ;shift+矢印キーでの範囲選択

;; キーバインド
(define-key global-map "\C-o" 'copy-region-as-kill-nomark)  ; Ctrl + o でコピー(Alt + w はつらいので) 本来 上に行を作成
(define-key global-map "\C-u" 'scroll-down)  ; 上にスクロール Ctrl + ; は使えなかった
(define-key global-map "\C-c;" 'comment-region)      ; 行を選択してCtrl + c; でコメントアウト
(define-key global-map "\C-c:" 'uncomment-region)    ; 行を選択してCtrl + c: でコメント解除
;(define-key global-map "\C-h" 'delete-backward-char) ; Backspace
;(define-key global-map "\C-ci" 'indent-region)       ; インデント
;;; バッファをさっさと切り替え Ctrl + t
(defun previous-buffer ()
  "Select previous window."
  (interactive)
  (bury-buffer))
(defun backward-buffer ()
  "Select backward window."
  (interactive)
  (switch-to-buffer
   (car (reverse (buffer-list)))))
(global-set-key "\C-t"    'previous-buffer)
(global-set-key "\M-\C-t" 'backward-buffer)
;;; カーソルのある行を一番上へ Ctrl + x p
(defun line-to-top-of-window ()
  "Move the line point is on to top of window."
  (interactive) 
  (recenter 0))
(global-set-key "\C-xp" 'line-to-top-of-window)
(global-set-key "\C-j" 'goto-line)  ; Ctrl + j 10 で10行めにジャンプ
;; C-x C-bでelectric-buffer-list
(define-key global-map "\C-x\C-b" 'electric-buffer-list)
(eval-after-load "ebuff-menu"
  '(progn
     (define-key
       electric-buffer-menu-mode-map
       "x" 'Buffer-menu-execute)))

;; 消すやつ
(menu-bar-mode 0)
(tool-bar-mode 0)
(setq inhibit-startup-message t)
(setq initial-scratch-message "");;バージョンによっては nil だと消えない時ある
(fringe-mode 0);;ムカつくから消してる
;; 色とか見た目とか
(set-background-color "Gray12")
(set-foreground-color "LightGray")
(set-cursor-color "Gray")
(set-face-attribute 'mode-line nil :box nil :background "HotPink")
(set-scroll-bar-mode 'right)
(show-paren-mode t)
(blink-cursor-mode 0)
(column-number-mode t)
(line-number-mode)
(custom-set-variables '(line-number-mode t) '(column-number-mode t) ) ;行数表示
;; タイトルバーにファイル名を表示する
(setq frame-title-format (format "%%f - emacs" (system-name)))  
(display-time)  ; 時間を表示
;;起動時の画面の色(カーソル:暗い赤色)、サイズ(横:110桁、縦:40行)
(setq default-frame-alist (append (list '(cursor-color . "purple")
                                        '(width .  130)
                                        '(height . 40))
                                  default-frame-alist))

;;バックアップとか
(setq backup-inhibited t)
(setq delete-auto-save-files t)
(setq delete-auto-save-files t)
(setq completion-ignore-case t);;大文字小文字ムシ

;;; iswitchb は、バッファ名の一部の文字を入力することで、 選択バッファの絞り込みを行う機能を実現します。
(iswitchb-mode 1) ;;iswitchbモードON
;;; C-f, C-b, C-n, C-p で候補を切り替えることができるように。
(add-hook 'iswitchb-define-mode-map-hook
      (lambda ()
        (define-key iswitchb-mode-map "\C-n" 'iswitchb-next-match)
        (define-key iswitchb-mode-map "\C-p" 'iswitchb-prev-match)
        (define-key iswitchb-mode-map "\C-f" 'iswitchb-next-match)
        (define-key iswitchb-mode-map "\C-b" 'iswitchb-prev-match)))

;;全角スペースとかに色を付ける
(defface my-face-b-1 '((t (:background "medium aquamarine"))) nil)
(defface my-face-b-1 '((t (:background "dark turquoise"))) nil)
(defface my-face-b-2 '((t (:background "cyan"))) nil)
(defface my-face-b-2 '((t (:background "SeaGreen"))) nil)
(defface my-face-u-1 '((t (:foreground "SteelBlue" :underline t))) nil)
(defvar my-face-b-1 'my-face-b-1)
(defvar my-face-b-2 'my-face-b-2)
(defvar my-face-u-1 'my-face-u-1)
(defadvice font-lock-mode (before my-font-lock-mode ())
            (font-lock-add-keywords
                 major-mode
                    '(
                           (" " 0 my-face-b-1 append)
                           ("\t" 0 my-face-b-2 append)
                           ("[ ]+$" 0 my-face-u-1 append)
          )))
(ad-enable-advice 'font-lock-mode 'before 'my-font-lock-mode)
(ad-activate 'font-lock-mode)
(add-hook 'find-file-hooks '(lambda ()
                             (if font-lock-mode
                               nil
                               (font-lock-mode t))))

; memo
; Ctrl + h t でチュートリアル表示
; Ctrl + h k Ctrl + k でCtrl + k が何をするかのヘルプ表示
; Ctrl + h Ctrl + h ヘルプの使い方を表示
; Ctrl + h b キーバインド一覧を表示


; Ctrl + x u アンドゥ(undo)
; Ctrl + x Ctrl + f .emacs(ファイル名) ファイル開く
; Ctrl + x Ctrl + f hello.c で新規作成
; 上書き保存 Ctrl + x Ctrl + s
; Ctrl + x Ctrl + w abc 名前をつけて保存
; Ctrl + x Ctrl + c Emacsを終了

; Ctrl + a 行頭へ
; Ctrl + b 左へ
; Ctrl + c; コメントアウト(行を選択した状態で)
; Ctrl + c: コメント解除(行を選択した状態で)
; Ctrl + d Delete
; Ctrl + e 行末
; Ctrl + f 右へ
; Ctrl + g キャンセル
; Ctrl + h ヘルプ (Ctrl + h k Ctrl + w でCtrl + wのヘルプ , Ctrl + h Ctrl + h でヘルプ)
; Ctrl + i list-indet-line
; Ctrl + j ジャンプに設定
; Ctrl + k 行末までカット
; Ctrl + l カーソル行を真ん中に
; Ctrl + m 改行
; Ctrl + n 下へ
; Ctrl + o コピーに設定 本来は上に1行作成
; Ctrl + p 上へ
; Ctrl + q 
; Ctrl + r 上に検索
; Ctrl + s 下に検索
; Ctrl + t 次のバッファを表示に設定
; Ctrl + u 上にスクロールに設定
; Ctrl + v 下にスクロール
; Ctrl + w カット
; Ctrl + x (Ctrl + x [ 最初へ ,  Ctrl + x 2 ウィンドウ分割 , Ctrl + x o で移動 , Ctrl + x b バッファ一覧
; Ctrl + y ペースト
; Ctrl + z ジャンプする前の位置に戻る
; Ctrl + ; anything.elに設定

; 選択してコピー
; Ctrl + Space (Mark Set)して Ctrl + f などで選択(選択領域はリージョンと呼ぶ)。

; 行のコピー  行頭で Ctrl + Space して、Ctrl + e して、Alt + w

; Ctrl + x h すべて選択(all)
; Ctrl + x Ctrl + b でバッファ一覧を表示、Ctrl + n とかで選択して、Enter
; Ctrl + x Ctrl + b で表示して、d でバッファ一覧から削除
; Ctrl + x Ctrl + b で表示して、o ウィンドウを分割して開く
; Ctrl + x k Enter でバッファ一覧から削除
; Ctrl + h Ctrl + t で Emacs TODO List表示

install-elisp.el
install-elisp.el をダウンロードして、.lisp に入れます。
$ leafpap .emacs して、
(setq load-path (cons "~/.lisp/" load-path))
(require 'install-elisp)
(setq install-elisp-repository-directory "~/.lisp/")
を追加します。
■使い方。emacs を起動して、Alt + x install-elisp して、http://www.cx4a.org/pub/auto-complete.el を Ctrl + y でペースト でインストールして、
$ leafpad .emacs して、
(require 'auto-complete)
(global-auto-complete-mode t)
を追加するとauto-complete.elが使えるようになります。
次世代auto-complete.elを読んでみる - ’(rubikitch wanna be (a . lisper))


カーソルが何行目、何列目にあるか表示
.xemacs.elのカスタマイズ - 物理のかぎしっぽ


色とか見た目とか、メニューバーを消したり
コンピュータ地獄の九月 会社の emacs を設定しました - コトリコ


Ctrl + z でアンドゥ
~/.emacsへの雑多な設定


Ctrl + v で貼り付け


ubulog: Emacsのとりあえず最低限の環境を整える


Emacs_shortcuts GNOME-Look.org


新入学生/新社会人応援企画:あるWebプログラマーの作業環境——豪傑の三種の神器【前編】 (2/2) - ITmedia エンタープライズ


マクロ
カウンターを生成する拡張Lisp counter.el が便利 - suusukeの日記


「M-g で指定行へジャンプ」
(global-set-key "\C-j" 'goto-line) ; Ctrl + j 10 でジャンプ


対応する括弧に移動
Ctrl + Alt + f(or n)、Ctrl + Alt + b(or p)
Emacs で対応するカッコに移動 - ひげぽん OSとか作っちゃうかMona-


自動インデント(hello.cなどで{のあとEnterで自動インデント)
EmacsのC++インデント設定


ヘルプの使い方
Emacs クイックリファレンス


Repository Search — .emacs — GitHub


コピーの履歴をたどって貼り付け
Programming in Emacs Lisp: Yanking


ジャンプする前の位置へ戻る
カーソル位置を前に戻す point-undo.el をリリース - ’(rubikitch wanna be (a . lisper))


すごい.emacs - とりあえず暇だったし何となく始めたブログ


とりあえずCtrl + ; に設定。Buffer と locate だけに。
巷で話題の anything.el を使ってみた — ありえるえりあ
anything.el が手放せなくなった | Weboo! Returns.


カーソルの位置を復元
Meadow/Emacs memo: ミニバッファの入力/補完機能とヒストリ


Ctrl + q でTab
TAB が入力出来ません - PukiWiki