|
1 ;; -*- mode: lisp; coding: cp1251 -*- |
|
2 ;; Gavenko Alexander, ~/.emacs file for GNU Emacs 21. |
|
3 ;; Гавенко Алескандр, ~/.emacs файл для GNU Emacs 21. |
|
4 |
|
5 ;; silent runing |
|
6 (setq inhibit-startup-message t) |
|
7 |
|
8 ;; ====================================================================== |
|
9 ;;* DEBUGGING |
|
10 |
|
11 ;; Shut off message buffer by setting nil. Note - if you need to debug emacs, |
|
12 ;; comment these out so you can see what's going on. |
|
13 (setq message-log-max 100) |
|
14 |
|
15 ;;(add-hook 'after-init-hook |
|
16 ;; '(lambda () (setq debug-on-error t))) |
|
17 ;;(debug-on-entry 'command-line-1) |
|
18 |
|
19 ;; Set the debug option to enable a backtrace when a problem occurs. |
|
20 (setq debug-on-error nil) ; t/nil |
|
21 |
|
22 ;; ====================================================================== |
|
23 ;; Load path |
|
24 (add-to-list 'load-path (expand-file-name "~/emacs/site-lisp")) |
|
25 |
|
26 ;; ====================================================================== |
|
27 ;;* GNU Serv |
|
28 |
|
29 ;; (load "~/emacs/bin/gnuserv/gnuserv.el") |
|
30 ;; (require 'gnuserv) |
|
31 ;; (setq gnuserv-frame (selected-frame)) |
|
32 |
|
33 (server-start) |
|
34 |
|
35 ;; Rely on dtemacs to do this, otherwise a race condition can cause |
|
36 ;; dtemacs to fail. |
|
37 ;;(gnuserv-start) |
|
38 |
|
39 ;(add-to-list 'load-path (expand-file-name "~/../bin/emacs/bin/gnuserv")) |
|
40 ;(load "e:/bin/emacs/bin/gnuserv/gnuserv.el") |
|
41 ;(require 'gnuserv) |
|
42 ;; if you would rather have gnuserv load files into an existing frame |
|
43 ;(setq gnuserv-frame (selected-frame)) |
|
44 |
|
45 ;; (desktop-load-default) |
|
46 ;; (desktop-read) |
|
47 |
|
48 ;; ====================================================================== |
|
49 ;; настройка внешнего вида редактора |
|
50 ;;* View |
|
51 |
|
52 ; remove menu on nil |
|
53 (menu-bar-mode nil) ; t/nil |
|
54 ; remove button on nil |
|
55 (tool-bar-mode nil) ; t/nil |
|
56 |
|
57 (if window-system |
|
58 ;; Для X-window и Win |
|
59 (progn |
|
60 ;; size of emacs area and position |
|
61 (set-frame-height (selected-frame) 52) |
|
62 (set-frame-width (selected-frame) 130) |
|
63 (set-frame-position (selected-frame) 30 15) |
|
64 |
|
65 ;;установка цветов экрана |
|
66 (set-background-color "white") |
|
67 (set-foreground-color "black") |
|
68 ;;установка режимов работы курсора |
|
69 (set-cursor-color "brown") |
|
70 ;;(setq blink-matching-delay 0.01) |
|
71 ;; курсор не мигает! |
|
72 ;; (blink-cursor-mode nil) |
|
73 ;; (set-face-font 'default "7x14") |
|
74 ) |
|
75 ;; Для tty |
|
76 (progn |
|
77 ) |
|
78 ) |
|
79 |
|
80 ;; ====================================================================== |
|
81 ;;* Standart settings |
|
82 |
|
83 ;прикрепляет к каждому окну полоску прокрутки t/nil |
|
84 (scroll-bar-mode t) |
|
85 |
|
86 ;; удаляем строку целиком |
|
87 (setq kill-whole-line t) |
|
88 |
|
89 ;; show column & line numbers in status bar |
|
90 (setq column-number-mode t) |
|
91 (setq line-number-mode t) |
|
92 |
|
93 (load "~/.emacs-custom.el") |
|
94 |
|
95 ;; ---------------------------------------------------------------------- |
|
96 ;;* Scrolling |
|
97 |
|
98 ;; гладкий скроллинг с полями |
|
99 ;; (setq-default scroll-conservatively 70) |
|
100 ;; (setq-default scroll-preserve-screen-position 't) |
|
101 ;; при перемешении точка останавливается на расстоянии i строк к границе фрейма, |
|
102 ;; далее скролиться текст |
|
103 ;; (setq scroll-margin 2) |
|
104 |
|
105 ;; ---------------------------------------------------------------------- |
|
106 ;; *Text* |
|
107 (setq default-major-mode 'text-mode) |
|
108 (add-hook 'text-mode-hook 'turn-on-auto-fill) |
|
109 |
|
110 ;; ---------------------------------------------------------------------- |
|
111 ;; Show marked text |
|
112 (setq transient-mark-mode t) |
|
113 (setq font-lock-maximum-decoration t) |
|
114 ;; syntax highlighting |
|
115 (global-font-lock-mode 1 t) |
|
116 |
|
117 ;; ---------------------------------------------------------------------- |
|
118 ;;* Line |
|
119 (if (not (equal window-system 'nil)) |
|
120 (progn |
|
121 (global-hl-line-mode t) |
|
122 (custom-set-faces '(hl-line ((t (:inherit highlight :background "light yellow"))))) |
|
123 ) |
|
124 ) |
|
125 |
|
126 ;; ---------------------------------------------------------------------- |
|
127 ;;* Paren |
|
128 |
|
129 (show-paren-mode 1) ; Parenthesis matching via highlighting. |
|
130 ;; (setq show-paren-style 'expression) ; выделять все выражение в скобках |
|
131 (setq show-paren-style (quote parenthesis)) |
|
132 |
|
133 ;; ====================================================================== |
|
134 ;;* Keyboard, mouse and selection |
|
135 |
|
136 (setq default-input-method 'cyrillic-jcuken) |
|
137 ;; (pc-bindings-mode) ; Myself define keybinding, see |
|
138 ;; Настройка выделения "как в Windows" |
|
139 (setq pc-select-selection-keys-only t) ; to avoid some key bindings as F6, etc |
|
140 (pc-selection-mode) ; This mode enables Delete Selection mode and Transient Mark mode. |
|
141 (transient-mark-mode t) ; t/nil, when the mark is active, the region is highlighted |
|
142 (delete-selection-mode t) ; t/nil |
|
143 |
|
144 ;; ---------------------------------------------------------------------- |
|
145 ;; Completition |
|
146 (partial-completion-mode t) ; For example, M-x p-c-m expands to M-x partial-completion-mode |
|
147 |
|
148 ;; ---------------------------------------------------------------------- |
|
149 ;; Mouse |
|
150 |
|
151 ;; Scroll Bar gets dragged by mouse butn 1 |
|
152 (global-set-key [vertical-scroll-bar down-mouse-1] 'scroll-bar-drag) |
|
153 ;; Paste at point NOT at cursor |
|
154 (setq mouse-yank-at-point 't) |
|
155 (mouse-wheel-mode 1) |
|
156 |
|
157 ;; ---------------------------------------------------------------------- |
|
158 ;; Key Binding (Short-keys). |
|
159 |
|
160 (global-set-key [home] 'beginning-of-line) |
|
161 (global-set-key [end] 'end-of-line) |
|
162 (global-set-key [C-home] 'beginning-of-buffer) |
|
163 (global-set-key [C-end] 'end-of-buffer) |
|
164 (global-set-key [C-delete] 'kill-word) |
|
165 (global-set-key [delete] 'delete-char) |
|
166 ;; (global-set-key [backspace] 'backward-delete-char-untabify) ; not work properly in *info* mode |
|
167 |
|
168 ;; setting some f[1-12] keys |
|
169 (global-set-key [f1] 'help) |
|
170 (global-set-key [f2] 'save-buffer) |
|
171 (global-set-key [f3] 'ediff-buffers) |
|
172 (global-set-key [f4] 'ispell-buffer) |
|
173 (global-set-key [f8] 'kill-this-buffer) |
|
174 (global-set-key [M-f4] 'save-buffers-kill-emacs) |
|
175 |
|
176 ;; search |
|
177 (global-set-key [M-f7] 'search-forward) |
|
178 ;; *Occur* |
|
179 (global-set-key (kbd "\e\eo") 'occur) |
|
180 |
|
181 ;; frames, windows manipulation, switch buffers |
|
182 (global-set-key [C-tab] 'other-window) |
|
183 (global-set-key [?\C-x right] 'next-buffer) |
|
184 (global-set-key [?\C-x left] 'previous-buffer) |
|
185 |
|
186 |
|
187 (global-set-key (kbd "\e\eg") 'goto-line) |
|
188 (global-set-key (kbd "\e\er") 'query-replace-regexp) |
|
189 |
|
190 ;; (global-set-key [language-change] 'ignore) |
|
191 |
|
192 |
|
193 ;; ====================================================================== |
|
194 ;;* Coding system, charset, locale, lang. |
|
195 |
|
196 ; Подготовка к использованию соответствующих кодовых страниц. |
|
197 (codepage-setup 866) |
|
198 (codepage-setup 1251) |
|
199 |
|
200 ;; (setq-default coding-system-for-read 'cp1251-dos) ; comment because prefer-coding-system will be ignored |
|
201 ;; (setq-default coding-system-for-write 'cp1251-dos) ; |
|
202 |
|
203 ;; (setq locale-coding-system 'cp1251-dos) |
|
204 ;; (set-terminal-coding-system 'cp1251) |
|
205 ;; (set-keyboard-coding-system 'cp1251) |
|
206 (set-selection-coding-system 'cp1251) ; utf-8-unix |
|
207 |
|
208 ;; (modify-coding-system-alist 'file "\.*" 'cp1251-dos) |
|
209 ;; (modify-coding-system-alist 'file "\.utf8?$" 'utf-8) |
|
210 (modify-coding-system-alist 'file "\\.el\\'" 'iso-2022-7bit) |
|
211 (modify-coding-system-alist 'file ".*\\.[ch]" 'cp1251-dos) |
|
212 (modify-coding-system-alist 'file "[Mm]akefile.*" 'cp1251-dos) |
|
213 |
|
214 (prefer-coding-system 'koi8-r-dos) |
|
215 (prefer-coding-system 'utf-16-le) |
|
216 (prefer-coding-system 'cp866-dos) |
|
217 (prefer-coding-system 'cp1251-dos) |
|
218 |
|
219 ;; XXXXXXXXXXXXXXXXXXXXXXXX |
|
220 |
|
221 ;; To open from command line file, which names has extended opcode |
|
222 ;; (set-file-name-coding-system 'cp1251) |
|
223 |
|
224 ;; (set-language-environment "Russian") |
|
225 |
|
226 ;; ====================================================================== |
|
227 ;; |
|
228 ;; NON-STANDARD VARIABLES |
|
229 |
|
230 (defvar emacs-base-dir |
|
231 (expand-file-name "~/emacs") |
|
232 "*Name of directory where emacs instaled.") |
|
233 |
|
234 ;; ====================================================================== |
|
235 ;; |
|
236 ;; STANDARD VARIABLES |
|
237 |
|
238 (if (boundp 'confirm-kill-emacs) |
|
239 (setq confirm-kill-emacs 'yes-or-no-p)) |
|
240 |
|
241 ;; Try to speed things up, especially in VM. |
|
242 (setq gc-cons-threshold 2000000) |
|
243 |
|
244 ;; Don't beep in my headphones! |
|
245 ;; (setq visible-bell t) ; XXX in text terminal revert screen if press [end] or [home] |
|
246 |
|
247 (setq ange-ftp-generate-anonymous-password |
|
248 user-mail-address) |
|
249 |
|
250 ;; Prompt before evaluating local bits of lisp. This stops people |
|
251 ;; putting things at the end of files which delete all your files! |
|
252 (setq enable-local-variables t |
|
253 enable-local-eval 1) |
|
254 |
|
255 ;; ====================================================================== |
|
256 ;; |
|
257 ;; STANDARD LIBRARIES |
|
258 |
|
259 (require 'jka-compr) ; Automatic decompression, hooks for tar-mode. |
|
260 (if (fboundp 'auto-compression-mode) |
|
261 (auto-compression-mode 1)) |
|
262 |
|
263 ;; ====================================================================== |
|
264 ;;* Save |
|
265 (setq auto-save-default nil) |
|
266 |
|
267 ;; ---------------------------------------------------------------------- |
|
268 ;; *Recentf* |
|
269 ;; Recent files in menu |
|
270 (require 'recentf) |
|
271 (recentf-mode t) |
|
272 (setq recentf-max-saved-items 200) |
|
273 (global-set-key (kbd "\e\eq") 'recentf-open-files) |
|
274 |
|
275 ;; ---------------------------------------------------------------------- |
|
276 ;; revert |
|
277 (global-set-key [f5] 'revert-buffer) |
|
278 (setq revert-without-query (quote (".*"))) |
|
279 (setq auto-revert-interval 2) |
|
280 |
|
281 ;; ====================================================================== |
|
282 ;;* Convenient |
|
283 |
|
284 ;; ---------------------------------------------------------------------- |
|
285 ;; Completion |
|
286 (require 'icomplete) ; Interactive completion in minibuffer. |
|
287 (icomplete-mode) ; Toggle incremental minibuffer completion for this Emacs session. |
|
288 ;; может дополнять несколько слов одновременно |
|
289 (load "complete") |
|
290 (setq completion-ignored-extensions (quote ("CVS/" ".o" "~" ".bin" ".bak" ".obj" ".map" ".a" ".ln" ".blg" ".bbl" ".elc" |
|
291 ".lof" ".glo" ".idx" ".lot" ".fmt" ".tfm" ".class" ".fas" ".lib" ".x86f" ".sparcf" |
|
292 ".lo" ".la" ".toc" ".log" ".aux" ".cp" ".fn" ".ky" ".pg" ".tp" ".vr" ".cps" |
|
293 ".fns" ".kys" ".pgs" ".tps" ".vrs"))) |
|
294 |
|
295 |
|
296 ;; ---------------------------------------------------------------------- |
|
297 ;; *grep* |
|
298 (setq grep-command "find . -name '*' -exec grep -nH '' {} ;" |
|
299 grep-find-command "find . -type f ! -path '*.svn' ! -path '*CVS' -name \"*\" -print0 | xargs -0 -e grep -nH " |
|
300 ;; grep-highlight-matches t |
|
301 grep-tree-command "find <D> <X> -type f <F> -print0 | xargs -0 -e grep <C> -nH <R>" |
|
302 grep-use-null-device t) |
|
303 (setq blink-matching-paren-on-screen t) |
|
304 |
|
305 ;; ---------------------------------------------------------------------- |
|
306 ;; Music |
|
307 (setq gnus-audio-au-player "winamp.exe" |
|
308 gnus-audio-directory "D:\\music" |
|
309 gnus-audio-wav-player "winamp.exe") |
|
310 |
|
311 |
|
312 ;; ====================================================================== |
|
313 ;;* TIME SETTING |
|
314 |
|
315 ;; ---------------------------------------------------------------------- |
|
316 ;; Time |
|
317 ;; |
|
318 ;; Time in 24 hour format, plus day and date. |
|
319 ;; (setq display-time-day-and-date t |
|
320 ;; display-time-24hr-format t |
|
321 ;; display-time-use-mail-icon t |
|
322 ;; display-time-day-and-date t |
|
323 ;; display-time-mail-file nil) |
|
324 ;; (display-time) |
|
325 |
|
326 ;; ---------------------------------------------------------------------- |
|
327 ;; Calendar |
|
328 ;; (setq mark-holidays-in-calendar t) |
|
329 ;; (setq all-christian-calendar-holidays t) |
|
330 ;; (setq calendar-date-display-form (quote ((format "%04s-%02d-%02d" year (string-to-int month) (string-to-int day))))) |
|
331 ;; (setq calendar-time-display-form (quote (24-hours ":" minutes (if time-zone " (") time-zone (if time-zone ")")))) |
|
332 ;; (setq calendar-week-start-day 1) |
|
333 ;; (setq european-calendar-style t) |
|
334 |
|
335 ;; ====================================================================== |
|
336 ;; |
|
337 ;; STANDARD HOOKS |
|
338 |
|
339 (add-hook 'write-file-hooks 'time-stamp) |
|
340 |
|
341 ;; ====================================================================== |
|
342 ;;* *auto-fill* |
|
343 |
|
344 (setq-default fill-column 90) |
|
345 ;; Turn on auto-fill mode |
|
346 (add-hook 'html-mode-hook 'turn-on-auto-fill) |
|
347 (global-set-key (kbd "\e\ef") 'auto-fill-mode) |
|
348 |
|
349 ;; ---------------------------------------------------------------------- |
|
350 ;; DESIRE |
|
351 |
|
352 ;; (require 'desire) |
|
353 |
|
354 ;; (add-to-list 'desire-load-path |
|
355 ;; (expand-file-name "~/share/emacs/desire")) |
|
356 ;; (add-to-list 'auto-mode-alist |
|
357 ;; (cons (concat (regexp-quote desire-extension) "\\'") |
|
358 ;; 'emacs-lisp-mode)) |
|
359 |
|
360 ;; ---------------------------------------------------------------------- |
|
361 |
|
362 ;; Pilot support |
|
363 ;; (desire 'pilot) |
|
364 |
|
365 ;; ---------------------------------------------------------------------- |
|
366 |
|
367 ;; BBDB - Must be loaded before most other things, since other things |
|
368 ;; may perform special configuration if BBDB is present. |
|
369 ;; |
|
370 ;; (desire 'bbdb "bbdb") |
|
371 |
|
372 ;; ---------------------------------------------------------------------- |
|
373 ;; Appointments, diary, calendar. |
|
374 ;; |
|
375 ;; Use "M-x calendar RET" to display the calendar and start |
|
376 ;; appointment warnings. |
|
377 |
|
378 ;; (desire 'appt) |
|
379 ;; (desire 'calendar) |
|
380 ;; (desire 'todo-mode) |
|
381 ;; (desire 'diary "diary-lib") |
|
382 |
|
383 ;; ---------------------------------------------------------------------- |
|
384 |
|
385 ;; These provide options for the various message handling packages. |
|
386 ;; (desire 'browse-url) |
|
387 ;; (desire 'mailcrypt) |
|
388 ;; (desire 'supercite) |
|
389 |
|
390 ;; Message handing packages. |
|
391 ;; (desire 'gnus) |
|
392 ;; (desire 'message) |
|
393 ;; (desire 'vm) |
|
394 ;; (desire 'sendmail) |
|
395 |
|
396 ;; ---------------------------------------------------------------------- |
|
397 |
|
398 ;; Miscellaneous |
|
399 |
|
400 ;; (desire 'abbrev) |
|
401 ;; (desire 'bibtex) |
|
402 ;; (desire 'calc) |
|
403 ;; (desire 'cc-mode) |
|
404 ;; (desire 'ediff) |
|
405 ;; (desire 'eiffel-mode) |
|
406 ;; (desire 'emacs-w3m) |
|
407 ;; (desire 'eudc) |
|
408 ;; (desire 'filladapt) |
|
409 ;;;; (desire 'hugs-mode) |
|
410 ;; (desire 'haskell-mode) |
|
411 ;; (desire 'ispell) |
|
412 ;; (desire 'latex) |
|
413 ;; (desire 'lispdir) |
|
414 ;; (desire 'mpg123) |
|
415 ;; (desire 'php-mode) |
|
416 ;; (desire 'ps-print) |
|
417 ;; (desire 'psgml) |
|
418 ;; (desire 'sh-script) |
|
419 ;; (desire 'shell) |
|
420 ;;; (desire 'sql-mode) |
|
421 ;; (desire 'tex) |
|
422 ;; (desire 'w3) |
|
423 |
|
424 ;; ====================================================================== |
|
425 ;; |
|
426 ;; PERSONAL |
|
427 |
|
428 ;; (require 'chord-mode) ; edit guitar music. |
|
429 ;; (require 'discography) ; variant of BibTeX mode for discographies. |
|
430 |
|
431 ;; ====================================================================== |
|
432 ;; |
|
433 ;; unNOVICEd commands... |
|
434 ;; |
|
435 ;; The following commands are usually disabled by default. Enable |
|
436 ;; them... |
|
437 |
|
438 (put 'eval-expression 'disabled nil) |
|
439 (put 'downcase-region 'disabled nil) |
|
440 (put 'upcase-region 'disabled nil) |
|
441 (put 'narrow-to-page 'disabled nil) |
|
442 (put 'narrow-to-region 'disabled nil) |
|
443 |
|
444 ;; ====================================================================== |
|
445 ;;* TEX |
|
446 (setq tex-run-command "initex") |
|
447 |
|
448 |
|
449 ;; ====================================================================== |
|
450 ;;* AUC TeX |
|
451 |
|
452 ;; (add-to-list 'load-path "c:/program files/emacs/site-lisp/auctex/") |
|
453 ;; (load "tex-site") |
|
454 |
|
455 ;(require 'tex-mik) |
|
456 ;(add-hook 'LaTeX-mode-hook 'LaTeX-install-toolbar) |
|
457 ;; (setq TeX-parse-self t) ; Enable parse on load. |
|
458 ;; (setq TeX-auto-save t) ; Enable parse on save. |
|
459 ;; (setq-default TeX-master nil) ; Query for master file. Finally, if you often use \include or \input, you should make AUCTEX aware of the multi-file document structure |
|
460 |
|
461 ;(setq TeX-PDF-mode t) |
|
462 ;(setq TeX-interactive-mode t) |
|
463 ;(setq TeX-source-specials-mode 1) |
|
464 ;(add-to-list 'load-path "c:/emacs/site-lisp/auctex/") |
|
465 ;(load "tex-site") |
|
466 ;(load "tex-mik") |
|
467 |
|
468 ;;модифицируем меню |
|
469 ;;; some more menu entries in the command list: |
|
470 ;;; see tex-mik.el from package auctex: %v is defined in tex-mik.el |
|
471 ;;; other variables are defined in tex.el from auctex |
|
472 ;;; the meaning of some auctex-varibles: |
|
473 ;symbols defined in tex.el and tex-mik.el: |
|
474 ;%b name slave tex-file %t name master tex-file |
|
475 ;%d dvi-file %f ps-file |
|
476 ;%l "latex --src-specials" |
|
477 ;%n line number %p printcommand %q "lpq" |
|
478 ;%r (TeX-style-check TeX-print-style) |
|
479 ;%s master-file-name without extention |
|
480 ;%v yap command view line |
|
481 ;(eval-after-load "tex" |
|
482 ; '(progn |
|
483 ; (add-to-list 'TeX-command-list |
|
484 ; (list "->PS landscape for pdf" |
|
485 ; "dvips %d -N0 -Ppdf -G0 -T 297mm,210mm -o %f " |
|
486 ; 'TeX-run-command nil t)) |
|
487 ; (add-to-list 'TeX-command-list |
|
488 ; (list "All Texify run-viewer" |
|
489 ; "texify --tex-opt=--src --run-viewer --clean %s.tex" |
|
490 ; 'TeX-run-command nil t)))) |
|
491 |
|
492 |
|
493 ;; ====================================================================== |
|
494 ;; |
|
495 ;; Reftex activation (Reftex is included with Emacs 21.1) |
|
496 |
|
497 ;; (autoload 'reftex-mode "reftex" "RefTeX Minor Mode" t) |
|
498 ;; (autoload 'turn-on-reftex "reftex" "RefTeX Minor Mode" nil) |
|
499 ;; (autoload 'reftex-citation "reftex-cite" "Make citation" nil) |
|
500 ;; (autoload 'reftex-index-phrase-mode "reftex-index" "Phrase mode" t) |
|
501 ;; (add-hook 'LaTeX-mode-hook 'turn-on-reftex) ; with AUCTeX LaTeX mode |
|
502 ;; (add-hook 'latex-mode-hook 'turn-on-reftex) ; with Emacs latex mode |
|
503 |
|
504 ;; ====================================================================== |
|
505 ;; |
|
506 ;;Настройки PreviewLatex |
|
507 |
|
508 ;(load "preview-latex.el" nil t t) |
|
509 |
|
510 ;(add-to-list 'load-path "c:/emacs/site-lisp/previewlatex/") |
|
511 ;(add-hook 'LaTeX-mode-hook #'LaTeX-preview-setup) |
|
512 ;(autoload 'LaTeX-preview-setup "preview") |
|
513 |
|
514 |
|
515 ;; ====================================================================== |
|
516 ;; |
|
517 ;; Info |
|
518 |
|
519 (require 'info) |
|
520 (setq Info-directory-list (list (expand-file-name "~/../bin/emacs-22.1/info"))) |
|
521 :; t - append at the end |
|
522 (add-to-list 'Info-directory-list (expand-file-name "~/../bin/MinGW/info") t) |
|
523 |
|
524 ;; ====================================================================== |
|
525 ;; |
|
526 ;; SHELL |
|
527 |
|
528 ;; If you plan to use the bash shell, add the following lines to your .emacs file: |
|
529 ;; (setq binary-process-input t) |
|
530 ;; (setq w32-quote-process-args ?\") |
|
531 ;; (setq shell-file-name "bash") ;; or sh if you rename your bash executable to sh. |
|
532 ;; (setenv "SHELL" shell-file-name) |
|
533 ;; (setq explicit-shell-file-name shell-file-name) |
|
534 ;; (setq explicit-sh-args '("-login" "-i")) |
|
535 |
|
536 ;; Include the following only if you want to run |
|
537 ;; bash as your shell. |
|
538 |
|
539 ;; Setup Emacs to run bash as its primary shell. |
|
540 ;; (setq shell-file-name "bash") |
|
541 ;; (setq shell-command-switch "-c") |
|
542 ;; (setq explicit-shell-file-name shell-file-name) |
|
543 ;; (setenv "SHELL" shell-file-name) |
|
544 ;; (setq explicit-sh-args '("-login" "-i")) |
|
545 ;; (if (boundp 'w32-quote-process-args) |
|
546 ;; (setq w32-quote-process-args ?\")) ;; Include only for MS Windows. |
|
547 |
|
548 ;; (setq sh-shell-file "D:\\home\\cygwin\\bin\\sh.exe") |
|
549 ;; (setq sh-shell-arg (quote ((bash) (csh . "-f") (pdksh) (ksh88) (rc . "-p") (wksh) (zsh . "-f") (sh . "-i")))) |
|
550 (setq explicit-bash-args (quote ("-login" "-i"))) |
|
551 (if (equal window-system 'w32) |
|
552 (require 'bat-mode)) |
|
553 |
|
554 ;; ====================================================================== |
|
555 ;; |
|
556 ;; Spell |
|
557 |
|
558 ;(setq ispell-dictionary "russianw"); default dictionary |
|
559 ;(setq ispell-local-dictionary "russianw"); default dictionary |
|
560 ;(add-hook 'text-mode-hook 'flyspell-mode) |
|
561 ;(setq flyspell-default-dictionary "russianw") |
|
562 ;(setq flyspell-delay '1) |
|
563 ;; (setq ispell-local-dictionary-alist |
|
564 ;; '((nil ; default (english.aff) |
|
565 ;; "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1) |
|
566 ;; ("UK-xlg" ; english large version |
|
567 ;; "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B" "-d" "UK-xlg") nil iso-8859-1) |
|
568 ;; ("US-xlg" ; american large version |
|
569 ;; "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B" "-d" "US-xlg") nil iso-8859-1) |
|
570 ;; ) |
|
571 ;; ) |
|
572 |
|
573 ;; ====================================================================== |
|
574 ;; VCS, version control, cvs, svn. |
|
575 |
|
576 (modify-coding-system-alist 'process "cvs" '(cp1251-dos . cp1251-dos)) |
|
577 (modify-coding-system-alist 'process "svn" '(cp866-dos . cp1251-dos)) |
|
578 |
|
579 ;; (setq-default vc-svn-register-switches "--encoding cp1251") |
|
580 (setq-default vc-svn-register-switches nil) |
|
581 |
|
582 ;; ====================================================================== |
|
583 ;;* Devel, prog |
|
584 |
|
585 (add-to-list 'auto-mode-alist '("\\.cu$" . c-mode)) |
|
586 |
|
587 (setq-default show-trailing-whitespace t) |
|
588 ;; (add-hook 'c-mode-hook '(lambda () |
|
589 ;; (setq show-trailing-whitespace t))) |
|
590 |
|
591 ;; ---------------------------------------------------------------------- |
|
592 ;;* Diff, patch |
|
593 ;; (add-hook 'diff-mode-hook '(lambda () |
|
594 ;; (setq show-trailing-whitespace t)) nil t) |
|
595 (setq diff-switches "-u") |
|
596 |
|
597 ;; ---------------------------------------------------------------------- |
|
598 ;; Indent |
|
599 |
|
600 (setq standard-indent 4) |
|
601 (setq c-basic-offset 4) |
|
602 (setq sgml-basic-offset 4) |
|
603 |
|
604 ;; TAB (tab settings) |
|
605 (setq-default tab-width 4) |
|
606 (setq-default indent-tabs-mode nil) ; t - будут вставляться \t |
|
607 (setq tab-always-indent t) |
|
608 (setq tab-stop-list (quote (0 4 8 12 16 20 24 28 32 36 40))) |
|
609 (setq c-tab-always-indent t) |
|
610 |
|
611 (setq comment-style (quote indent)) |
|
612 |
|
613 ;; ---------------------------------------------------------------------- |
|
614 ;; Diff. |
|
615 (setq ediff-diff-options "") |
|
616 |
|
617 ;; ---------------------------------------------------------------------- |
|
618 ;; *Compile* |
|
619 (setq compile-auto-highlight t |
|
620 compile-command "make ") |
|
621 ;; compilation window shall scroll down if not 0 |
|
622 (setq compilation-scroll-output 1) |
|
623 |
|
624 |
|
625 ;; ---------------------------------------------------------------------- |
|
626 ;; asm |
|
627 (setq-default asm-comment-char 0) |
|
628 |
|
629 |
|
630 ;; ---------------------------------------------------------------------- |
|
631 ;; LISP |
|
632 (setq list-command-history-max 256) |
|
633 |
|
634 ;; ---------------------------------------------------------------------- |
|
635 ;; C, c-lang |
|
636 (setq c-echo-syntactic-information-p t) |
|
637 |
|
638 (defconst my-c-style |
|
639 '((c-tab-always-indent . t) |
|
640 (c-comment-only-line-offset . 4) |
|
641 (c-hanging-braces-alist . ((substatement-open after) |
|
642 (brace-list-open))) |
|
643 (c-hanging-colons-alist . ((member-init-intro before) |
|
644 (inher-intro) |
|
645 (case-label after) |
|
646 (label after) |
|
647 (access-label after))) |
|
648 (c-cleanup-list . (scope-operator |
|
649 empty-defun-braces |
|
650 defun-close-semi)) |
|
651 (c-offsets-alist . ((arglist-intro . ++) |
|
652 (arglist-close . c-lineup-arglist) |
|
653 (arglist-cont-nonempty . ++) |
|
654 (statement-block-intro . +) |
|
655 (inline-open . 0) |
|
656 (inexpr-class . 0) |
|
657 (statement-cont . ++) |
|
658 (label . 0) |
|
659 (substatement-open . 0) |
|
660 (case-label . 0) |
|
661 (block-open . 0) |
|
662 (comment-intro . 0) |
|
663 (knr-argdecl-intro . -))) |
|
664 (c-echo-syntactic-information-p . t)) |
|
665 "My C Programming Style") |
|
666 |
|
667 ;; (objc-mode . "my-mode") (c++-mode . "cc-mode") |
|
668 (add-hook 'c-initialization-hook (lambda () |
|
669 (c-add-style "my" my-c-style t))) |
|
670 (setq c-default-style '((java-mode . "my") (c-mode . "my") (csharp-mode . "my") (other . "my"))) |
|
671 |
|
672 ;; Customizations for all modes in CC Mode. |
|
673 ;; (defun my-c-mode-common-hook () |
|
674 ;; ;; add my personal style and set it for the current buffer |
|
675 ;; (c-add-style "PERSONAL" my-c-style t) |
|
676 ;; ;; other customizations |
|
677 ;; (setq tab-width 8 |
|
678 ;; ;; this will make sure spaces are used instead of tabs |
|
679 ;; indent-tabs-mode nil) |
|
680 ;; ;; we like auto-newline and hungry-delete |
|
681 ;; (c-toggle-auto-hungry-state 1) |
|
682 ;; ;; key bindings for all supported languages. We can put these in |
|
683 ;; ;; c-mode-base-map because c-mode-map, c++-mode-map, objc-mode-map, |
|
684 ;; ;; java-mode-map, idl-mode-map, and pike-mode-map inherit from it. |
|
685 ;; (define-key c-mode-base-map "\C-m" 'c-context-line-break)) |
|
686 |
|
687 ;; (add-hook 'c-mode-common-hook 'my-c-mode-common-hook) |
|
688 |
|
689 ;; ---------------------------------------------------------------------- |
|
690 ;; *Csharp* |
|
691 (require 'cc-mode) |
|
692 (autoload 'csharp-mode "csharp-mode" "Major mode for editing C# code." t) |
|
693 (add-to-list 'auto-mode-alist '("\\.cs$" . csharp-mode)) |
|
694 |
|
695 ;; ---------------------------------------------------------------------- |
|
696 ;; *Java* |
|
697 ;; Update the Emacs load-path to include the path to |
|
698 ;; the JDE and its require packages. This code assumes |
|
699 ;; that you have installed the packages in the emacs/site |
|
700 ;; subdirectory of your home directory. |
|
701 ;; (add-to-list 'load-path (expand-file-name "~/emacs/site/semantic")) |
|
702 ;; (add-to-list 'load-path (expand-file-name "~/emacs/site/speedbar")) |
|
703 ;; (add-to-list 'load-path (expand-file-name "~/emacs/site/elib-1.0")) |
|
704 ;; (add-to-list 'load-path (expand-file-name "~/emacs/site/eieio")) |
|
705 ;; (add-to-list 'load-path (expand-file-name "~/emacs/site/jde-2.3.5.1/lisp")) |
|
706 |
|
707 ;; Load CEDET |
|
708 ;; (load-file "~/emacs/site/common/cedet.el") |
|
709 ;; Enabling SEMANTIC minor modes. See semantic/INSTALL for more ideas. |
|
710 ;; (semantic-load-enable-code-helpers) |
|
711 |
|
712 ;; If you want Emacs to defer loading the JDE until you open a |
|
713 ;; Java file, edit the following line |
|
714 ;; (setq defer-loading-jde nil) |
|
715 ;; to read: |
|
716 ;; |
|
717 ;; (setq defer-loading-jde t) |
|
718 ;; |
|
719 |
|
720 ;; (if defer-loading-jde |
|
721 ;; (progn |
|
722 ;; (autoload 'jde-mode "jde" "JDE mode." t) |
|
723 ;; (add-to-list 'auto-mode-alist '("\\.java\\'" . jde-mode)) |
|
724 ;; (require 'jde))) |
|
725 |
|
726 |
|
727 ;; Sets the basic indentation for Java source files |
|
728 ;; to two spaces. |
|
729 ;; (defun my-jde-mode-hook () |
|
730 ;; (setq c-basic-offset 2)) |
|
731 |
|
732 ;; (add-hook 'jde-mode-hook 'my-jde-mode-hook) |
|
733 |
|
734 ;; (require 'jde) |
|
735 |
|
736 ;; ******************** |
|
737 ;; ECB |
|
738 ;; ******************* |
|
739 |
|
740 ;; load ECB |
|
741 ;; (add-to-list 'load-path "~/emacs/site/ecb-2.32") |
|
742 ;; (require 'ecb) |
|
743 |
|
744 ;; load ECB |
|
745 ;(add-to-list 'load-path "~/emacs/site/ecb-2.32") |
|
746 ;(require 'ecb) |
|
747 ;'(ecb-options-version "2.32") |
|
748 ;'(ecb-wget-setup (quote cons)) |
|
749 ;(global-set-key (kbd "\e\eE") 'ecb-activate) |
|
750 |
|
751 ;; ====================================================================== |
|
752 ;;* Printing |
|
753 |
|
754 ;; Use Notepad to print plain text files to the default Windows printer |
|
755 ;(setq lpr-command "notepad") |
|
756 ;(setq lpr-headers-switches '("/p")) ; \ mis-use these |
|
757 ;(setq lpr-switches nil) ; / two variables |
|
758 ;(setq printer-name nil) ; notepad takes the default |
|
759 ;(setq lpr-printer-switch "/P") ;; run notepad as batch printer |
|
760 ;; |
|
761 ;;Печать через prfile32 |
|
762 ;(setq lpr-command "c:/program files/printfile/prfile32.exe") |
|
763 ;(setq lpr-headers-switches '("/p")) |
|
764 ;(setq lpr-switches '("/q")) |
|
765 ;(setq lpr-add-switches nil) |
|
766 ;(setq printer-name nil) |
|
767 ;; |
|
768 ;;Печать в файл |
|
769 ;(setq printer-name "~/myprint.txt") |
|
770 ;(setq ps-printer-name nil) |
|
771 ;(setq ps-print-header nil) |
|
772 ;;модифицируем меню |
|
773 ;;; some more menu entries in the command list: |
|
774 ;;; see tex-mik.el from package auctex: %v is defined in tex-mik.el |
|
775 ;;; other variables are defined in tex.el from auctex |
|
776 ;;; the meaning of some auctex-varibles: |
|
777 ;symbols defined in tex.el and tex-mik.el: |
|
778 ;%b name slave tex-file %t name master tex-file |
|
779 ;%d dvi-file %f ps-file |
|
780 ;%l "latex --src-specials" |
|
781 ;%n line number %p printcommand %q "lpq" |
|
782 ;%r (TeX-style-check TeX-print-style) |
|
783 ;%s master-file-name without extention |
|
784 ;%v yap command view line |
|
785 ;(eval-after-load "tex" |
|
786 ; '(progn |
|
787 ; (add-to-list 'TeX-command-list |
|
788 ; (list "->PS landscape for pdf" |
|
789 ; "dvips %d -N0 -Ppdf -G0 -T 297mm,210mm -o %f " |
|
790 ; 'TeX-run-command nil t)) |
|
791 ; (add-to-list 'TeX-command-list |
|
792 ; (list "All Texify run-viewer" |
|
793 ; "texify --tex-opt=--src --run-viewer --clean %s.tex" |
|
794 ; 'TeX-run-command nil t)))) |
|
795 |
|
796 |
|
797 ;; ====================================================================== |
|
798 ;; |
|
799 ;; Установка режима CUA - все как в Windows |
|
800 ;; поддержка Ctr-c,v,x,d как в windows через пакет CUA |
|
801 |
|
802 ;; версия 21.3 |
|
803 |
|
804 ;(require 'cua) |
|
805 ;(CUA-mode t) |
|
806 ;;установка режимов работы курсора через CUA |
|
807 ;(setq CUA-mode-normal-cursor-color "black") |
|
808 ;(setq CUA-mode-overwrite-cursor-color "red") |
|
809 ;(setq CUA-mode-read-only-cursor-color "green") |
|
810 ;(CUA-keypad-mode 'numeric t); доп.клавиатура - цифры |
|
811 ;(CUA-keypad-mode 'prefix t); доп.клавиатура - префиксы регистров (М-2) |
|
812 |
|
813 ;; версия 21.3.50 и старше |
|
814 |
|
815 ;(require 'cua-base) |
|
816 ;(cua-mode t) |
|
817 ;;установка режимов работы курсора через CUA |
|
818 ;(setq cua-normal-cursor-color "black") |
|
819 ;(setq cua-overwrite-cursor-color "red") |
|
820 ;(setq cua-read-only-cursor-color "green") |
|
821 |
|
822 |
|
823 ;; ====================================================================== |
|
824 ;;* Backup |
|
825 |
|
826 ;; (setq |
|
827 ;; backup-by-copying t ; don't clobber symlinks |
|
828 ;; backup-directory-alist |
|
829 ;; '(("." . "~/backup")) ; don't litter my fs tree |
|
830 ;; delete-old-versions t |
|
831 ;; kept-new-versions 6 |
|
832 ;; kept-old-versions 2 |
|
833 ;; version-control t) ; use versioned backups |
|
834 ;(setq version-control t);нумерованный бэкап - 2 первых и 2 последних |
|
835 ;(setq delete-old-versions t);удаление промежуточных бэкапов |
|
836 |
|
837 |
|
838 ;; ====================================================================== |
|
839 ;; Start off in "C:/home" dir. |
|
840 (cd "~/") |
|
841 (setq my-author-name (getenv "USER")) |
|
842 (setq user-full-name (getenv "USER")) |
|
843 |
|
844 (message ".emacs loaded OK.") |
|
845 |
|
846 ;; |
|
847 ;; End loading... |