About Blog Tags

.emacs продолжение 1

В продолжение статьи решил добавлять части для конфига emacs

Бакапы редактирования в одном месте

;; Copy original file when creating backup
(setq backup-by-copying t
      backup-directory-alist '(("" . "~/.emacs.d/files-backup"))
      delete-old-versions t
      kept-new-versions 6
      kept-old-versions 2
      version-control t)

делаем чтоб при открытии emacs’а не было мусора, а был открыт только один буфер scratch

(setq inhibit-splash-screen t)

Прячем ввод пароля

(add-hook 'comint-output-filter-functions
          'comint-watch-for-password-prompt)

Папка с временными файлами

(setq temporary-file-directory "~/.emacs.d/temp/")

Пробелы вместо табуляции

;; Пробелы вместо табов
(setq c-basic-indent 4)
(setq tab-width 4)
(setq indent-tabs-mode nil)
(setq-default indent-tabs-mode nil)

Для просмотра есть whitespace-mode

Для удаления пробелов или табуляции :

M-x tabify и M-x untabify заменяют отступы (в выделенном регионе) на табы и на пробелы соответственно.

whitespace-cleanup — также поможет для чистки кода от ненужных табов/пробелов.

Включаем копирование в системный буфер обмена

;; copypaste to X buffer
(setq x-select-enable-clipboard t)

Включаем UTF-8

;; UTF-8 as default encoding
(set-language-environment 'UTF-8)
(setq default-input-method 'russian-computer)
(set-selection-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(prefer-coding-system 'mule-utf-8)
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))

Изменяем размер фреймов клавишами Ctrl+Alt+Стрелки

;; Ресайз фреймов
(defun win-resize-top-or-bot ()
  "Figure out if the current window is on top, bottom or in the middle"
  (let* ((win-edges (window-edges))
     (this-window-y-min (nth 1 win-edges))
     (this-window-y-max (nth 3 win-edges))
     (fr-height (frame-height)))
(cond
 ((eq 0 this-window-y-min) "top")
 ((eq (- fr-height 1) this-window-y-max) "bot")
 (t "mid"))))

(defun win-resize-left-or-right ()
  "Figure out if the current window is to the left, right or in the middle"
  (let* ((win-edges (window-edges))
     (this-window-x-min (nth 0 win-edges))
     (this-window-x-max (nth 2 win-edges))
     (fr-width (frame-width)))
(cond
 ((eq 0 this-window-x-min) "left")
 ((eq (+ fr-width 4) this-window-x-max) "right")
 (t "mid"))))

(defun win-resize-enlarge-horiz ()
  (interactive)
  (cond
   ((equal "top" (win-resize-top-or-bot)) (enlarge-window -1))
   ((equal "bot" (win-resize-top-or-bot)) (enlarge-window 1))
   ((equal "mid" (win-resize-top-or-bot)) (enlarge-window -1))
   (t (message "nil"))))

(defun win-resize-minimize-horiz ()
  (interactive)
  (cond
   ((equal "top" (win-resize-top-or-bot)) (enlarge-window 1))
   ((equal "bot" (win-resize-top-or-bot)) (enlarge-window -1))
   ((equal "mid" (win-resize-top-or-bot)) (enlarge-window 1))
   (t (message "nil"))))

(defun win-resize-enlarge-vert ()
  (interactive)
  (cond
   ((equal "left" (win-resize-left-or-right)) (enlarge-window-horizontally -1))
   ((equal "right" (win-resize-left-or-right)) (enlarge-window-horizontally 1))
   ((equal "mid" (win-resize-left-or-right)) (enlarge-window-horizontally -1))))

(defun win-resize-minimize-vert ()
  (interactive)
  (cond
   ((equal "left" (win-resize-left-or-right)) (enlarge-window-horizontally 1))
   ((equal "right" (win-resize-left-or-right)) (enlarge-window-horizontally -1))
   ((equal "mid" (win-resize-left-or-right)) (enlarge-window-horizontally 1))))

(global-set-key [C-M-down] 'win-resize-minimize-vert)
(global-set-key [C-M-up] 'win-resize-enlarge-vert)
(global-set-key [C-M-left] 'win-resize-minimize-horiz)
(global-set-key [C-M-right] 'win-resize-enlarge-horiz)
(global-set-key [C-M-up] 'win-resize-enlarge-horiz)
(global-set-key [C-M-down] 'win-resize-minimize-horiz)
(global-set-key [C-M-left] 'win-resize-enlarge-vert)
(global-set-key [C-M-right] 'win-resize-minimize-vert)
Добавить пост в: Delicious Reddit Slashdot Digg Technorati Google
(уже: 1) Комментировать статью

Комментарии

К этой публикации комментариев нет

Форма комментирования для «.emacs продолжение 1»

Обязательное поле. Не больше 30 символов.

Обязательное поле

captcha image Пожалуйста, введите символы, которые вы видите на изображении