ターミナルの Emacs で linum-mode にすると行番号とファイルの内容がくっついてしまう
フォーマットを指定すればいいだけだった。なんだ。簡単だなあ。
(global-linum-mode t)
(setq linum-format "%4d ")
- %4d + スペース一つというフォーマットにした。
TeraTerm で動かしている Emacs でマウスを使えるようにする
マウストラッキング
TeraTerm などのターミナル上で動く(ホスト側の)アプリケーションは、マウスのカーソル位置などの情報をターミナルソフトに要求して受け取る機能がある。
TeraTerm はデフォルトでこの要求に答える設定になっているので、ホスト側で動くアプリケーションで、この機能(マウストラッキングというらしい)を有効にしておけば、ターミナルでもマウスが使える。
TeraTermのヘルプを見ると、もともとは xterm の機能なので、TERM環境変数が xterm 系でないと使えないのでは… と書いてあるが、Emacsは単独でこの機能のON/OFFが出来るのでたぶん大丈夫でしょう…。
Emacs の設定
(xterm-mouse-mode t)
(mouse-wheel-mode t)
(global-set-key [mouse-4] '(lambda () (interactive) (scroll-down 3)))
(global-set-key [mouse-5] '(lambda () (interactive) (scroll-up 3)))
- ネタ元は=>こちら
TeraTerm の設定
設定(Setup)>その他の設定(Additional settings)>制御シーケンス(Control Sequence)にあります。
- □ マウスイベント通知要求を受けいれる
- □ Controlキーを押している間はマウスイベントを通知しない
あたりがその設定。デフォルトONのはず。
操作性のメモ
mouse-4, mouse-5 はマウスホイールに割り当てられているので、ぐりぐりすればスクロール出来る。
いつもは出来ないマウスを使ったカーソルの移動も出来るようになる。 ちゃんと、クリックした位置へ Emacs のカーソルが移動します。
但し、クリックが Emacs へ渡されるので、これまで出来ていた、TeraTerm 上で右クリックして、 Windows のクリップボードの内容を貼り付ける機能は使えなくなってしまった。
でも大丈夫。それは Ctrl+右クリック でできます。
マウストラッキングモードでの TeraTerm の操作
Ctrl+左ドラッグ
- コピー
Ctrl+右クリック
- ペースト
Ctrl+Alt+左ドラッグ
- 矩形コピー
マウストラッキングモードでの Emacs の操作
左クリック
- カーソルがその位置に移動しマークをセット
右クリック
- カーソルが移動しマークからその位置までを選択
左ドラッグ
- ドラッグ開始位置にマークをセットし、キーアップ位置までを選択
左ドラッグ
- 右クリックと同じ。キーアップしたところがクリック位置とみなされる。
ホイールを上へ
- スクロールダウン
ホイールを下へ
- スクロールアップ
終わり
Emacs の標準のインデント動作を変更したい -- namespace ではインデントしたくないんだ! --
問題点
namespace の {} 内でインデントしてしまう。
namespace My {
namespace World {
void func()
{
// ...
}
}
}
namespace はネストすることも多いし、インデントしたくないなあ……。 例えばこんな感じで…。
namespace My {
namespace World {
void func()
{
// ...
}
} // End of namespace World
} // End of namespace My
さらにもともとインデントしているファイルは 勝手にインデントを変更せず、そのままにしたいなあ…
namespace Their {
namespace World {
void func()
{
// ...
}
}
}
処方箋
C-c C-s (c-show-syntactic-information) を実行すると、カーソルがある位置のインデント情報が表示される。 たとえば
namespace My {
| <== ここにカーソル
}
ここにカーソルを置いてC-c C-s を実行すると、
Syntactic analysis: ((innamespace 52) (topmost-intro 52))
などと表示される。innamespace というのを覚えておく。
その後 C-c C-o (c-set-offset) で innamespace のインデント設定を変更する。
C-c C-o
Syntactic symbol to change: innamespace # innamespace と入力
innamespace offset (default +): 0 # 0 と入力
などとする。これで namespace 内で自動的にインデントしなくなる。(すでにインデントされている行でTABを打つなどするとインデントがずれるので、元のコードをそのままにしたいときは注意が必要)
これを init.el に書いておけばOK。下記のように。
(defunc my-c-mode-common-hook ()
;; styleの選択
(c-set-style "stroustrup")
;; インデント規則 (c-set-style の後に設定する必要がある)
(c-set-offset 'innamespace 0)
)
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
注意点としては、 c-set-offset の指定は c-set-style の後にやらないといけないこと。先に書くと、c-set-style の設定で上書きされて消えてしまう。
旧処方箋(2020年現在、これだと動かなかった c-set-style との順番のせいかもしれない)
Emacs の設定を変更。c-offset-alist の innamespace
などの設定を
(c-lineup-dont-change)
に変える。
Customize で C Offsets Alistを変える。
- M-x customize
- Programming で Enter
- Language で Enter
- C を選択して Enter
- C Offsets Alist を選択して Enter
- (M-x customize-apropos で c offsets alist を検索してもいける)
- C Offsets Alist の 一覧が開く
- 下記の設定値の左のチェックボックスを ON にして…
namespace-open
namespace-close
innamespace
- 値を
(c-lineup-dont-change)
に書き換える - State ボタンをおして…
Save for Future Sessions
を実行 ==> .emacs とかに設定が書かれる。
以上。
おまけ
extern "C" {}
とかもインデントしたくない場合は- extern-lang-open
- extern-lang-close
- inextern-lang
- も同じ設定にする。
参考資料
- Emacs における C, C++ 系モードのインデント設定
- Emacs の c-offsets-alist のマニュアル
- M-x describe-variable
c-offsets-alist で検索できる
- M-x describe-variable
TeraTerm 上で Emacs を動かすと utf8 の罫線が短くなる問題の処方箋
問題点
Utf8 の罫線(等)を表示するときに TeraTerm で変な変換をかけているらしい。 外国のひと向けに罫線の長さを半角にして表示している様子。 罫線を全角表示したいわれわれ古い日本人には必要ない設定のようだぞ。
処方箋
TERATERM.ini の設定を変更する
UnknownUnicodeCharacterAsWide を off ==> on に。(こっちはついでにやってみた)
UnicodeToDecSpMapping を 3 ==> 0 に。(こっちが問題の本質)
TERATERM.ini
; Unknown Unicode character handling
UnknownUnicodeCharacterAsWide=on
; Mapping of Unicode to DEC special character
; The sum of following values:
; 1 : Box drawings (U+2500-U+257F)
; 2 : Bullet (U+2022)
; Hyphenation point (U+2027)
; Light shade (25%) (U+2591)
; Medium shade (50%) (U+2592)
; Dark shade (75%) (U+2593)
; Black small square (U+25AA)
; Black vertical rectangle (U+25AE)
; Black verty small square (U+2B1D)
; 4 : Middle dot (U+00B7)
; One dot leader (U+2024)
; Bullet operator (U+2219)
UnicodeToDecSpMapping=0
設定をファイルに保存し、
TeraTerm を再起動し、
emacs -nw
でファイルを開くと、
罫線が正しく表示された。
ご参考
- =>TeraTerm設定ファイルの説明
- ここ(↑)にある下記を参照。
同じものは TeraTerm のヘルプからも見られます。
TeraTerm を C:\Program Files とか Windows の管理しているフォルダにインストールしている場合は、TERATERM.ini を管理者権限で開く必要あるかも。
Emacs ではこれで OK だった。しかし vi では表示は治ったけどカーソル移動が変。 vim なら動くかな(試してない)。たぶん Unicode の曖昧な文字幅の影響だろうね。
.emacs の utf8 設定
ちなみに Linux 上で動かすときは .emacs には下記の設定を入れている。 設定をしないと変な命令をターミナルに送るらしく、行ずれが起きていた。
(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)
参考資料
git difftool で WinMerge を起動する方法 for Cygwin
cygwin なので cygpath での変換が必要。
$ git config --global diff.tool WinMerge
$ git config --global difftool.WinMerge.cmd \
"\"/cygdrive/c/Program Files (x86)/WinMerge/WinMergeU.exe\" \
-u \`cygpath -am \"\$LOCAL\"\` \`cygpath -am \"\$REMOTE\"\`"
$ git difftool -y
==> WinMerge で index と working tree を比較。
$ git add -u
$ git difftool --cached -y
==> HEAD と index を比較。
$ git difftool -y HEAD
==> HEAD と working tree を比較。
- HEAD: git commit したの。
- index: git add したの。まだ commit していないの。
- worikng tree: ふつうに作業してるディレクトリツリーにあるの。
dot.bashrc の設定
dot.bashrc の設定。
alias ls='ls --show-control-char'
alias ll='ls -l'
alias lld='ls -ld'
alias lla='ls -la'
#alias e='emacs-w32.exe -r'
#alias e='emacs'
alias e='/app/cygwin/emacs/bin/emacs'
export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8
# man の出力を均等割り付けしない
export MANOPT=--no-justification
# gnupack の /app/cygwin/local/bin を PATH に追加しておく
# (/etc/fstab を編集し C:/gnupack/gnupack_devel-13.06-2015.11.08/app を /app にマウントしている)
# /usr/local にマウントしたので PATH いらない。
#export PATH=/app/cygwin/local/bin:$PATH
# 自分用のPATH
export PATH=~/bin:$PATH
# dircolors の設定 (dircolors の出力をセット)
LS_COLORS='rs=0:di=01;34:ln=01;36:...:*.xspf=00;36:';
export LS_COLORS
dot.emacs の設定
新しいの
;;-------------------------------------------------- ;; Load Path ;;-------------------------------------------------- ;; Added by Package.el. This must come before configurations of ;; installed packages. Don't delete this line. If you don't want it, ;; just comment it out by adding a semicolon to the start of the line. ;; You may delete these explanatory comments. (package-initialize) (setq load-path (append (list (expand-file-name "~/mylisp")) load-path)) ;;-------------------------------------------------- ;; theme ;;-------------------------------------------------- (load-theme 'zenburn t) ;;(load-theme 'hc-zenburn t) ;;-------------------------------------------------- ;; Package ;;-------------------------------------------------- (require 'package) ;; melpa を追加 (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) (package-initialize) ;;-------------------------------------------------- ;; Language Settings ;;-------------------------------------------------- ;; set language as Japanese (set-language-environment 'Japanese) ;; coding UTF8 (set-language-environment 'utf-8) (prefer-coding-system 'utf-8) ;;-------------------------------------------------- ;; Key bindings ;;-------------------------------------------------- ;; C-z (global-set-key "\C-z" 'undo) ;; C-x C-z (global-set-key "\C-x\C-z" 'suspend-emacs) ;; C-h ;;(global-set-key "\C-h" 'delete-backward-char) ;; help ;;(global-set-key "\C-c\C-h" 'help-command) ;; comment out ;;(global-set-key "\C-c;" 'comment-dwim) ;; move window ;;(global-set-key "\C-t" 'other-window) (global-set-key [f9] 'other-window) ;; move buffer (global-set-key [f11] 'previous-buffer) (global-set-key [f12] 'next-buffer) ;; next-error (default) ;;(global-set-key "\M-gn" 'next-error) ;; prev-error (default) ;;(global-set-key "\M-gp" 'prev-error) ;; open header or #include file. (global-set-key "\C-c\C-h" 'ff-find-other-file) ;;-------------------------------------------------- ;; Mouse ;;-------------------------------------------------- (xterm-mouse-mode t) ;;-------------------------------------------------- ;; Preference ;;-------------------------------------------------- ;; デフォルトの起動時のメッセージを表示しない (setq inhibit-startup-message t) ;; メニューバーの非表示 (menu-bar-mode -1) ;; ツールバーの非表示 (tool-bar-mode -1) ;; 分割数を制限 (setq split-height-threshold nil) (setq split-width-thireshold nil) ;; Disk上のファイルが変更されたらそれを読み込む。 ;;(setq global-auto-revert-mode 1) ;; font-lock mode いるかね? 遅くならない? ;;(global-font-lock-mode t) ;; ファイルの末尾は改行になるのを強制 ;;(setq require-final-newline t) ;; next-line でバッファの最後に改行を入れない(今はデフォルトで nil なので設定不要) ;;(setq next-line-add-newlines nil) ;; Emacsの終了が遅くなるので Backup は作らない (setq backup-inhibited t) (setq delete-auto-save-files t) (setq make-backup-files nil) (setq auto-save-default nil) ;; でも編集位置は記憶しておく。終了が遅くなるけど (save-place-mode 1) ;; 列の番号を表示 (column-number-mode t) ;; 行番号を表示 (global-linum-mode t) (setq linum-format "%5d ") ;;(set-face-attribute 'linum nil :foreground "gray55" :background "gray20") ;; 関数名を表示 (which-function-mode t) ;;(setq-default scroll-step 0) ;; 右端で折り返さない ;;(setq-default truncate-lines t) ;; C-x 3 などの縦分割ウィンドウで右端で折り返さない ;;(setq-default truncate-partial-width-windows t) ;; コンパイル時のウィンドウの高さ (setq-default compilation-window-height 10) ;; Tabにスペース4つを利用 (setq-default tab-width 4) (setq-default indent-tabs-mode nil) ;; 1行ごとにスクロールする (1 だとたまにジャンプするので巨大数を指定する) (setq scroll-conservatively 10000) ;; スクロール時にカーソル位置を保持 (setq scroll-preserve-screen-position t) ;; スクロールの上下マージン (setq-default scroll-margin 1) ;; カーソル行を一瞬光らせる (beacon-mode 1) ;; カーソル行をハイライト ;; customize-face で常に hl-face がデフォルトになったりするので使わない ;; (GLOBAL-hl-line-mode nil) ;; BS や Delete キーでリージョン内の文字を削除 (delete-selection-mode 1) ;; selection hilighting (デフォルトで t なので設定不要) ;;(setq-default transient-mark-mode t) ;; 対応する括弧を光らせる (show-paren-mode t) ;; 括弧を自動で補完する (electric-pair-mode 1) ;; 行頭の C-k で改行も kill する (setq kill-whole-line t) ;; 最近開いたファイルが File メニュー内にあらわさる ;; ivy 使うのでいらない ;;(recentf-mode) ;;-------------------------------------------------- ;; C-Mode Common Hook ;;-------------------------------------------------- (defun my-c-mode-common-hook () ;; ggtags on (ggtags-mode t) ;; 行コメント開始位置 (setq comment-column 48) ;; コメント形式 ;; (setq comment-start "/* ") ;; (setq comment-end " */") ;; (setq comment-style (quote aligned)) ;; case sensitive search ;;(setq case-fold-search nil) ;; Backcpaceでタブを空白に変換しない ;; (setq c-backspace-function 'backward-delete-char) ;; hungry-delete ;;(setq c-hungry-delete-key t) ;; インデント情報の表示 ;; (setq c-echo-syntactic-information-p t) ;; ワード単位の移動 camelCase に対応 ;; (subword-mode) ;; styleの選択。いらないのでは? これが重くなく原因かな。 ;;(c-set-style "stroustrup") ;; インデント規則 (c-set-style の後に設定する必要がある) (c-set-offset 'innamespace 0) (c-set-offset 'defun-block-intro +4) (c-set-offset 'statement-block-intro +4) ) (add-hook 'c-mode-common-hook 'my-c-mode-common-hook) ;;-------------------------------------------------- ;; ivy/counsel ;;-------------------------------------------------- (ivy-mode 1) (setq enable-recursive-minibuffers t) (setq ivy-use-virtual-buffers t) (setq ivy-count-format "(%d/%d)") ;; 候補の表示行数最大値 (setq ivy-height (truncate (* (window-height) 0.5))) ;;(setq ivy-height 32) ;; 常に固定の行数を表示するかどうか ;;(setq ivy-fixed-height-minibuffer nil) ;; Keybindings ;;(global-set-key (kbd "M-x") 'counsel-M-x) ;;(global-set-key (kbd "C-x C-f") 'counsel-find-file) (global-set-key (kbd "C-c c s") 'swiper) (global-set-key (kbd "C-C C-r") 'ivy-resume) ;;-------------------------------------------------- ;; counsel-gtags ;;-------------------------------------------------- (add-hook 'c-mode-hook 'counsel-gtags-mode) (add-hook 'c++-mode-hook 'counsel-gtags-mode) (with-eval-after-load 'counsel-gtags (define-key counsel-gtags-mode-map (kbd "C-c g b") 'counsel-gtags-go-backward) (define-key counsel-gtags-mode-map (kbd "C-c g f") 'counsel-gtags-go-forward) (define-key counsel-gtags-mode-map (kbd "C-]") 'counsel-gtags-dwim) (define-key counsel-gtags-mode-map (kbd "C-t") 'counsel-gtags-go-backward) ) ;;-------------------------------------------------- ;; ;;-------------------------------------------------- (which-key-mode t) ;;-------------------------------------------------- ;; Customize Settings ;;-------------------------------------------------- ;; カスタマイズを保存するファイル (setq custom-file "~/.emacs.d/customize_settings.el") ;; カスタマイズ用ファイルをロード (load custom-file t)
古いの
dot.emacs。
追加で使っているelispは cygwin-mount.el, doxymacs.el と gtags.el くらい。
(global-set-key [delete] 'delete-char)
(global-set-key [kp-delete] 'delete-char)
;; open #include <...> file
(global-set-key "\C-c\C-h" 'ff-find-other-file)
;;(global-set-key [home] 'beginning-of-line)
;;(global-set-key [end] 'end-of-line)
;;(global-set-key [C-home] 'beginning-of-buffer)
;;(global-set-key [C-end] 'end-of-buffer)
;;(global-set-key [C-tab] 'bs-cycle-previous)
;;(global-set-key [C-S-iso-lefttab] 'bs-cycle-next)
;; C-z では、suspend-emacs関数が呼ばれるが、C-x C-zでも同じ
;; なので、C-zはUndoにする
(global-set-key "\C-z" 'advertised-undo) ;; C-x u (Undo)
;;(global-set-key [find] 'overwrite-mode) ;; PC Insert key
;;(global-set-key [insertchar] 'beginning-of-line) ;; PC Home key
;;(global-set-key [prior] 'end-of-line) ;; PC End key
;;(global-set-key [deletechar] 'scroll-down) ;; PC PageUp key
(global-set-key [find] 'beginning-of-line) ;; PC Home key
(global-set-key [select] 'end-of-line) ;; PC End key
(global-set-key [insertchar] 'overwrite-mode) ;; PC Insert key
;;(global-set-key [f3] 'delete-other-windows)
;; ビルド&エラー検索用 ビルド&エラー検索キーマップキーマップ
(global-set-key [f4] 'next-error)
(global-set-key [f14] 'previous-error) ;; f14 == Shift F4
(global-set-key [f5] 'compilation-mode)
;; カレントワードのmanを起動
(global-set-key [f6] (lambda () (interactive) (manual-entry (current-word))))
;;(setq manual-program "jmanx")
(global-set-key [f7] 'compile)
(global-set-key [f8] 'grep)
;; same as C-x o
(global-set-key [f9] 'other-window)
;; move buffer
(global-set-key [f11] 'bs-cycle-previous)
(global-set-key [f12] 'bs-cycle-next)
(global-set-key [mouse-4] 'scroll-down)
(global-set-key [mouse-5] 'scroll-up)
;; (cd "~/")
;; font-lock mode
(global-font-lock-mode t)
;; visual feedback on selections
(setq-default transient-mark-mode t)
;; last newline
(setq require-final-newline t)
;; not add lines
(setq next-line-add-newlines nil)
;;(setq backup-inhibited t)
;;(setq delete-auto-save-files t)
;;(setq make-backup-files nil)
;;(setq auto-save-default nil)
;; 列数を表示する
(column-number-mode t)
;; 左端に行数を表示する
(global-linum-mode t)
;; カーソルの点滅をやめる
(blink-cursor-mode 0)
;; カーソル行をハイライトする
;;(global-hl-line-mode t)
(setq kill-whole-line t)
(display-time)
(which-function-mode 1)
(recentf-mode)
;; 対応する括弧を光らせる
(show-paren-mode t)
;;(setq show-paren-style 'mixed) ;; 対応する括弧が画面外のときだけ内容を色変え
;;(setq show-paren-style 'expression) ;; 常に色変え
(set-face-background 'show-paren-match-face "blue") ;; "gray10")
(set-face-foreground 'show-paren-match-face "skyblue") ;;"SkyBlue")
;; スペース、タブなどを可視化
;; コンソールだと化ける→;; (global-whitespace-mode 1)
;; スクロールは1行ごとに
(setq scroll-conservatively 10000)
;; シフト+矢印で範囲選択
;;(setq pc-select-selection-keys-only t)
;;(pc-selection-mode 1)
(setq default-tab-width 4)
;;(add-hook 'shell-mode-hook '(lamda () (setq tab-width 8))) ;; shellモードはタブ8でないと化けるらしい
(setq auto-mode-alist (cons '("\\.h\\'" . c++-mode) auto-mode-alist))
::(setq vc-default-back-end 'CVS)
;; (setq compile-command "date; gcc -g -Wall -o ")
(setq-default scroll-step 0)
;; 右端で折り返さない
;;(setq-default truncate-lines t)
;; C-x 3 などの縦分割ウィンドウで右端で折り返さない
;;(setq-default truncate-partial-width-windows t)
(setq-default compilation-window-height 10)
;;(setq frame-title-format (format "emacs@%s : %%f" (system-name)))
(setq-default frame-title-format "%b")
;; スクロール時にカーソル位置を保持
(setq scroll-preserve-screen-position t)
;; BS や Delete キーでリージョン内の文字を削除
(delete-selection-mode 1)
;; find file at point #include <stdio.h>とか開いてくれる
;; 従来のFindFindはC-u C-x C-Fとなる。
(ffap-bindings)
(setq ffap-c-path
'("/usr/include"
"/usr/include/c++/3.2"
"/usr/local/include"
"../include"))
(defun my-c-mode-common-hook ()
;; my customizations for all of c-mode and related modes
;; コンパイルのときに毎回訊きに来ない
;;(setq compilation-read-command nil)
;; compileのときに使うコマンド
;;(set (make-local-variable 'compile-command) "make -k -C ../Build")
;;
(setq comment-column 48)
;; 先頭でのTabのみインデント処理する。Tab <==> M-i の入れ替えをするので不要
;; (setq c-tab-always-indent nil)
;; { の入力などで自動インデント処理
;; (setq c-auto-newline t)
;; 基本インデント量
(setq c-basic-offset 4)
;; Tabは4
(setq tab-width 4)
;; タブストップの位置
(setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128 132 136 140 144 148 152 156))
;; case sensitive
;;(setq case-fold-search nil)
(setq case-fold-search t)
;; 後退の時タブをスペースに変換しない
(setq c-backspace-function 'backward-delete-char)
;; インデント情報の表示
(setq c-echo-syntactic-information-p t)
;; EnterとC-jの交換
(local-set-key "\C-m" 'newline-and-indent) ;; ReturnをC-jにする
(local-set-key "\C-j" 'newline) ;; C-j をReturnにする
;; TabとM-iの交換
; (local-set-key "\C-i" 'tab-to-tab-stop) ;; Tabキーを普通のTabに
; (local-set-key "\M-i" 'c-indent-command) ;; M-iキーをインデントにする
;; if/for/whileなどの次の行はインデントはそのまま。
(c-set-offset 'substatement-open 0)
;;(c-set-offset 'comment-intro 0)
;; 右端で折り返さない
(setq truncate-lines t) ;; 右端で折り返さない cmd:toggle-truncate-lines
(setq truncate-partial-width-windows t) ;; C-x 3など縦分割ウィンドウで右端で折り返さない
;; ワード単位の移動で camelCase に対応
; (subword-mode)
)
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
;;~/bak/にバックアップ作成
(setq backup-by-copying t)
(fset 'make-backup-file-name
'(lambda (file)
(concat (expand-file-name "~/bak/")
(file-name-nondirectory file))
))
(if (file-exists-p "~/bak/")
(setq auto-save-list-file-prefix "~/bak/"))
(setq make-backup-files t)
(setq backup-directory-alist
(cons (cons "\\.*$" (expand-file-name "~/bak"))
backup-directory-alist))
;; かんたんなVersionControl
(setq version-control t)
;; 新しいものをいくつ残すか
(setq kept-new-versions 2)
;; 古いものをいくつ残すか
(setq kept-old-versions 2)
;; 尋ねずに削除
(setq delete-old-versions t)
;; 編集位置を記憶
(load "saveplace")
(setq-default save-place t)
;;ロードパスを追加
(setq load-path
(append
(list (expand-file-name "~/mylisp")) load-path))
;; 罫線lispの設定
(if window-system
(autoload 'keisen-mode "keisen-mouse" "MULE 版罫線モード + マウス" t)
(autoload 'keisen-mode "keisen-mule" "MULE 版罫線モード" t))
(require 'doxymacs)
(add-hook 'c-mode-common-hook 'doxymacs-mode)
(require 'gtags)
;; If you hope gtags-mode is on in c-mode then please add c-mode-hook to your
;; $HOME/.emacs like this.
;;
(setq c-mode-hook
'(lambda ()
(gtags-mode 1)
))
;; There are two hooks, gtags-mode-hook and gtags-select-mode-hook.
;; The usage of the hook is shown as follows.
;;
;; [Setting to reproduce old 'Gtags mode']
;;
;; (setq gtags-mode-hook
;; '(lambda ()
;; (setq gtags-pop-delete t)
;; (setq gtags-path-style 'absolute)
;; ))
;;
;; [Setting to make 'Gtags select mode' easy to see]
;;
(setq gtags-select-mode-hook
'(lambda ()
(setq hl-line-face 'underline)
(hl-line-mode 1)
))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; GNU GLOBAL(gtags)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;(autoload 'gtags-mode "gtags" "" t)
(setq gtags-mode-hook
'(lambda ()
(local-set-key "\M-t" 'gtags-find-tag)
(local-set-key "\M-r" 'gtags-find-rtag)
(local-set-key "\M-s" 'gtags-find-symbol)
;(local-set-key "\C-t" 'gtags-pop-stack)
))
(setq inhibit-startup-message t) ; 開始メッセージを削除
(menu-bar-mode -1) ; メニューを消す
(tool-bar-mode -1) ; ツールバーを消す
;; region の色
(set-face-background 'region "SkyBlue")
(set-face-foreground 'region "black")
(if (boundp 'window-system)
(setq initial-frame-alist
(append (list
'(foreground-color . "azure3") ;; 文字が白
'(background-color . "black") ;; 背景は黒
'(border-color . "black")
'(mouse-color . "white")
'(cursor-color . "white")
'(cursor-type . box)
'(menu-bar-lines . 1)
;'(vertical-scroll-bars . nil) ;;スクロールバーはいらない
;;'(font . "MS Gothic 12")
'(font . "MS Gothic 9")
'(width . 120) ;; ウィンドウ幅
'(height . 50) ;; ウィンドウの高さ
'(top . 0) ;;表示位置
;;'(left . 50) ;;表示位置
'(left . 0) ;;表示位置
)
initial-frame-alist)))
(setq default-frame-alist initial-frame-alist)
;;(require 'cygwin-mount) ; cygwin-mount
;;(cygwin-mount-activate) ; cygwin-mount
;; rubydb - ruby debugger
;;(autoload 'rubydb "rubydb3x" "ruby debug" t)
(custom-set-variables
;; custom-set-variables 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.
'(comment-style (quote extra-line))
'(ediff-make-buffers-readonly-at-startup t)
'(ediff-split-window-function (quote split-window-horizontally))
'(line-move-visual 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.
)