Deprecated branch of ORGOS, restored for the link from StackOverflow answer
**
(defvar backup-dir (expand-file-name "~/.emacs.d/backup/"))
(defvar tmp-dir (expand-file-name "~/tmp/"))
(set-language-environment 'utf-8)
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(setq locale-coding-system 'utf-8)
(setq default-file-name-coding-system 'utf-8)
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))
(setq-default custom-file (expand-file-name "custom.el" user-emacs-directory)
desktop-path '("~/.emacs.d/" "~")
cursor-type 'bar
indent-tabs-mode nil
truncate-lines nil
truncate-partial-width-windows t
tab-width 2
indent-line-function 'indent-relative
show-trailing-whitespace nil
default-input-method 'russian-computer
redisplay-dont-pause t
color-theme-is-cumulative nil
longlines-show-hard-newlines t
make-backup-files t
version-control nil
require-final-newline t
default-tabs-width 2
backup-by-copying t
kept-new-versions 3
kept-old-versions 2
delete-old-versions t
delete-by-moving-to-trash nil
temporary-file-directory backup-dir
small-temporary-file-directory backup-dir
backup-directory-alist `((".*" . ,backup-dir))
auto-save-file-name-transforms `((".*" ,backup-dir t))
auto-save-list-file-prefix backup-dir
create-lockfiles nil
popup-use-optimized-column-computation t
browse-url-browser-function 'browse-url-generic
browse-url-generic-program "google-chrome-stable"
max-specpdl-size 32000
json-encoding-pretty-print t
json-encoding-default-indentation " ")
Следует расписать по разделам
(require 'xelb)
(use-package exwm
:init
(require 'exwm)
(require 'exwm-config)
(require 'exwm-systemtray)
(require 'exwm-randr)
;; (require 'exwm-cm)
(setq-default exwm-workspace-number 5
exwm-workspace-show-all-buffers t
exwm-layout-show-all-buffers t
exwm-manage-force-tiling t
debug-on-error nil
edebug-all-forms nil
debug-on-quit nil
exwm-debug-on nil)
;; (setq debug-on-error t)
;; (setq debug-on-quit t)
;; (setq window-system-default-frame-alist '((x . ((alpha . 100)))))
;; (setq exwm-cm-opacity 80)
;; (exwm-cm-enable)
(add-hook 'exwm-update-class-hook
(lambda ()
(exwm-workspace-rename-buffer exwm-class-name)))
;; Note: This approach does not work with Emacs 25 due to a bug of Emacs.
(add-hook 'exwm-manage-finish-hook
(lambda ()
(when (and exwm-class-name
(string= exwm-class-name "URxvt"))
(exwm-input-set-local-simulation-keys '(([?\C-c ?\C-c] . ?\C-c))))))
(setq exwm-randr-workspace-output-plist '(0 "VGA1"))
;; (add-hook 'exwm-randr-screen-change-hook
;; (lambda ()
;; (start-process-shell-command
;; "xrandr" nil "xrandr --output VGA1 --auto --left-of LVDS1")))
(exwm-randr-enable)
(setq window-system-default-frame-alist '((x . ((alpha . 100)))))
(setq exwm-cm-opacity 80)
(setq exwm-systemtray-height 16)
(exwm-systemtray-enable)
(add-hook 'exwm-update-title-hook
(lambda ()
(exwm-workspace-rename-buffer
(truncate-string-to-width (format "%s : %s" exwm-class-name exwm-title)
43 0 nil "..."))))
(exwm-input-set-key (kbd "s-q") #'exwm-reset)
(exwm-input-set-key (kbd "s-w") #'exwm-workspace-switch)
(exwm-input-set-key (kbd "s-C-d") #'delete-window)
(exwm-input-set-key (kbd "s-h") 'windmove-left)
(exwm-input-set-key (kbd "s-j") 'windmove-down)
(exwm-input-set-key (kbd "s-k") 'windmove-up)
(exwm-input-set-key (kbd "s-l") 'windmove-right)
(exwm-input-set-key (kbd "s-x") 'counsel-linux-app)
(exwm-input-set-key (kbd "s-SPC") 'exwm-floating-toggle-floating)
(exwm-input-set-key (kbd "s-K") 'buf-move-up)
(exwm-input-set-key (kbd "s-J") 'buf-move-down)
(exwm-input-set-key (kbd "s-H") 'buf-move-left)
(exwm-input-set-key (kbd "s-L") 'buf-move-right)
(exwm-input-set-key (kbd "C-s-h") 'split-window-horizontally)
(exwm-input-set-key (kbd "C-s-j") '(lambda () (interactive) (split-window-vertically) (windmove-down)))
(exwm-input-set-key (kbd "C-s-k") 'split-window-vertically)
(exwm-input-set-key (kbd "C-s-l") '(lambda () (interactive) (split-window-horizontally) (windmove-right)))
(exwm-input-set-key (kbd "s-b") 'ivy-switch-buffer)
(exwm-input-set-key (kbd "<XF86Back>") 'winner-undo)
(exwm-input-set-key (kbd "<XF86Forward>") 'winner-redo)
(exwm-input-set-key (kbd "<XF86AudioMicMute>") '(lambda () (interactive) (async-shell-command "amixer set Capture toggle" nil nil)))
(exwm-input-set-key (kbd "<XF86AudioMute>") '(lambda () (interactive) (async-shell-command "amixer sset Master toggle" nil nil)))
(exwm-input-set-key (kbd "<XF86AudioRaiseVolume>") '(lambda () (interactive) (async-shell-command "pamixer --increase 5" nil nil)))
(exwm-input-set-key (kbd "<XF86AudioLowerVolume>") '(lambda () (interactive) (async-shell-command "pamixer --decrease 10" nil nil)))
(dotimes (i 10)
(exwm-input-set-key (kbd (format "s-%d" i))
`(lambda ()
(interactive)
(exwm-workspace-switch-create ,i))))
(exwm-input-set-key (kbd "s-r")
(lambda (command)
(interactive (list (read-shell-command "$ ")))
(start-process-shell-command command nil command)))
(exwm-input-set-simulation-keys
'(([?\C-b] . left)
([?\C-f] . right)
([?\C-p] . up)
([?\C-n] . down)
([?\C-a] . home)
([?\C-e] . end)
([?\M-v] . prior)
([?\C-v] . next)
))
(exwm-enable)
(exwm-config-ido))
И его отсутствие
(require 'tao-yang-theme)
(defun tao-palette ()
(tao-theme-golden-grayscale-yang-palette))
(set-face-attribute 'default nil
:family "Iosevka"
:width 'normal
:weight 'normal)
(set-face-attribute 'mode-line nil
:family "Iosevka"
:width 'normal
:weight 'normal)
(custom-set-faces
'(variable-pitch ((t (:family "Iosevka")))))
(use-package dashboard
:disabled t
:config
(setq dashboard-items '((recents . 5)
(bookmarks . 5)
(projects . 5)))
(dashboard-setup-startup-hook))
(custom-set-variables '(ring-bell-function 'ignore))
(setq-default initial-scratch-message ""
inhibit-startup-message t
inhibit-startup-echo-area-message ""
visible-bell nil)
(mapc
(lambda (mode)
(when (fboundp mode)
(funcall mode -1)))
'(menu-bar-mode tool-bar-mode scroll-bar-mode blink-cursor-mode global-hl-line-mode))
(defalias 'yes-or-no-p 'y-or-n-p)
Не показывать нажатые клавиши (в wm ненужно)
(setq echo-keystrokes 0)
<M-C-e> редактор для минибуфера (TODO протестировать)
(use-package miniedit
:ensure t
:commands minibuffer-edit
:init (miniedit-install))
;; (defun stop-using-minibuffer ()
;; "kill the minibuffer"
;; (when (and (>= (recursion-depth) 1) (active-minibuffer-window))
;; (abort-recursive-edit)))
;; (add-hook 'mouse-leave-buffer-hook 'stop-using-minibuffer)
(global-set-key (kbd "C-x C-b") 'ibuffer)
(use-package winner
:ensure t
:bind (("<XF86Back>" . winner-undo)
("<XF86Forward>" . winner-redo))
:init
(winner-mode t)
(global-set-key (kbd "<XF86Back>") 'winner-undo)
(global-set-key (kbd "<XF86Forward>") 'winner-redo))
(use-package buffer-move
:ensure t
:config
(global-set-key (kbd "s-K") 'buf-move-up)
(global-set-key (kbd "s-J") 'buf-move-down)
(global-set-key (kbd "s-H") 'buf-move-left)
(global-set-key (kbd "s-L") 'buf-move-right))
(use-package golden-ratio
:ensure t
:bind(("C-x +" . golden-ratio)
("C-x =" . balance-windows)
("C-x _" . maximize-window)
("C-x -" . minimize-window))
:init
(golden-ratio-mode -1))
(use-package popwin
:ensure t
:bind (("C-`" . popwin:keymap)
("M-`" . popwin:popup-last-buffer)
("C-c p m" . popwin:messages))
:config
(popwin-mode 1)
(setq display-buffer-function 'popwin:display-buffer)
(setq-default popwin:adjust-other-windows t)
(global-set-key (kbd "C-c p") popwin:keymap)
;;(global-set-key (kbd "C-c C-p") popwin:keymap)
(mapc (lambda (x) (push x popwin:special-display-config))
'(("*undo-tree*" :width 25 :position right)
("*Kill Ring*" :height 20 :position top)
("*skewer-repl*" :height 20 :position bottom)
("*skewer-livescript-repl*" :height 20 :position bottom :stick t)
("*kite-mini-console*" :height 20 :position bottom :stick t)
("*livescript-compiled*" :height 20 :position bottom :stick t)
("*Help*" :height 25 :position top)
("*Backtrace*" :height 20 :position bottom)
("*How do I*" :height 20 :position top)
("*prodigy*" :height 20 :position bottom)
("*Swoop*" :height 20 :position bottom)
("*eshell*" :height 20 :position bottom :stick t)
("*ielm*" :height 20 :position bottom)
("*Packages*" :height 20 :position bottom)
("*Messages*" :height 20 :position bottom :stick t)
("^\*Compile\-Log\*.*$" :height 20 :position bottom)
("*scratch*" :height 20 :position bottom :stick t)
("^.*Developer Tools.*$" :regexp t :height 20 :position bottom)
("^\*hg.*\*$" :regexp t :height 20 :position bottom)
("^\*aHg.*\*$" :regexp t :height 20 :position bottom)
("^\*magit.*\*$" :regexp t :height 20 :position bottom)
(packages-menu-mode :position bottom :height 20) ;don't working
;;(dired-mode :position left :width 30) ;working but not needed
(magit-mode :position bottom :height 20)))
:init
)
(use-package scratch-pop
:ensure t
:bind
(("C-c p l" . scratch-pop))
:init
(global-set-key (kbd "C-c p l") 'scratch-pop)
)
(defun setup-windows ()
"Organize a series of windows."
(interactive)
(delete-other-windows)
(sx-tab-frontpage t nil)
(split-window-horizontally)
(other-window 1)
(find-file "~/.emacs.d/config.org")
(split-window-vertically)
(elfeed)
(other-window 2)
(split-window-vertically)
(dired "~")
(window-configuration-to-register ?w))
(add-to-list 'display-buffer-alist (cons "\\*Async Shell Command\\*.*" (cons #'display-buffer-no-window nil)))
Дата и время в 24-часовом формате
(setq display-time-day-and-date t
display-time-24hr-format t)
(display-time-mode 1)
(display-battery-mode 1)
Уникальные имена для буферов
(use-package uniquify
:config
(setq uniquify-buffer-name-style 'forward))
(use-package powerline
:ensure t
:bind
(("M-m" . toggle-mode-line))
:init
(setq powerline-default-separator 'wave
powerline-height 20
powerline-default-separator-dir '(right . right))
(powerline-default-theme)
(display-time-mode)
)
- State “CANCELLED” from “DONE” [2016-11-21 Пн 16:48]
Легче, но хуже настраивается, чем Powerline
(use-package smart-mode-line
:disabled t
:ensure nil
:init
(smart-mode-line-enable t))
(dolist (key '("C-z"
"C-q"
"C-h"
"C-j"
"C-k"
"C-l"
"C-M-h"
"C-M-j"
"C-M-k"
"C-M-l"
"M-h"
"M-j"
"M-k"
"M-l"
"C-d"
"C-w"
"<XF86Forward>"
"<XF86Back>")) (global-unset-key (kbd key)))
(use-package god-mode
:ensure t
:bind (( "<escape>" . god-local-mode)
( "M-i" . god-local-mode)
( "C-j" . next-line)
( "C-k" . previous-line)
( "C-h" . backward-char)
( "C-l" . forward-char)
( "C-o" . vi-open-line-below)
( "M-o" . vi-open-line-above)
( "C-x C-1" . delete-other-windows)
( "C-x C-2" . split-window-below)
( "C-x C-3" . split-window-right)
( "C-x C-0" . delete-window)
( "C-d C-f" . delete-forward-char)
( "C-d C-b" . backward-delete-char-untabify)
( "C-d C-e" . kill-line)
( "C-d C-w" . delete-trailing-whitespace)
( "C-d C-a" . delete-to-begin))
:init
(god-mode-all)
(defun my-update-cursor ()
(setq cursor-type (if (or god-local-mode buffer-read-only) 'box 'bar)))
(setq god-exempt-major-modes '(dired-mode
wdired-mode
grep-mode
vc-annotate-mode
eshell-mode
shell-mode
term-mode
neotree-mode
kite-mini-console-mode
mu4e-main-mode
mu4e-headers-mode
mu4e-view-mode
browse-kill-ring-mode
sx-question-mode
info-mode
prodigy-mode)
god-exempt-predicates (list #'god-exempt-mode-p))
(diminish 'god-local-mode " ☯")
(add-hook 'god-mode-enabled-hook 'my-update-cursor)
(add-hook 'god-mode-disabled-hook 'my-update-cursor)
(define-keys god-local-mode-map (list
"V" 'mark-current-line
"i" 'god-local-mode
"h" 'backward-char
"j" 'next-line
"k" 'previous-line
"l" 'forward-char
(kbd "C-h") 'backward-char
(kbd "C-j") 'next-line
(kbd "C-k") 'previous-line
(kbd "C-l") 'forward-char
"H" (lambda () (interactive) (progn (backward-char 5) (scroll-right 5)))
"J" (lambda () (interactive) (progn (next-line 5) (scroll-up 5)))
"K" (lambda () (interactive) (progn (previous-line 5) (scroll-down 5)))
"L" (lambda () (interactive) (progn (forward-char 5) (scroll-left 5)))
)))
(use-package avy
:ensure t
:bind (("C-t" . avy-goto-char)
("C-d C-t" . avy-zap-to-char))
:init
(setq avy-background nil))
(use-package beacon
:disabled t
:ensure t
:demand t
:diminish beacon-mode
:bind* (("C-c SPC" . beacon-blink))
:config
(setq beacon-blink-duration 0.2
beacon-blink-delay 0.2
beacon-size 7)
(beacon-mode 1))
Подсветка
(use-package highlight-indentation
:ensure t)
(use-package expand-region
:ensure t
:bind
(("C-v" . er/expand-region)
("M-v" . er/contract-region)
("C-S-v" . mark-current-line))
:config
(setq expand-region-contract-fast-key "M-v"
expand-region-reset-fast-key "<ESC><ESC>"))
(global-set-keys
(kbd "C-d C-e") 'kill-line
(kbd "C-d C-f") 'delete-forward-char
(kbd "C-d C-b") 'backward-delete-char-untabify
(kbd "C-d C-e") 'kill-line
(kbd "C-d C-w") 'delete-trailing-whitespace
(kbd "C-d C-a") 'delete-to-begin)
(use-package whole-line-or-region
:ensure t
:bind (("C-y" . whole-line-or-region-kill-ring-save)
("M-y" . whole-line-or-region-yank)
("C-M-d" . whole-line-or-region-kill-region)
("C-d C-d" . whole-line-or-region-kill-region)))
(use-package paren-face
:ensure t
:init
(global-paren-face-mode)
:config
(tao-with-color-variables tao-palette
(set-face-attribute 'parenthesis nil
:weight 'normal
:foreground color-6)))
(use-package highlight-parentheses
:ensure t
:init
(global-highlight-parentheses-mode)
(tao-with-color-variables tao-palette
(progn
;; (set-face-attribute 'paren-face nil
;; :weight 'bold)
(setq
hl-paren-colors (list color-13 color-11 color-9 color-7 color-5)
hl-paren-background-colors (list color-4 color-4 color-4 color-4 color-4))))
)
(use-package smartparens
:ensure t
:diminish "()"
:bind (("C-^" . sp-unwrap-sexp)
("M-k" . sp-backward-sexp)
("M-j" . sp-down-sexp)
("M-h" . sp-backward-up-sexp)
("M-l" . sp-next-sexp))
:init
(smartparens-global-mode 1)
(sp-local-pair 'emacs-lisp-mode "'" nil :actions nil)
(sp-local-pair 'scheme-mode "'" nil :actions nil)
(sp-local-pair 'lisp-mode "'" nil :actions nil)
(show-smartparens-global-mode 1))
(use-package parinfer
:ensure t
:bind (("C-c i" . parinfer-toggle-mode))
:init
(setq parinfer-extensions
'(defaults
pretty-parens
paredit
smart-tab
smart-yank))
(add-hook 'clojure-mode-hook 'parinfer-mode)
(add-hook 'scheme-mode-hook 'parinfer-mode)
(add-hook 'emacs-lisp-mode-hook 'parinfer-mode)
(add-hook 'lisp-mode-hook 'parinfer-mode))
(use-package savehist
:ensure t
:config
(setq history-length t)
(setq history-delete-duplicates t)
(setq savehist-save-minibuffer-history 1)
(setq savehist-additional-variables
'(kill-ring
search-ring
regexp-search-ring))
(setq savehist-file "~/.emacs.d/savehist")
:init
(savehist-mode 1)
)
(use-package saveplace
:ensure t
:config (setq-default save-place t
save-place-file "~/.emacs.d/places"))
C-M-_ - Дерево отмены
(use-package undo-tree
:ensure t
:diminish " U"
:config
(setq-default undo-tree-auto-save-history t
undo-tree-history-directory-alist `((".*" . ,(expand-file-name "~/.emacs.d/undo/")))
undo-tree-visualizer-timestamps t
undo-tree-visualizer-diff nil)
(define-keys undo-tree-map (list
(kbd "C-/") 'isearch-forward
(kbd "M-/") 'isearch-backward))
:bind
(("C-M--" . undo-tree-visualize)
("C-M-_" . undo-tree-visualize))
:init
(global-undo-tree-mode 1))
(use-package shift-text
:ensure t
:bind (("C-M-n" . shift-text-down)
("C-M-p" . shift-text-up)
("C-M-f" . shift-text-right)
("C-M-b" . shift-text-left)))
(setq-default scroll-conservatively 101
scroll-step 1
scroll-margin 12
hscroll-step 1
hscroll-margin 12)
- автоматически
- в служебных буферах
- в файлах org, log
(setq-default global-auto-revert-non-file-buffers t
auto-revert-verbose nil)
;; (global-auto-revert-mode t)
;; (add-to-list 'auto-mode-alist '("\\.org\\'" . auto-revert-mode))
;; (add-to-list 'auto-mode-alist '("\\.log\\'" . auto-revert-mode))
- по нажатию C-x C-r
src_emacs-lisp{ (global-set-key (kbd “C-x C-r”) (lambda () (interactive) (revert-buffer t t))) }
(global-set-key (kbd "C-+") 'text-scale-increase)
(global-set-key (kbd "C--") 'text-scale-decrease)
(global-set-key (kbd "C-=") 'text-scale-set)
(global-set-key (kbd "C-$") 'toggle-truncate-lines)
(global-set-key (kbd "C-o") 'vi-open-line-below)
(global-set-key (kbd "M-o") 'vi-open-line-above)
(use-package goto-last-change
:ensure t
:bind (("C-c u" . goto-last-change))
:config)
(global-set-key (kbd "C-r") 'replace-string)
(global-set-key (kbd "M-r") 'replace-regexp)
(use-package folding
:ensure t
:init)
(use-package browse-kill-ring
:ensure t
:bind (("C-M-y" . browse-kill-ring))
:config
(setq browse-kill-ring-show-preview nil
browse-kill-ring-highlight-inserted-item t
browse-kill-ring-highlight-current-entry t))
(setq-default ediff-window-setup-function 'ediff-setup-windows-plain
ediff-split-window-function 'split-window-horizontally
ediff-diff-options "-w")
(defun custom-ediff-hook ()
(ediff-setup-keymap)
(define-key ediff-mode-map "j" 'ediff-next-difference)
(define-key ediff-mode-map "k" 'ediff-previous-difference))
(add-hook 'ediff-mode-hook 'custom-ediff-hook)
;;(add-hook 'ediff-after-quit-hook-internal 'winner-undo)
(use-package lispy
:disabled t
:ensure nil
:init)
(use-package anything :ensure t)
;; (use-package smex
;; :ensure t
;; :bind
;; (("M-x" . smex))
;; :init
;; (smex-initialize))
;; (use-package ido
;; :ensure t
;; :bind (("C-x C-f" . ido-find-file))
;; :init (ido-mode 1)
;; :config (add-hook 'ido-setup-hook
;; (lambda ()
;; (define-keys ido-completion-map (list
;; (kbd "C-n") 'ido-next-match
;; (kbd "C-p") 'ido-prev-match
;; [tab] 'ido-complete))))
;; (setq ido-case-fold t
;; ido-everywhere t
;; ido-enable-prefix nil
;; ido-enable-flex-matching t
;; ido-create-new-buffer 'always
;; ido-use-filename-at-point 'guess
;; ido-max-prospects 10
;; ido-default-buffer-method 'selected-window
;; ido-file-extensions-order '(".lisp" ".el" ".js" ".jsx" ".styl" "json")
;; ido-cannot-complete-command 'ido-next-match)
;; (setq ido-ignore-buffers
;; '("\\` " "^\*Back" ".*Completion" "^\*Ido" "^\*trace"
;; "^\*compilation" "^\*google" "^\*tor" "^\*urxvt")))
;; (use-package flx-ido
;; :ensure t
;; :init (flx-ido-mode 1)
;; :config (setq ido-use-faces nil
;; flx-ido-use-faces t))
;; (use-package ido-ubiquitous
;; :ensure t
;; :init (ido-ubiquitous-mode 1))
;; (use-package ido-vertical-mode
;; :ensure t
;; :init (ido-vertical-mode t)
;; :config (progn
;; (setq ido-vertical-show-count t)))
Существует новый интересный режим автодополнения минибуфера
(use-package ivy
:ensure t
:config
(setq ivy-ignore-buffers '("\\` " "^\*Back" ".*Completion" "^\*Ido" "^\*trace"
"^\*compilation" "^\*google" "^\*tor" "^\*urxvt")
ivy-display-style 'fancy
ivy-height 7
ivy-use-virtual-buffers t
ivy-initial-inputs-alist nil
ivy-switch-buffer-show-info t
ivy-re-builders-alist '((t . ivy--regex-ignore-order)))
(global-set-key (kbd "C-x C-b") 'ivy-switch-buffer)
(global-set-key (kbd "<f6>") 'ivy-resume)
:init
(ivy-mode t))
(use-package ivy-rich
:ensure t
:config
(setq ivy-virtual-abbreviate 'full
ivy-rich-switch-buffer-align-virtual-buffer t)
:init
(ivy-set-display-transformer
'ivy-switch-buffer 'ivy-rich-switch-buffer-transformer))
(use-package ivy-hydra
:ensure t
:config
(setq ivy-virtual-abbreviate 'full
ivy-rich-switch-buffer-align-virtual-buffer t)
:init
(ivy-set-display-transformer
'ivy-switch-buffer 'ivy-rich-switch-buffer-transformer))
(use-package swiper
:ensure t
:config
(global-set-key (kbd "C-s") 'swiper)
;; (custom-set-faces
;; '(swiper-minibuffer-match-face-1
;; ((t :background "#dddddd")))
;; '(swiper-minibuffer-match-face-2
;; ((t :background "#bbbbbb" :weight bold)))
;; '(swiper-minibuffer-match-face-3
;; ((t :background "#bbbbff" :weight bold)))
;; '(swiper-minibuffer-match-face-4
;; ((t :background "#ffbbff" :weight bold))))
:init
)
(use-package counsel
:ensure t
:init
(counsel-mode 1)
(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-x f") 'counsel-recentf)
(global-set-key (kbd "<f1> f") 'counsel-describe-function)
(global-set-key (kbd "<f1> v") 'counsel-describe-variable)
(global-set-key (kbd "<f1> l") 'counsel-find-library)
(global-set-key (kbd "<f1> I") 'counsel-info-lookup-symbol)
(global-set-key (kbd "<f1> u") 'counsel-unicode-char)
;;(global-set-key (kbd "C-c g") 'counsel-git)
;;(global-set-key (kbd "C-c j") 'counsel-git-grep)
(global-set-key (kbd "M-s a") 'counsel-ag)
;;(global-set-key (kbd "C-x l") 'counsel-locate)
;;(global-set-key (kbd "M-s r") 'counsel-rhythmbox)
(exwm-input-set-key (kbd "s-x") 'counsel-linux-app)
(global-set-key (kbd "s-x") 'counsel-linux-app)
(define-key read-expression-map (kbd "C-r") 'counsel-expression-history))
(use-package guide-key
:ensure t
:diminish " C-?"
:init
(setq guide-key/guide-key-sequence '("C-x" "C-c" "ESC" "C-," "C-z" "M-t" "M-g" "SPC" "M-s" "C-d")
guide-key/popup-window-position 'bottom
guide-key/recursive-key-sequence-flag t
guide-key/idle-delay 1
guide-key/text-scale-amount -1)
(guide-key-mode t))
(use-package company
:diminish (company-mode . " ➝")
:ensure t
:init
(global-company-mode)
(global-company-mode-check-buffers)
(add-to-list 'company-backends 'company-yasnippet)
(add-to-list 'company-backends 'company-elisp)
;;(add-to-list 'company-backends 'company-shell)
(defun check-expansion ()
(save-excursion
(if (looking-at "\\_>") t
(backward-char 1)
(if (looking-at "\\.") t
(backward-char 1)
(if (looking-at "->") t nil)))))
(defun do-yas-expand ()
(let ((yas/fallback-behavior 'return-nil))
(yas/expand)))
(defun tab-indent-or-complete ()
(interactive)
(if (minibufferp)
(minibuffer-complete)
(if (or (not yas/minor-mode)
(null (do-yas-expand)))
(if (check-expansion)
(company-complete-common)
(indent-for-tab-command)))))
(defun company-complete-common-or-cycle ()
(interactive)
(when (company-manual-begin)
(if (eq last-command 'company-complete-common-or-cycle)
(let ((company-selection-wrap-around t))
(call-interactively 'company-select-next))
(call-interactively 'company-complete-common))))
(global-set-key [tab] 'tab-indent-or-complete)
(define-keys company-active-map (list
[tab] 'company-complete-common-or-cycle
(kbd "TAB") 'company-complete-common-or-cycle
(kbd "C-n") (lambda () (interactive) (company-select-next))
(kbd "C-p") (lambda () (interactive) (company-select-previous)))))
(use-package company-quickhelp
:ensure t
:init
(company-quickhelp-mode 0)
(setq company-quickhelp-delay 0)
(eval-after-load 'company
'(define-key company-active-map (kbd "C-.") #'company-quickhelp-manual-begin))
;; (tao-with-color-variables tao-palette (progn
;; (setq pos-tip-foreground-color color-11
;; pos-tip-background-color color-3)
;; ))
)
(use-package emmet-mode
:ensure t
:commands emmet-mode
:config
(add-hook 'html-mode-hook 'emmet-mode)
(add-hook 'css-mode-hook 'emmet-mode))
(use-package flx-isearch
:ensure t
:bind (( "C-M-s" . flx-isearch-forward)))
(use-package dmenu
:ensure t)
(use-package recentf
:ensure t
:bind (("C-x f" . my/find-file-recent)
("C-x C-r" . my/find-file-recent)
("C-c C-f" . my/find-file-recent))
:init (recentf-mode t)
:config (setq recentf-max-saved-items 300
recentf-max-menu-items 35))
(use-package dired
:bind (("C-x d" . dired-jump)
("C-x C-d" . dired-jump))
:init
(setq dired-listing-switches "-aBhlv --group-directories-first"
dired-dwim-target t)
(add-hook 'dired-mode-hook (lambda ()
(define-keys dired-mode-map (list
"I" 'wdired-change-to-wdired-mode
"i" nil
"j" 'dired-next-line
"k" 'dired-previous-line
"h" 'dired-up-directory
"l" 'dired-find-file
(kbd "M-l") nil
(kbd "C-j") 'next-line
(kbd "M-+") 'my-dired-create-file
(kbd "u") 'dired-get-sie))
(hl-line-mode t)))
(add-hook 'wdired-mode-hook (lambda ()
(define-keys wdired-mode-map (list
(kbd "C-j") 'next-line
(kbd "C-g C-g") 'wdired-exit
)))))
(use-package dired+
:ensure t
:config
(define-keys dired-mode-map (list
"j" 'dired-next-line
"k" 'dired-previous-line
"h" 'dired-up-directory
"l" 'diredp-find-file-reuse-dir-buffer ;
(kbd "RET") 'diredp-find-file-reuse-dir-buffer
(kbd "M-l") nil
)))
(use-package dired-details :ensure t)
(use-package dired-details+
:ensure t
:init (setq dired-details-initially-hide t))
;;(require 'dired-visit-history)
(use-package dired-single :ensure t)
(use-package ztree
:ensure t)
(use-package neotree
:ensure t
:bind (("C-c d" . neotree-toggle) ("C-c C-d" . neotree-toggle))
:init (setq neo-create-file-auto-open t
neo-mode-line-type 'none
neo-persist-show t
neo-window-width 30
neo-show-updir-line nil
neo-auto-indent-point t
neo-banner-message nil
neo-modern-sidebar t
neo-theme 'ascii)
:config
(define-keys neotree-mode-map (list
[escape] 'neotree-hide
"l" 'neotree-enter
"j" 'neotree-next-line
"k" 'neotree-previous-line
"h" 'neotree-select-up-node
(kbd "C-x C-d") 'neotree-toggle
(kbd "C-c C-d") 'neotree-toggle
(kbd "cd") 'neotree-toggle
(kbd "RET") 'neotree-enter
(kbd "<M-return>") 'neotree-change-root
"C" 'neotree-copy-node
"D" 'neotree-delete-node
"R" 'neotree-delete-node
"g" 'neotree-refresh
"q" 'neotree-hide
"r" 'neotree-rename-node
"o" 'neotree-dir
"I" 'neotree-hidden-file-toggle
))
(add-hook 'neotree-mode-hook (lambda ()
(hl-line-mode t))))
(use-package dired-toggle-sudo
:ensure t
:if (not noninteractive)
:commands dired-toggle-sudo)
(use-package image-mode
:init
(add-hook 'image-mode-hook (lambda ()
(define-keys image-mode-map (list
(kbd "C-n") 'image-next-file
(kbd "C-p") 'image-previous-file
(kbd "n") 'image-next-file
(kbd "p") 'image-previous-file
(kbd "C-=") 'imagex-sticky-zoom-in
(kbd "C-+") 'imagex-sticky-zoom-in
(kbd "C--") 'imagex-sticky-zoom-out
"+" 'imagex-sticky-zoom-in
"-" 'imagex-sticky-zoom-out))
(imagex-global-sticky-mode t)
(imagex-auto-adjust-mode t)
)))
(use-package ag
:ensure t)
(use-package json-mode
:mode ("\\.json$" . json-mode)
:init (add-hook 'json-mode-hook
(lambda ()
(make-local-variable 'js-indent-level)
(setq js-indent-level 2))))
(use-package tern
:ensure t
:config
(define-key tern-mode-keymap (kbd "C-c C-d") 'neotree-toggle ))
(use-package js2-mode
:ensure t
:mode (("\\.js$" . js2-mode)
("\\.jsx$" . js2-jsx-mode)
("Jakefile$" . js2-mode))
:interpreter ("node" . js2-mode)
:bind
(("C-a" . back-to-indentation-or-beginning-of-line)
("M-j" . nil)
("RET" . newline-and-indent)
("C-c SPC" . hs-toggle-hiding)
("C-; t" . js-doc-insert-file-doc)
("C-; f" . js-doc-insert-function-doc))
:config
(defface js-br-c-face
'((((class color))
(:foreground "#aaaaaa")))
"Face for displaying a paren."
:group 'faces)
(add-to-list 'load-path "~/.emacs.d/es6-snippets")
(require 'es6-snippets)
(define-key js2-mode-map (kbd "M-j") nil)
(define-key js2-mode-map (kbd "C-.") 'js2-jump-to-definition)
;; (defun modify-syntax-table-for-jsx ()
;; (modify-syntax-entry ?< "(>")
;; (modify-syntax-entry ?> ")<"))
;; (eval-after-load 'js2-mode
;; '(sp-local-pair 'js2-mode "<" ">"))
(setq js2-strict-missing-semi-warning nil)
(setq js2-missing-semi-one-line-override t)
(add-hook 'js2-mode-hook (lambda ()
(setq js2-basic-offset 2
js2-indent-level 2
js2-bounce-indent-p nil)
(tern-mode t)
(company-mode t)
(paren-face-mode t)
(pretty-mode t)
(electric-indent-mode 0)
(font-lock-add-keywords nil '(("[{};]" . 'js-br-c-face )))
;;(dtrt-indent-mode t)
;;(hs-minor-mode 1)
;;(js2-jsx-mode)
;;(modify-syntax-table-for-jsx)
)))
(use-package js-doc :ensure t)
(use-package js2-refactor
:ensure t
:diminish " jsr"
:init
(add-hook 'js2-mode-hook (lambda () (js2-refactor-mode)))
:config
(js2r-add-keybindings-with-prefix "C-,"))
(use-package discover-js2-refactor
:ensure t
:init)
(use-package stylus-mode
:ensure t
:init
(add-hook 'stylus-mode-hook
(lambda ()
(set 'tab-width 2)
(pretty-mode t)
(highlight-indentation-current-column-mode t)
(highlight-parentheses-mode t))))
(use-package sass-mode
:ensure t
:init
(add-hook 'sass-mode-hook
(lambda ()
(set 'tab-width 2)
(pretty-mode t)
(highlight-indentation-current-column-mode t)
(highlight-parentheses-mode t))))
(use-package rainbow-mode
:ensure t
:init
(add-hook 'css-mode-hook 'rainbow-mode)
(add-hook 'sass-mode-hook 'rainbow-mode)
(add-hook 'less-css-mode-hook 'rainbow-mode))
(use-package pretty-mode
:ensure t
:config
(add-to-list 'pretty-modes-aliases '(js2-jsx-mode . javascript-mode) )
(pretty-activate-groups '(:greek :greek-capitals :greek-lowercase) '(emacs-lisp-mode))
(pretty-activate-groups '(:greek :greek-capitals :greek-lowercase) '(lisp-mode))
(pretty-activate-groups '(:greek :greek-capitals :greek-lowercase) '(javascript-mode))
(add-hook 'emacs-lisp-mode-hook
(lambda ()
(pretty-mode t)))
(add-hook 'js2-jsx-mode-hook
(lambda ()
(pretty-mode t))))
(use-package flycheck
:ensure t
:init
:config
(setq-default flycheck-disabled-checkers '(emacs-lisp-checkdoc javascript-jshint)))
;; (use-package web-mode
;; :init
;; (add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode))
;; (add-to-list 'auto-mode-alist '("\\.phtml\\'" . web-mode))
;; (add-to-list 'auto-mode-alist '("\\.tpl\\.php\\'" . web-mode))
;; (add-to-list 'auto-mode-alist '("\\.jsp\\'" . web-mode))
;; (add-to-list 'auto-mode-alist '("\\.as[cp]x\\'" . web-mode))
;; (add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
;; (add-to-list 'auto-mode-alist '("\\.mustache\\'" . web-mode))
;; (add-to-list 'auto-mode-alist '("\\.djhtml\\'" . web-mode))
;; :config
;; (setq web-mode-disable-auto-pairing t
;; web-mode-markup-indent-offset 2
;; web-mode-css-indent-offset 2
;; web-mode-code-indent-offset 2
;; web-mode-enable-current-element-highlight nil))
(use-package markdown-mode
:ensure t
:commands (markdown-mode gfm-mode)
:mode (("README\\.md\\'" . gfm-mode)
("\\.md\\'" . markdown-mode)
("\\.markdown\\'" . markdown-mode))
:init (setq markdown-command "multimarkdown"))
(use-package markdown-preview-mode
:ensure t)
(setq org-directory (expand-file-name "~/org"))
(setq org-agenda-files '("~/org/agenda"))
(setq org-default-notes-file (concat org-directory "/agenda/notes.org"))
(setq org-hide-emphasis-markers t)
(setq org-ellipsis "...")
(add-hook 'org-mode-hook 'turn-on-visual-line-mode)
(setq org-startup-with-inline-images t)
(setq org-image-actual-width '(400))
;; (setq org-todo-keyword-faces
;; '(("TODO" . (:foreground "blue" :weight bold))
;; ("DONE" . (:foreground "cyan" :weight bold))
;; ("WAITING" . (:foreground "red" :weight bold))
;; ("SOMEDAY" . (:foreground "gray" :weight bold))))
(global-set-keys
(kbd "C-c l") 'org-store-link
(kbd "C-c a") 'org-agenda
(kbd "C-c c") 'org-capture
(kbd "C-c b") 'org-iswitchb)
(define-keys org-mode-map (list
(kbd "<M-return>") 'w3m-browse-url
(kbd "<M-S-return>") 'browse-url-at-point
(kbd "C-j") 'next-line
(kbd "C-k") 'previous-line
(kbd "M-N") 'org-shiftright
(kbd "M-P") 'org-shiftleft
(kbd "M-F") 'org-shiftmetaright
(kbd "M-B") 'org-shiftmetaleft
(kbd "C-y") 'whole-line-or-region-kill-ring-save
(kbd "M-y") 'whole-line-or-region-yank
(kbd "C-c s") 'org-insert-src-block
(kbd "C-c t") 'org-set-tag
))
(setq org-todo-keywords
'((sequence
"TODO(t)"
"TOFIX(f)"
"TOCODE(c)"
"TOBLOG(b)"
"STARTED(s)"
"WAITING(w@/!)"
"SOMEDAY(.)" "|" "DONE(x!)" "CANCELLED(c@)")
(sequence "LEARN" "TRY" "TEACH" "|" "COMPLETE(x)")
(sequence "TOSKETCH" "SKETCHED" "|" "POSTED")
(sequence "TODELEGATE(-)" "DELEGATED(d)" "|" "COMPLETE(x)")))
(setq org-startup-indented nil
org-hide-leading-stars nil)
(use-package org-bullets
:ensure t
:init
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1)))
(setq org-bullets-bullet-list '("☰" "☱" "☲" "☳" "☴" "☵" "☶" "☷")))
digraph architecture {
graph [rankdir=LR];
splines=true;
node [shape=box, style="filled", color=black,fillcolor="#dfd2f9"];
A [label="A", fillcolor="#dfd2f9", shape=box3d];
B [label="B", fillcolor="#d2dff9", shape=components];
C [label="C", fillcolor="#f9a7a8", shape=cds];
A -> B [label="AB"];
B -> C [label="BC"];
C -> A [style=dotted]
}
(defun my-fix-inline-images ()
(when org-inline-image-overlays
(org-redisplay-inline-images)))
(add-hook 'org-babel-after-execute-hook 'my-fix-inline-images)
(setq org-hide-block-startup nil)
(setq org-src-fontify-natively t)
(font-lock-add-keywords 'org-mode
'(("\\(src_\\)\\([^[{]+\\)\\(\\[:.*\\]\\){\\([^}]*\\)}"
(1 '(:foreground "black" :weight 'normal :height 10)) ; src_ part
(2 '(:foreground "cyan" :weight 'bold :height 75 :underline "red")) ; "lang" part.
(3 '(:foreground "#555555" :height 70)) ; [:header arguments] part.
(4 'org-code) ; "code..." part.
)))
src_xml{ <div> ok </div> }
(setq org-support-shift-select 'always)
(defun org-insert-src-block (src-code-type)
"Insert a `SRC-CODE-TYPE' type source code block in org-mode."
(interactive
(let ((src-code-types
'("emacs-lisp" "python" "C" "sh" "java" "js" "clojure" "C++" "css"
"calc" "asymptote" "dot" "gnuplot" "ledger" "lilypond" "mscgen"
"octave" "oz" "plantuml" "R" "sass" "screen" "sql" "awk" "ditaa"
"haskell" "latex" "lisp" "matlab" "ocaml" "org" "perl" "ruby"
"scheme" "sqlite")))
(list (ido-completing-read "Source code type: " src-code-types))))
(progn
(newline-and-indent)
(insert (format "#+BEGIN_SRC %s\n" src-code-type))
(newline-and-indent)
(insert "#+END_SRC\n")
(previous-line 2)
(org-edit-src-code)))
hint: http://orgmode.org/manual/Easy-Templates.html#Easy-Templates - достаточно `<sTAB`
(setq org-src-tab-acts-natively t
org-src-preserve-indentation nil
org-edit-src-content-indentation 2)
(add-to-list 'org-modules 'exp-blocks)
(setq org-export-with-smart-quotes t
org-confirm-babel-evaluate nil
org-html-html5-fancy t
org-ascii-links-to-notes nil
org-html-doctype "xhtml5"
org-export-backends '(beamer html latex md))
Стили и скрипты в html настраиваются в проекте
(setq org-html-head-include-default-style nil)
(setq org-html-head-include-scripts nil)
Лучше полагаться на CSS в стилизации таблиц, соотв. атрибуты уже не поддерживаются HTML5
(setq org-html-table-default-attributes
'(:border "0" :cellspacing "0" :cellpadding "6" :rules "none" :frame "none"))
(org-babel-do-load-languages
'org-babel-load-languages
'((dot . t)
(ditaa . t)
(emacs-lisp . t)
(plantuml . t)
(css . t)
(R . t)
(shell . t)))
(use-package ox-reveal
:config
(setq org-reveal-root "file:///home/az/code/reveal.js/"))
(use-package org-page
:ensure t
:config
)
(use-package org-webpage
:ensure t
:config
)
(use-package htmlize :ensure t)
(use-package adaptive-wrap :ensure t)
(defun tangle-on-save-org-mode-file()
(when (string= (message "%s" major-mode) "org-mode")
(org-babel-tangle)))
(add-hook 'after-save-hook 'tangle-on-save-org-mode-file)
(defun to-agenda-on-save-org-mode-file()
(when (string= (message "%s" major-mode) "org-mode")
(org-agenda-file-to-front)))
(add-hook 'after-save-hook 'to-agenda-on-save-org-mode-file)
(global-auto-revert-mode)
(use-package org-gcal
:ensure t
:init
(setq org-gcal-client-id ""
org-gcal-client-secret ""
org-gcal-file-alist '(("" . "")))
)
(use-package calfw
:ensure t
:init
(require 'calfw-org)
)
(use-package calfw-gcal
:ensure t
:init)
(use-package w3m
:ensure t
:bind (("C-c o" . w3m-goto-url)
("M-RET" . w3m-goto-url)
("C-c C-o" . browse-url-at-point)
("C-c M-o" . browse-url-at-point)
("M-S-RET" . browse-url-at-point )
("C-c p w" . w3m)
)
:config
(autoload 'w3m-browse-url "w3m" ">" t)
(setq w3m-use-cookies t
browse-url-new-window-flag t
w3m-show-graphic-icons-in-header-line t
w3m-display-inline-images t
w3m-show-graphic-icons-in-mode-line t
w3m-user-agent "Mozilla/5.0 (Linux; U; Android 2.3.3; zh-tw; HTC_Pyramid Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533."
w3m-session-load-always t
w3m-session-autosave t
w3m-session-load-last-sessions t)
(defadvice browse-url-url-at-point (after w3m-anchor-at-point activate)
"Browse the url at point. If w3m-anchor finds a url, use it."
(setq ad-return-value
(or
(w3m-anchor)
ad-return-value)))
(defun w3m-browse-url-other-window (url &optional newwin)
(let ((w3m-pop-up-windows t))
(if (one-window-p) (split-window))
(other-window 1)
(w3m-browse-url url newwin)))
(defun w3m-copy-url-at-point ()
(interactive)
(let ((url (w3m-anchor)))
(if (w3m-url-valid url)
(kill-new (w3m-anchor))
(message "No URL at point!"))))
(require 'popwin-w3m)
(add-hook 'w3m-mode-hook (lambda ()
(w3m-lnum-mode 1)
(local-unset-key (kbd "C-d"))
(local-unset-key (kbd "d"))
(define-keys w3m-mode-map (list
(kbd "M-n") 'w3m-tab-next-buffer
(kbd "M-p") 'w3m-tab-previous-buffer
(kbd "<M-return>") 'w3m-goto-url-new-session
(kbd "<M-S-return>") 'browse-url-at-point
(kbd "M-o") 'w3m-goto-url-new-session
(kbd "O") 'w3m-goto-url-new-session
(kbd "o") 'w3m-goto-url
(kbd "C-o") 'w3m-goto-url
"d" nil
(kbd "dd") 'w3m-delete-buffer
(kbd "C-d") nil
(kbd "C-d C-d") 'w3m-delete-buffer
(kbd "C-x k") 'w3m-delete-buffer
(kbd "B") 'w3m-view-previous-page
(kbd "F") 'w3m-view-next-page
(kbd "M-B") 'w3m-view-previous-page
(kbd "M-F") 'w3m-view-next-page
(kbd "C-b") 'w3m-select-buffer
(kbd "C-r") 'w3m-reload-this-page
(kbd "M-Y") '(lambda () (interactive) (w3m-goto-url (x-get-clipboard)))
(kbd "M-<left>") 'w3m-view-previous-page
(kbd "M-<right>") 'w3m-view-next-page))))
(add-hook 'w3m-lnum-mode-hook
(lambda ()
(define-keys w3m-lnum-mode-map (list
(kbd "C-d") nil
"d" nil
(kbd "dd") 'w3m-delete-buffer
(kbd "C-d C-d") 'w3m-delete-buffer
(kbd "C-x k") 'w3m-delete-buffer
(kbd "C-x C-k") 'w3m-delete-buffer
(kbd "t") 'w3m-lnum-follow
(kbd "C-t") 'w3m-lnum-follow
(kbd "M-t") 'w3m-lnum-universal
(kbd "C-M-t") 'w3m-lnum-universal)))))
(use-package kite-mini
:ensure t
:bind (("C-c p j" . kite-mini-console))
:init
(require 'kite-mini-console)
(add-hook 'js-mode-hook (lambda () (kite-mini-mode t)))
(add-hook 'css-mode-hook (lambda () (kite-mini-mode t))))
(use-package engine-mode
:ensure t
:config
(setq engine/browser-function 'w3m-goto-url-new-session)
(engine/set-keymap-prefix (kbd "C-c e"))
(defengine amazon
"http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=%s")
(defengine aliexpress
"https://ru.aliexpress.com/af/%s.html"
:browser 'browse-url-generic
:keybinding "ali")
(defengine duckduckgo
"https://duckduckgo.com/?q=%s"
:keybinding "dg")
(defengine github
"https://github.com/search?ref=simplesearch&q=%s"
:keybinding "gh")
(defengine google
"http://www.google.com/search?ie=utf-8&oe=utf-8&q=%s"
:keybinding "go")
(defengine google-images
"http://www.google.com/images?hl=en&source=hp&biw=1440&bih=795&gbv=2&aq=f&aqi=&aql=&oq=&q=%s"
:keybinding "gi")
(defengine google-maps
"http://maps.google.com/maps?q=%s"
:keybinding "gm"
:docstring "Mappin' it up.")
(defengine project-gutenberg
"http://www.gutenberg.org/ebooks/search.html/?format=html&default_prefix=all&sort_order=&query=%s")
(defengine rfcs
"http://pretty-rfc.herokuapp.com/search?q=%s")
(defengine so
"https://stackoverflow.com/search?q=%s"
:keybinding "so" )
(defengine ru-so
"https://ru.stackoverflow.com/search?q=%s"
:keybinding "rso" )
(defengine twitter
"https://twitter.com/search?q=%s"
:keybinding "tw" )
(defengine wikipedia
"http://www.wikipedia.org/search-redirect.php?language=ru&go=Go&search=%s"
:keybinding "wi"
:docstring "Searchin' the wikis.")
(defengine wiktionary
"https://www.wikipedia.org/search-redirect.php?family=wiktionary&language=en&go=Go&search=%s")
(defengine wolfram-alpha
"http://www.wolframalpha.com/input/?i=%s")
(defengine youtube
"http://www.youtube.com/results?aq=f&oq=&search_query=%s"
:keybinding "yo")
(engine-mode))
- State “DONE” from “TODO” [2016-11-25 Пт 01:24]
(use-package elfeed
:ensure t
:config
(define-keys elfeed-search-mode-map (list
(kbd "C-j") 'next-line
(kbd "C-k") 'previous-line
(kbd "C-l") 'elfeed-search-show-entry
(kbd "j") 'next-line
(kbd "k") 'previous-line
(kbd "l") 'elfeed-search-show-entry))
(define-keys elfeed-show-mode-map (list
(kbd "h") 'elfeed-kill-buffer ))
(setq elfeed-feeds
'(("https://lenta.ru/rss" news russia)
("https://actualidad.rt.com/feed" news russia)
("http://static.feed.rbc.ru/rbc/logical/footer/news.rss" news)
("https://meduza.io/rss/all" news russia)
("http://newsbabr.com/rss/news.xml" news irkutsk angarsk)
("https://www.irk.ru/news.rss" news irkutsk angarsk)
("https://postnauka.ru/feed" science)
("https://gorky.media/feed/" science)
("http://liveangarsk.ru/doska/rss" board))
elfeed-search-filter "@2-days-ago +unread"))
(use-package zeal-at-point
:ensure t
:init
(global-set-key (kbd "<f1> z") 'zeal-at-point))
(define-keys Info-mode-map (list
"h" 'backward-char
"j" 'next-line
"k" 'previous-line
"l" 'forward-char
(kbd "C-h") 'backward-char
(kbd "C-j") 'next-line
(kbd "C-k") 'previous-line
(kbd "C-l") 'forward-char
"H" (lambda () (interactive) (progn (backward-char 5) (scroll-right 5)))
"J" (lambda () (interactive) (progn (next-line 5) (scroll-up 5)))
"K" (lambda () (interactive) (progn (previous-line 5) (scroll-down 5)))
"L" (lambda () (interactive) (progn (forward-char 5) (scroll-left 5)))
))
(use-package sdcv
:ensure t
:init
(global-set-key (kbd "<f1> s") 'sdcv-search-pointer))
(use-package google-translate
:ensure t
:bind (("<f1> t" . google-translate-at-point))
:config
(setq google-translate-default-source-language "en"
google-translate-default-target-language "ru"))
(use-package magit
:ensure t
:config
(setq magit-last-seen-setup-instructions "1.4.0"))
(use-package ahg
:ensure t)
(use-package git-gutter
:ensure t
:diminish "gut"
:config
(custom-set-variables
'(git-gutter:handled-backends '(git hg))
'(git-gutter:window-width 2)
'(git-gutter:unchanged-sign " "))
(add-to-list 'git-gutter:update-hooks 'focus-in-hook)
:init
(global-git-gutter-mode t))
(use-package git-timemachine
:ensure t
:commands git-timemachine)
(use-package gist
:ensure t
:bind (("C-c gg" . gist-region-or-buffer)
("C-c gp" . gist-region-or-buffer-private)
("C-c gl" . gist-list)))
(add-to-list 'load-path "/usr/share/emacs/site-lisp/mu4e")
(require 'mu4e-contrib)
(use-package mu4e
:init
(define-keys mu4e-headers-mode-map
(list
(kbd "C-%") 'mu4e-headers-change-sorting
"%" 'mu4e-headers-change-sorting
"j" 'mu4e-headers-next
"k" 'mu4e-headers-prev
))
(define-keys mu4e-view-mode-map
(list
(kbd "C-n") 'mu4e-view-headers-next
(kbd "C-p") 'mu4e-view-headers-prev
))
(setq mu4e-html2text-command 'mu4e-shr2text)
;;(setq mu4e-html2text-command
;; "html2text | grep -v ' _place_holder;'")
;;(setq mu4e-html2text-command "html2text -utf8 -width 72 -style pretty")
(setq message-send-mail-function 'smtpmail-send-it
smtpmail-default-smtp-server ""
smtpmail-smtp-server ""
smtpmail-smtp-user ""
mu4e-view-prefer-html nil
mu4e-view-show-images nil
)
(setq shr-color-visible-luminance-min 80))
(use-package org-redmine
:ensure t
:config
(setq org-redmine-uri "")
(setq org-redmine-auth-username "")
(setq org-redmine-auth-password "")
(setq org-redmine-auth-api-key "")
:init)
(use-package list-processes+
:ensure t
:init)
(use-package prodigy
:ensure t
:bind (( "C-M-`" . prodigy)
( "C-c p p" . prodigy))
:config
(define-keys prodigy-mode-map (list
"j" 'prodigy-next
"k" 'prodigy-prev))
(prodigy-define-tag
:name 'webpack
:ready-message "webpack: bundle is now VALID."
:kill-process-buffer-on-stop t)
(prodigy-define-tag
:name 'openvpn
:ready-message "Initialization Sequence Completed"))
(use-package wttrin
:ensure t
:commands (wttrin)
:init
(setq wttrin-default-cities '("Angarsk"
"Irkutsk"
"Kemerovo"
"Voronezh")))
(use-package howdoi
:ensure t
:bind* (("C-c h d q" . howdoi-query)
("C-c h d p" . howdoi-query-line-at-point)
("C-c h d s" . howdoi-query-insert-code-snippet-at-point)))
(use-package sx
:ensure t)
; TEST
(use-package edit-server
:ensure t
:init
;;(edit-server-start)
:config
(setq edit-server-default-major-mode 'markdown-mode))
;; test diff
(let ((default-directory "~/.emacs.d/"))
(async-shell-command "")
(ahg-do-command "pull")
(ahg-do-command "update")
(ahg-do-command "merge"))