Created
July 31, 2018 19:12
-
-
Save saptarshiguha/f464a396ce7155d2b55c2ea9cc687872 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(custom-set-variables '(package-archives | |
(quote | |
( | |
;; ("marmalade" . "http://marmalade-repo.org/packages/") | |
("melpa" . "http://melpa.org/packages/") | |
("gnu" . "http://elpa.gnu.org/packages/"))))) | |
(setq package-enable-at-startup nil) | |
(package-initialize) | |
(message "Package Initialized") | |
;; load paths | |
;; http://zmjones.com/mac-setup.html | |
(require 'key-combo) | |
(key-combo-mode 1) | |
(add-hook 'ess-mode-hook | |
'(lambda() | |
(key-combo-mode t))) | |
(add-hook 'inferior-ess-mode-hook | |
'(lambda() | |
(key-combo-mode t))) | |
(defvar key-combo-ess-default | |
'((">" . (" > " " %>% ")) | |
("$" . ("$" " %$% ")) | |
("<>" . " %<>% ") | |
("*" . ("*" " * ")) | |
("%" . ("%" "%*%" "%%")) | |
("^" . ("^" " ^ ")) | |
("/" . ("/" " / ")) | |
("~" . " ~ ") | |
(":" . (":" "::" ":::")) | |
(":=" . " := ") ; data.table | |
("->" . " -> "))) | |
(key-combo-define-hook '(ess-mode-hook inferior-ess-mode-hook) | |
'ess-key-combo-load-default | |
key-combo-ess-default) | |
(message "Key Hooks") | |
(unless (display-graphic-p) | |
(menu-bar-mode -1)) | |
(define-derived-mode pydbx-mode | |
python-mode "PythonDatabricks" | |
"Syntax Highlight for Databricks." | |
) | |
(setq mybase "~/gd/mystuff") | |
(if (eq system-type 'darwin) | |
(progn | |
(setq mybase "~/mystuff") | |
(setq load-path (cons (expand-file-name (format "%s/site-lisp" mybase)) load-path)) | |
) | |
(if (eq system-type 'windows-nt) | |
(progn | |
(setq mybase "~") | |
(setq load-path | |
(cons (expand-file-name (format "%s/site-lisp" mybase)) load-path))))) | |
(setq ispell-program-name "/usr/local/bin/aspell") | |
(message "Directories and aspell") | |
;; (eval-when-compile | |
;; (require 'use-package)) | |
;;(require 'diminish) ;; if you use :diminish | |
(require 'bind-key) | |
;;(setq tramp-default-method 'ssh) | |
(add-hook 'markdown-mode-hook | |
(lambda () | |
(when buffer-file-name | |
(add-hook 'after-save-hook | |
'check-parens | |
nil t)))) | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
;; recentf | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
;;(run-at-time nil (* 5 60) 'recentf-save-list) | |
(setq recentf-max-saved-items 150) | |
(setq recentf-max-menu-items 75) | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
;; Matching Parentheses | |
;; see http://emacs-fu.blogspot.com/2009/01/balancing-your-parentheses.html | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
(setq frame-title-format '("Emacs " "%b")) | |
(if window-system | |
(tool-bar-mode 1)) | |
(setq make-backup-files nil) | |
(global-set-key (kbd "C-c o") 'occur) | |
(setq savehist-additional-variables ;; also save... | |
'(search-ring regexp-search-ring) ;; my search entries | |
savehist-file "~/.emacs.d/savehist") ;; keep my home clean | |
(savehist-mode t) | |
(setq flyspell-issue-message-flag nil) | |
(global-set-key (kbd "C-x 8") 'flyspell-check-previous-highlighted-word) | |
(message "Step 1") | |
;;------------------------------------------------------------------------------- | |
;; tabs as spaces | |
;;------------------------------------------------------------------------------ | |
(setq-default indent-tabs-mode nil) | |
;;;;;;;;;;;;;;;;;;;;;;; | |
;; Bookmark Handling ;; | |
;;;;;;;;;;;;;;;;;;;;;;; | |
(require 'bm) | |
(global-set-key (kbd "M-'") 'bm-toggle) | |
(global-set-key (kbd "M-\"") 'bm-next) | |
;;(global-set-key (kbd "s-\"") 'bm-previous) | |
(message "Step 2") | |
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
;; ;; Usage Notes | |
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
(require 'ess) | |
(require 'helm) | |
(use-package helm-swoop | |
:bind (("M-i" . helm-swoop) | |
("M-I" . helm-swoop-back-to-last-point) | |
("C-c M-i" . helm-multi-swoop)) | |
:config | |
;; When doing isearch, hand the word over to helm-swoop | |
(define-key isearch-mode-map (kbd "M-i") 'helm-swoop-from-isearch) | |
;; From helm-swoop to helm-multi-swoop-all | |
(define-key helm-swoop-map (kbd "M-i") 'helm-multi-swoop-all-from-helm-swoop) | |
;; Save buffer when helm-multi-swoop-edit complete | |
(setq helm-multi-swoop-edit-save t | |
;; If this value is t, split window inside the current window | |
helm-swoop-split-with-multiple-windows t | |
;; Split direcion. 'split-window-vertically or 'split-window-horizontally | |
helm-swoop-split-direction 'split-window-vertically | |
;; If nil, you can slightly boost invoke speed in exchange for text color | |
helm-swoop-speed-or-color nil)) | |
;; (helm-mode t) | |
(require 'helm-dired-recent-dirs) | |
(setq helm-ff-file-name-history-use-recentf t | |
helm-buffers-fuzzy-matching t | |
helm-everywhere t | |
helm-autoresize-mode t | |
helm-recentf-fuzzy-match t) | |
(setq helm-mini-default-sources '(helm-source-buffers-list | |
helm-source-dired-recent-dirs | |
helm-source-recentf | |
helm-source-buffer-not-found)) | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
;; proper commenting and stuff like aquamacs | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
(defun comment-or-uncomment-region-or-line () | |
"Comments or uncomments the region or the current line if there's no active region." | |
(interactive) | |
(let (beg end) | |
(if (region-active-p) | |
(setq beg (region-beginning) end (region-end)) | |
(setq beg (line-beginning-position) end (line-end-position))) | |
(comment-or-uncomment-region beg end) | |
(next-line))) | |
(global-set-key (kbd "s-;") 'comment-or-uncomment-region-or-line) | |
(defun new-empty-buffer () | |
"Opens a new empty buffer." | |
(interactive) | |
(let ((buf (generate-new-buffer "untitled"))) | |
(let ((mode major-mode)) | |
(message "Mode is %s" mode) | |
(switch-to-buffer buf) | |
(funcall mode)) | |
(setq buffer-offer-save t))) | |
(global-set-key (kbd "M-t") 'new-empty-buffer ) | |
;;;;;;;;;;;;;;;;;;;;;;;;;; | |
;; Edit server | |
;;;;;;;;;;;;;;;;;;;;;;;;; | |
(add-to-list 'auto-mode-alist '("md$" . markdown-mode)) | |
(add-hook 'markdown-mode-hook (lambda() | |
(set-fill-column 80) | |
(auto-fill-mode 1) | |
(flyspell-mode 1))) | |
(if (eq system-type 'windows-nt) | |
(progn | |
(menu-bar-mode t) | |
(tool-bar-mode -1))) | |
(let ((alist '((33 . ".\\(?:\\(?:==\\)\\|[!=]\\)") | |
(35 . ".\\(?:[(?[_{]\\)") | |
(38 . ".\\(?:\\(?:&&\\)\\|&\\)") | |
(42 . ".\\(?:\\(?:\\*\\*\\)\\|[*/]\\)") | |
(43 . ".\\(?:\\(?:\\+\\+\\)\\|\\+\\)") | |
(45 . ".\\(?:\\(?:-[>-]\\|<<\\|>>\\)\\|[<>}~-]\\)") | |
(46 . ".\\(?:\\(?:\\.[.<]\\)\\|[.=]\\)") | |
(47 . ".\\(?:\\(?:\\*\\*\\|//\\|==\\)\\|[*/=>]\\)") | |
(58 . ".\\(?:[:=]\\)") | |
(59 . ".\\(?:;\\)") | |
(60 . ".\\(?:\\(?:!--\\)\\|\\(?:\\$>\\|\\*>\\|\\+>\\|--\\|<[<=-]\\|=[<=>]\\||>\\)\\|[/<=>|-]\\)") | |
(61 . ".\\(?:\\(?:/=\\|:=\\|<<\\|=[=>]\\|>>\\)\\|[<=>~]\\)") | |
(62 . ".\\(?:\\(?:=>\\|>[=>-]\\)\\|[=>-]\\)") | |
(63 . ".\\(?:[:=?]\\)") | |
(92 . ".\\(?:\\(?:\\\\\\\\\\)\\|\\\\\\)") | |
(94 . ".\\(?:=\\)") | |
(123 . ".\\(?:-\\)") | |
(124 . ".\\(?:\\(?:|[=|]\\)\\|[=>|]\\)") | |
(126 . ".\\(?:[=@~-]\\)") | |
) | |
)) | |
(dolist (char-regexp alist) | |
(set-char-table-range composition-function-table (car char-regexp) | |
`([,(cdr char-regexp) 0 font-shape-gstring])))) | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
;; Web Mode for HTML because plain HTML SUCKS | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
(add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode)) | |
(add-to-list 'auto-mode-alist '("\\.css?\\'" . web-mode)) | |
(defun my-web-mode-hook () | |
"Hooks for Web mode." | |
(setq web-mode-markup-indent-offset 2) | |
(setq web-mode-css-indent-offset 2) | |
(setq web-mode-code-indent-offset 2) | |
(setq web-mode-enable-css-colorization t) | |
(setq web-mode-enable-block-face t) | |
(setq web-mode-enable-comment-keywords t) | |
(setq web-mode-enable-current-element-highlight t) | |
(setq web-mode-enable-current-column-highlight t) | |
) | |
(add-hook 'web-mode-hook 'my-web-mode-hook) | |
(delete-selection-mode 1) | |
(show-paren-mode 1) | |
(use-package undo-tree | |
:init (global-undo-tree-mode t) | |
:defer t | |
:diminish "" | |
:config | |
(progn | |
(define-key undo-tree-map (kbd "C-x u") 'undo-tree-visualize) | |
(define-key undo-tree-map (kbd "C-/") 'undo-tree-undo))) | |
(use-package ido | |
:config | |
(use-package flx-ido | |
:init (flx-ido-mode 1) | |
:config (setq ido-use-faces nil)) | |
(use-package ido-vertical-mode | |
:init (ido-vertical-mode t)) | |
(setq ido-use-virtual-buffers nil | |
;; this setting causes weird TRAMP connections, don't set it! | |
;;ido-enable-tramp-completion nil | |
ido-enable-flex-matching t | |
ido-auto-merge-work-directories-length nil | |
ido-create-new-buffer 'always | |
ido-use-filename-at-point 'guess | |
ido-max-prospects 10)) | |
(message "Styep 4") | |
(use-package multiple-cursors | |
:bind (("C-S-c C-S-c" . mc/edit-lines) | |
("C->" . mc/mark-next-like-this) | |
("C-<" . mc/mark-previous-like-this) | |
("C-c C-<" . mc/mark-all-like-this))) | |
(defun beautify-json () | |
(interactive) | |
(let ((b (if mark-active (min (point) (mark)) (point-min))) | |
(e (if mark-active (max (point) (mark)) (point-max)))) | |
(shell-command-on-region b e "python -mjson.tool" (current-buffer) t))) | |
(defun xah-forward-block (&optional φn) | |
"Move cursor forward to the beginning of next text block. | |
A text block is separated by blank lines. In most major modes, | |
this is similar to `forward-paragraph', but this command's | |
behavior is the same regardless of syntax table." | |
(interactive "p") | |
(search-forward-regexp "\n[\t\n ]*\n+" nil "NOERROR" φn)) | |
(defun xah-backward-block (&optional φn) | |
"Move cursor backward to previous text block. | |
See: `xah-forward-block'" | |
(interactive "p") | |
(dotimes (ξn φn) (if (search-backward-regexp "\n[\t\n ]*\n+" nil "NOERROR") | |
(progn | |
(skip-chars-backward "\n\t ")) | |
(progn (goto-char (point-min)))))) | |
(global-set-key (kbd "<C-up>") 'xah-backward-block) | |
(global-set-key (kbd "<C-down>") 'xah-forward-block) | |
;;Use M-{ and M-} to activate the abbove(opt+shift+{) | |
(require 'gist) | |
(set-face-attribute 'fringe nil | |
:foreground (face-foreground 'default) | |
:background (face-background 'default)) | |
(require 'poly-R) | |
(require 'poly-markdown) | |
(add-to-list 'auto-mode-alist '("\\.md" . poly-markdown-mode)) | |
(add-to-list 'auto-mode-alist '("\\.Snw" . poly-noweb+r-mode)) | |
(add-to-list 'auto-mode-alist '("\\.Rnw" . poly-noweb+r-mode)) | |
(add-to-list 'auto-mode-alist '("\\.Rmd" . poly-markdown+r-mode)) | |
;;(add-to-list 'ibuffer-never-show-predicates ".*\\[.*\\]$") | |
(defun send-to-tmux (beg end &optional arg) | |
"message region or \"empty string\" if none highlighted" | |
(interactive (if (use-region-p) | |
(list (region-beginning) | |
(region-end) | |
(if current-prefix-arg | |
(read-from-minibuffer "tmux buffer name: ") | |
"zillabilla") | |
) | |
(progn | |
(move-beginning-of-line nil) | |
(set-mark-command nil) | |
(move-end-of-line nil) | |
(setq deactivate-mark nil) | |
(list (region-beginning) (region-end) "zillabilla")))) | |
(let ( (fname (make-temp-file "foo"))) | |
(if ( and beg end ) | |
(progn | |
( write-region beg end fname) | |
;;https://www.gnu.org/software/emacs/manual/html_node/elisp/Synchronous-Processes.html | |
( call-process "~/sendtmux.py" nil nil nil fname arg) | |
) | |
) | |
) | |
(goto-char (region-end)) | |
(deactivate-mark) | |
) | |
(global-set-key (kbd "C-x ,") 'send-to-tmux) | |
(defun send-to-dbx (beg end &optional arg) | |
"message region or \"empty string\" if none highlighted" | |
(interactive (if (use-region-p) | |
(list (region-beginning) | |
(region-end) | |
(if current-prefix-arg | |
(read-from-minibuffer "tmux buffer name: ") | |
"zillabilla") | |
) | |
(progn | |
(move-beginning-of-line nil) | |
(set-mark-command nil) | |
(move-end-of-line nil) | |
(setq deactivate-mark nil) | |
(list (region-beginning) (region-end) "zillabilla")))) | |
(let ( (fname (make-temp-file "foo"))) | |
(if ( and beg end ) | |
(progn | |
( write-region beg end fname) | |
;;https://www.gnu.org/software/emacs/manual/html_node/elisp/Synchronous-Processes.html | |
( call-process "~/sendtmuxdbx.py" nil nil "*Messages*" fname arg) | |
) | |
) | |
) | |
(goto-char (region-end)) | |
(deactivate-mark) | |
) | |
(global-set-key (kbd "C-x .") 'send-to-dbx) | |
(defun fling (beg end &optional arg) | |
"message region or \"empty string\" if none highlighted" | |
(interactive (if (use-region-p) | |
(list (region-beginning) | |
(region-end) | |
(if current-prefix-arg | |
(read-from-minibuffer "tmux buffer name: ") | |
"zillabilla") | |
) | |
(progn | |
(move-beginning-of-line nil) | |
(set-mark-command nil) | |
(move-end-of-line nil) | |
(setq deactivate-mark nil) | |
(list (region-beginning) (region-end) "zillabilla")))) | |
(let ( (fname (make-temp-file "loo"))) | |
(if ( and beg end ) | |
(progn | |
( write-region beg end fname) | |
;;https://www.gnu.org/software/emacs/manual/html_node/elisp/Synchronous-Processes.html | |
( start-process "foo" "foo2" "~/fling_sender.py" fname) | |
) | |
) | |
) | |
(goto-char (region-end)) | |
(deactivate-mark) | |
) | |
(xterm-mouse-mode) | |
(global-set-key (kbd "S-C-<up>") 'enlarge-window) | |
(global-set-key (kbd "S-C-<down>") 'shrink-window) | |
(global-set-key (kbd "S-C-<left>") 'shrink-window-horizontally) | |
(global-set-key (kbd "S-C-<right>") 'enlarge-window-horizontally) | |
(global-unset-key [double-mouse-3]) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment