Last active
December 20, 2015 11:19
-
-
Save kran/6121967 to your computer and use it in GitHub Desktop.
emacs
This file contains 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
(byte-recompile-directory (expand-file-name "~/.emacs.d") 0) | |
(require 'package) | |
(add-to-list 'package-archives | |
'("melpa" . "http://melpa.milkbox.net/packages/")) | |
(add-to-list 'package-archives | |
'("marmalade" . "http://marmalade-repo.org/packages/") t) | |
(add-to-list 'load-path "~/.emacs.d") | |
(add-to-list 'load-path "~/.emacs.d/libs") | |
(package-initialize) | |
(require 'auto-complete-config) | |
(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") | |
(ac-config-default) | |
(when (not package-archive-contents) | |
(package-refresh-contents)) | |
;; Add in your own as you wish: | |
(defvar my-packages '(evil hl-sexp paredit textmate) | |
"A list of packages to ensure are installed at launch.") | |
(dolist (p my-packages) | |
(when (not (package-installed-p p)) | |
(package-install p))) | |
;;;;;;;; | |
;;;Misc | |
;;;;;;;; | |
(defalias 'yes-or-no-p 'y-or-n-p) | |
(setq evil-want-C-u-scroll t) ;should before require 'evil | |
(mapc 'require '(ido uniquify evil autopair flymake surround php-mode web-mode sr-speedbar ido-vertical-mode perspective heroku-theme)) | |
(autoload 'indent-hint-lisp "indent-hint.el" "" t nil) | |
(setq uniquify-buffer-name-style 'forward) | |
(set-face-attribute 'default nil :font "Andale Mono 9") | |
; (set-face-foreground 'paren-face "DimGray") | |
;; modes | |
(mapc (lambda (mode) (funcall mode 1)) | |
'(evil-mode ido-mode ido-ubiquitous-mode global-linum-mode | |
autopair-global-mode show-paren-mode | |
persp-mode textmate-mode global-surround-mode)) | |
(dolist (mode '(tool-bar-mode scroll-bar-mode)) | |
(when (fboundp mode) (funcall mode -1))) | |
;; smex | |
(setq smex-save-file (concat user-emacs-directory ".smex-items")) | |
(smex-initialize) | |
(global-set-key (kbd "M-x") 'smex) | |
;; ido-mode | |
(setq ido-enable-prefix nil | |
flymake-no-changes-timeout 3 | |
ido-enable-flex-matching t | |
ido-auto-merge-work-directories-length nil | |
ido-create-new-buffer 'always | |
ido-use-filename-at-point 'guess | |
ido-use-virtual-buffers t | |
ido-handle-duplicate-virtual-buffers 2 | |
ido-max-prospects 10) | |
;;(load-theme heroku t) | |
;; variables | |
(when window-system | |
(setq frame-title-format '(buffer-file-name "%f" ("%b"))) | |
(tooltip-mode -1) | |
(mouse-wheel-mode t) | |
(blink-cursor-mode -1)) | |
(setq inhibit-startup-message t | |
color-theme-is-global t | |
sentence-end-double-space nil | |
evil-default-cursor t | |
ido-enable-flex-matching t | |
visible-bell nil | |
tool-bar-mode nil | |
ring-bell-function 'ignore) | |
(if (eq system-type 'darwin) | |
(setq mac-command-modifier 'meta)) | |
;; key bindings | |
(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))) | |
(defun define-evil-keys-for-state (state binds) | |
(dolist (b binds) | |
(define-key state (kbd (car b)) (cadr b)))) | |
(define-evil-keys-for-state evil-normal-state-map | |
'(("C-l" windmove-right) | |
("C-h" windmove-left) | |
("C-j" windmove-down) | |
("C-k" windmove-up) | |
("M-j" persp-next) | |
("M-k" persp-prev) | |
("C-c C-c" comment-or-uncomment-region-or-line) | |
)) | |
(define-evil-keys-for-state evil-insert-state-map | |
'(("C-d" delete-char) | |
("C-h" delete-backward-char) | |
("C-j" next-line) | |
("C-k" previous-line) | |
("C-e" end-of-line) | |
("C-M-n" emmet-expand-yas) | |
("C-n" emmet-expand-line) | |
("C-c C-c" comment-or-uncomment-region-or-line) | |
("M-j" persp-next) | |
("M-k" persp-prev) | |
("C-a" beginning-of-line-text) | |
)) | |
(defun set-global-keys (binds) | |
(dolist (b binds) | |
(global-set-key (kbd (car b)) (cadr b)))) | |
(defun switch-to-previous-buffer () | |
(interactive) | |
(switch-to-buffer (other-buffer (current-buffer) 1))) | |
(defun sd/ido-define-keys () | |
(define-key ido-completion-map (kbd "C-j") 'ido-next-match) | |
(define-key ido-completion-map (kbd "C-k") 'ido-prev-match)) | |
(add-hook 'ido-setup-hook 'sd/ido-define-keys) | |
;; global bindings | |
(set-global-keys | |
'(("C-c b" switch-to-previous-buffer) | |
("C-c p" textmate-goto-file) | |
("C-c i" textmate-goto-symbol) | |
("C-c m" shell) | |
("C-8" ido-switch-buffer) | |
("C-0" evil-window-next) | |
("C-9" persp-switch) | |
("C-c o" ido-switch-buffer) | |
)) | |
(evil-define-command cofj/maybe-exit () | |
:repeat change | |
(interactive) | |
(let ((modified (buffer-modified-p))) | |
(insert "j") | |
(let ((evt (read-event (format "Insert %c to exit insert state" ?k) | |
nil 0.5))) | |
(cond | |
((null evt) (message "")) | |
((and (integerp evt) (char-equal evt ?k)) | |
(delete-char -1) | |
(set-buffer-modified-p modified) | |
(push 'escape unread-command-events)) | |
(t (setq unread-command-events (append unread-command-events | |
(list evt)))))))) | |
(define-key evil-insert-state-map "j" 'cofj/maybe-exit) | |
;;;;;;;;;;;; | |
;;show paren off screen | |
;;;;;;;;;;;; | |
(defadvice show-paren-function | |
(after show-matching-paren-offscreen activate) | |
"If the matching paren is offscreen, show the matching line in the | |
echo area. Has no effect if the character before point is not of | |
the syntax class ')'." | |
(interactive) | |
(let* ((cb (char-before (point))) | |
(matching-text (and cb | |
(char-equal (char-syntax cb) ?\) ) | |
(blink-matching-open)))) | |
(when matching-text (message matching-text)))) | |
;;;;;;;;;;;; | |
;; Scheme | |
;;;;;;;;;;;; | |
(require 'cmuscheme) | |
(setq scheme-program-name "csi") | |
;; bypass the interactive question and start the default interpreter | |
(defun scheme-proc () | |
"Return the current Scheme process, starting one if necessary." | |
(unless (and scheme-buffer | |
(get-buffer scheme-buffer) | |
(comint-check-proc scheme-buffer)) | |
(save-window-excursion | |
(run-scheme scheme-program-name))) | |
(or (scheme-get-process) | |
(error "No current process. See variable `scheme-buffer'"))) | |
(defun scheme-split-window () | |
(cond | |
((= 1 (count-windows)) | |
(delete-other-windows) | |
(split-window-vertically (floor (* 0.68 (window-height)))) | |
(other-window 1) | |
(switch-to-buffer "*scheme*") | |
(other-window 1)) | |
((not (find "*scheme*" | |
(mapcar (lambda (w) (buffer-name (window-buffer w))) | |
(window-list)) | |
:test 'equal)) | |
(other-window 1) | |
(switch-to-buffer "*scheme*") | |
(other-window -1)))) | |
(defun scheme-send-last-sexp-split-window () | |
(interactive) | |
(scheme-split-window) | |
(scheme-send-last-sexp)) | |
(defun scheme-send-definition-split-window () | |
(interactive) | |
(scheme-split-window) | |
(scheme-send-definition)) | |
(add-hook 'scheme-mode-hook | |
(lambda () | |
(paredit-mode 1) | |
(hl-sexp-mode 1) | |
(hl-line-mode -1) | |
(autopair-mode -1) | |
(define-key scheme-mode-map (kbd "<f9>") 'scheme-send-last-sexp-split-window) | |
(define-key scheme-mode-map (kbd "<f10>") 'scheme-send-definition-split-window))) | |
;; tab!!!! | |
(setq-default tab-width 4) | |
(setq-default indent-tabs-mode nil) | |
(setq-default default-tab-width 4) | |
(setq-default c-basic-offset 4) | |
(setq tab-width 4) | |
(setq tab-stop-list ()) | |
(loop for x downfrom 40 to 1 do | |
(setq tab-stop-list (cons (* x 4) tab-stop-list))) | |
;; hooks | |
(defun esk-turn-on-hl-line-mode () | |
(when (> (display-color-cells) 8) | |
(hl-line-mode t))) | |
(add-hook 'prog-mode-hook 'esk-turn-on-hl-line-mode) | |
;; (add-hook 'prog-mode-hook 'esk-pretty-lambdas) | |
(add-hook 'prog-mode-hook 'idle-highlight-mode) | |
;; WEB-MODE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
;; (remove-hook 'prog-mode-hook 'esk-turn-on-hl-line-mode) | |
(add-to-list 'auto-mode-alist '("views/.*\\.php\\'" . web-mode)) | |
(add-hook 'web-mode-hook (lambda () | |
(idle-highlight-mode -1) | |
(when (and (stringp buffer-file-name) (string-match "\\.php\\'" buffer-file-name)) | |
(flymake-mode 1)) | |
)) | |
(add-hook 'php-mode-hook (lambda () (flymake-mode 1))) | |
;; FLYMAKE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
(custom-set-variables | |
;; custom-set-variables was added by Custom. | |
;; If you edit it by hand, you could mess it up, so be careful. | |
;; Your init file should contain only one such instance. | |
;; If there is more than one, they won't work right. | |
'(custom-safe-themes (quote ("96efbabfb6516f7375cdf85e7781fe7b7249b6e8114676d65337a1ffe78b78d9" "1e7e097ec8cb1f8c3a912d7e1e0331caeed49fef6cff220be63bd2a6ba4cc365" default))) | |
'(display-time-mode 0) | |
;; '(php-manual-path "/home/kran/Documents/php-doc/") | |
'(speedbar-show-unknown-files t) | |
'(speedbar-update-flag nil) | |
'(speedbar-use-images nil) | |
'(speedbar-verbosity-level 0) | |
'(sr-speedbar-auto-refresh nil) | |
'(sr-speedbar-right-side nil) | |
'(tool-bar-mode nil) | |
'(tool-bar-position (quote right)) | |
'(truncate-lines nil)) | |
(custom-set-faces | |
;; custom-set-faces was added by Custom. | |
;; If you edit it by hand, you could mess it up, so be careful. | |
;; Your init file should contain only one such instance. | |
;; If there is more than one, they won't work right. | |
'(flymake-errline ((t nil))) | |
'(flymake-warnline ((t nil)))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment