Petr Parfenov 2 anni fa
commit
a9c8c02db5
1 ha cambiato i file con 184 aggiunte e 0 eliminazioni
  1. 184 0
      .emacs

+ 184 - 0
.emacs

@@ -0,0 +1,184 @@
+;; System-type definition
+(defun system-is-linux()
+  (string-equal system-type "gnu/linux"))
+(defun system-is-windows()
+  (string-equal system-type "windows-nt"))
+(defun system-is-macos()
+  (string-equal system-type "darwin"))
+
+;; Start Emacs as a server
+(when (system-is-linux)
+  (require 'server)
+  (unless (server-running-p)
+    (server-start))) ;; launch emacs as a server if OS - GNU/Linux
+
+;; MS Windows path-variable
+(when (system-is-windows)
+  (setq win-sbcl-exe          "C:/sbcl/sbcl.exe")
+  (setq win-init-path         "C:/.emacs.d/lisp")
+  (setq win-init-ct-path      "C:/.emacs.d/plugins/color-theme")
+  (setq win-init-ac-path      "C:/.emacs.d/plugins/auto-complete")
+  (setq win-init-slime-path   "C:/slime")
+  (setq win-init-ac-dict-path "C:/.emacs.d/plugins/auto-complete/dict"))
+
+;; Unix path-variable
+(when (system-is-linux)
+  (setq unix-sbcl-bin          "/usr/bin/sbcl")
+  (setq unix-init-path         "~/.emacs.d/lisp")
+  (setq unix-init-ct-path      "~/.emacs.d/plugins/color-theme")
+  (setq unix-init-ac-path      "~/.emacs.d/plugins/auto-complete")
+  (setq unix-init-slime-path   "/usr/share/common-lisp/source/slime/")
+  (setq unix-init-ac-dict-path "~/.emacs.d/plugins/auto-complete/dict"))
+
+;; Dired
+(require 'dired)
+(setq dired-recursive-deletes 'top) ;; so we can delete non-empty directories
+
+;; Imenu
+(require 'imenu)
+(setq imenu-auto-rescan      t) ;; automatically update the list of functions in the buffer
+(setq imenu-use-popup-menu nil) ;; Imenu dialog only in the mini-buffer
+(global-set-key (kbd "<f6>") 'imenu) ;; press F6 to launch Imenu
+
+;; Display the name of the current buffer in the title bar
+(setq frame-title-format "GNU Emacs: %b")
+
+;; Load path for plugins
+(if (system-is-windows)
+  (add-to-list 'load-path win-init-path)
+  (add-to-list 'load-path unix-init-path))
+
+;; Inhibit startup/splash screen
+(setq inhibit-splash-screen   t)
+(setq ingibit-startup-message t) ;;startup screen can be open with C-h
+
+;; Show-paren-mode settings
+(show-paren-mode t) ;; turn on text highlight within {},[],()
+(setq show-paren-style 'expression) ;; highlight text inside {}, [], ()
+
+;; Electric-modes settings
+(electric-pair-mode    1) ;; automatically close brackets {},[],()
+(electric-indent-mode -1) ;; turn off auto indent with electric-indent-mod (default in Emacs-24.4)
+
+;; Delete selection
+(delete-selection-mode t)
+
+;; Disable GUI components
+(tooltip-mode      -1)
+(menu-bar-mode     -1) ;; turn off GUI menu bar
+(tool-bar-mode     -1) ;; turn off toolbar
+(scroll-bar-mode   -1) ;; turn off scrollbar
+(blink-cursor-mode -1) ;; turn off cursor blink
+(setq use-dialog-box     nil) ;; all dialogs through mini-buffer
+(setq redisplay-dont-pause t)  ;; better buffer display
+(setq ring-bell-function 'ignore) ;; turn off sound notification
+
+;; Coding-system settings
+(set-language-environment 'UTF-8)
+(if (system-is-linux) ;; utf-8 for GNU/Linux and macOS, windows-1251 for MS Windows
+    (progn
+      (setq default-buffer-file-coding-system 'utf-8)
+      (setq-default coding-system-for-read    'utf-8)
+      (setq file-name-coding-system           'utf-8)
+      (set-selection-coding-system            'utf-8)
+      (set-keyboard-coding-system        'utf-8-unix)
+      (set-terminal-coding-system             'utf-8)
+      (prefer-coding-system                   'utf-8))
+    (progn
+      (prefer-coding-system                   'windows-1251)
+      (set-terminal-coding-system             'windows-1251)
+      (set-keyboard-coding-system        'windows-1251-unix)
+      (set-selection-coding-system            'windows-1251)
+      (setq file-name-coding-system           'windows-1251)
+      (setq-default coding-system-for-read    'windows-1251)
+      (setq default-buffer-file-coding-system 'windows-1251)))
+
+;; Linum plugin
+(require 'linum) ;; call Linum
+(line-number-mode   t) ;; show line number in mode-line
+(global-linum-mode  t) ;; show line number in all buffers
+(column-number-mode t) ;; show column number in mode-line
+(setq linum-format " %d") ;; set up line numbering format
+
+;; Fringe settings
+(fringe-mode '(8 . 0)) ;; fringe is only on the left side
+(setq-default indicate-empty-lines t) ;; empty lines are marked
+(setq-default indicate-buffer-boundaries 'left) ;; indication are shown on the left side
+
+;; Display file size/time in mode-line
+(setq display-time-24hr-format t) ;; 24-hour time format in the  mode-line
+(display-time-mode             t) ;; show time in mode-line
+(size-indication-mode          t) ;; file size in %
+
+;; Line wrapping
+(setq word-wrap          t) ;; word wrapping
+(global-visual-line-mode t)
+
+;; Start window size
+(when (window-system)
+  (set-frame-size (selected-frame) 100 50))
+
+;; IDO plugin
+(require 'ido)
+(ido-mode                      t)
+(icomplete-mode                t)
+(ido-everywhere                t)
+(setq ido-vitrual-buffers      t)
+(setq ido-enable-flex-matching t)
+
+;; Buffer Selection and ibuffer settings
+(require 'bs)
+(require 'ibuffer)
+(defalias 'list-buffers 'ibuffer) ;; separate buffer list with C-x C-b
+(global-set-key (kbd "<f2>") 'bs-show) ;; start buffer selection by pressing F2
+
+;; Syntax highlighting
+(require 'font-lock)
+(global-font-lock-mode             t) ;; just in case... set on since Emacs-22
+(setq font-lock-maximum-decoration t)
+
+;; Indent settings
+(setq-default indent-tabs-mode nil) ;; turn off indentation via tab
+(setq-default tab-width          2) ;; tab size
+(setq-default c-basic-offset     2)
+(setq-default standart-indent    2) ;; standard offset
+(setq-default lisp-body-indent   2) ;; offset in lisp
+(global-set-key (kbd "RET") 'newline-and-indent) ;; with enter, make new line and indent
+(setq lisp-indent-function  'common-lisp-indent-function)
+
+;; Scrolling settings
+(setq scroll-step               1) ;; up-down scrolling speed is 1
+(setq scroll-margin            10) ;; set up scrolling margin
+(setq scroll-conservatively 10000)
+
+;; Short messages
+(defalias 'yes-or-no-p 'y-or-n-p)
+
+;; Clipboard settings
+(setq x-select-enable-clipboard t)
+
+;; End of file newlines
+;;(setq require-final-newline    t) ;; add additional newline while saving file
+(setq next-line-add-newlines nil) ;; do not add new line with arrow keys
+
+;; Highlight search resaults
+(setq search-highlight        t)
+(setq query-replace-highlight t)
+
+;; Easy transition between buffers: M-arrow-keys
+(if (equal nil (equal major-mode 'org-mode))
+    (windmove-default-keybindings 'meta))
+
+;; Delete trailing whitespaces, format buffer and untabify when save buffer
+;;(defun format-current-buffer()
+;;    (indent-region (point-min) (point-max)))
+;;(defun untabify-current-buffer()
+;;    (if (not indent-tabs-mode)
+;;        (untabify (point-min) (point-max)))
+;;    nil)
+;;(add-to-list 'write-file-functions 'format-current-buffer)
+;;(add-to-list 'write-file-functions 'untabify-current-buffer)
+;;(add-to-list 'write-file-functions 'delete-trailing-whitespace)
+
+;; Mouse support
+(xterm-mouse-mode 1)