From 3cca2a7c530c427340e50a2c26e0ccb13d46bc6e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 13 Aug 2014 00:24:22 -0400 Subject: [PATCH] Cleanup + s-r run code fix --- init/core-editor.el | 68 +++++++++++++++++++++--------------------- init/core-keymaps.el | 21 +++++++++---- init/init-fly.el | 1 - init/init-git.el | 6 ++-- init/init-project.el | 2 +- init/my-defuns.el | 70 ++++++++++++++++++++++++++++++++++++++++++-- 6 files changed, 122 insertions(+), 46 deletions(-) diff --git a/init/core-editor.el b/init/core-editor.el index f805e25d6..6fb3b6ad4 100644 --- a/init/core-editor.el +++ b/init/core-editor.el @@ -15,49 +15,50 @@ ;;;; Plugins ;;;;;;;;;;;;;;;;;;;;;;;; (use-package deferred :ensure t :defer t) +(use-package helm :ensure t :defer t) (use-package ediff :ensure t :defer t) (use-package evil :ensure t - :diminish undo-tree-mode - :config - (progn - ;; (setq evil-want-C-i-jump t) - ;; (setq evil-want-C-u-scroll t) + :diminish undo-tree-mode + :config + (progn + ;; (setq evil-want-C-i-jump t) + ;; (setq evil-want-C-u-scroll t) - (evil-mode 1) + (evil-mode 1) - (use-package evil-leader :ensure t) - (use-package evil-nerd-commenter :ensure t) - (use-package evil-matchit :ensure t) - (use-package evil-surround :ensure t) - (use-package evil-numbers :ensure t) - (use-package evil-exchange :ensure t) - (use-package evil-space :ensure t) - (use-package evil-visualstar :ensure t) - (use-package evil-ex-registers) + (use-package evil-leader :ensure t) + (use-package evil-nerd-commenter :ensure t) + (use-package evil-matchit :ensure t) + (use-package evil-surround :ensure t) + (use-package evil-numbers :ensure t) + (use-package evil-exchange :ensure t) + (use-package evil-space :ensure t) + (use-package evil-visualstar :ensure t) + (use-package evil-ex-registers) - ;; To get evil-leader mappings to work in the messages buffer... - (kill-buffer "*Messages*") + ;; To get evil-leader mappings to work in the messages buffer... + (kill-buffer "*Messages*") - (setq evil-leader/in-all-states t) + (setq evil-leader/in-all-states t) - (global-evil-leader-mode 1) - (global-evil-matchit-mode 1) - (global-evil-surround-mode 1) + (global-evil-leader-mode 1) + (global-evil-matchit-mode 1) + (global-evil-surround-mode 1) - (evil-exchange-install) + (evil-exchange-install) - (evil-space-setup "t" ";" ",") ; Repeat t with space - (evil-space-setup "f" ";" ",") ; Repeat f with space - (evil-space-setup "T" "," ";") ; Repeat T with space - (evil-space-setup "F" "," ";") ; Repeat F with space - (evil-define-operator evil-destroy (beg end type register yank-handler) - (evil-delete beg end type ?_ yank-handler)) + (evil-space-setup "t" ";" ",") ; Repeat t with space + (evil-space-setup "f" ";" ",") ; Repeat f with space + (evil-space-setup "T" "," ";") ; Repeat T with space + (evil-space-setup "F" "," ";") ; Repeat F with space + (evil-define-operator evil-destroy (beg end type register yank-handler) + (evil-delete beg end type ?_ yank-handler)) - (evil-set-initial-state 'comint-mode 'insert) + (evil-set-initial-state 'comint-mode 'insert) - ;; Enable registers in ex-mode - (define-key evil-ex-completion-map (kbd "C-r") #'evil-ex-paste-from-register))) + ;; Enable registers in ex-mode + (define-key evil-ex-completion-map (kbd "C-r") #'evil-ex-paste-from-register))) (use-package rainbow-mode :ensure t :defer t) (use-package rainbow-delimiters :ensure t @@ -119,12 +120,11 @@ (add-hook 'after-load-functions 'smex-update-after-load))) (use-package recentf :ensure t - :commands recentf-mode - :idle + :init (progn (recentf-mode 1) (add-to-list 'recentf-exclude "\\.ido\\.last\\'") (add-to-list 'recentf-exclude "\\.revive\\'") - (setq recentf-max-menu-items 10) + (setq recentf-max-menu-items 0) (setq recentf-auto-cleanup 'never))) ;; diff --git a/init/core-keymaps.el b/init/core-keymaps.el index f73b9b23e..f545c473a 100644 --- a/init/core-keymaps.el +++ b/init/core-keymaps.el @@ -10,17 +10,20 @@ (kbd "C-c o") 'send-dir-to-finder (kbd "C-c u") 'send-to-transmit (kbd "C-c l") 'send-to-launchbar - (kbd "C-c L") 'send-dir-to-launchbar) + (kbd "C-c L") 'send-dir-to-launchbar + (kbd "C-c t") 'my/tmux-chdir + (kbd "C-c T") (λ (my/tmux-chdir (projectile-project-root))) + ) ;; Evaluating elisp (nmap my/mode-map (kbd "C-c x") 'eval-buffer) (vmap my/mode-map (kbd "C-c x") 'eval-region) (when window-system - (global-set-key (kbd "s-+") 'text-scale-increase) + (global-set-key (kbd "s-=") 'text-scale-increase) (global-set-key (kbd "s--") 'text-scale-decrease) (global-set-key (kbd "s-/") 'evilnc-comment-or-uncomment-lines) - (global-set-key (kbd "s-w") 'kill-buffer-and-window) + (global-set-key (kbd "s-w") 'evil-window-delete) (global-set-key (kbd "s-") 'toggle-frame-fullscreen) (nmap my/mode-map @@ -31,7 +34,7 @@ ;; Leader alternatives (kbd "s-f") 'projectile-find-file (kbd "s-F") 'projectile-ag - (kbd "s-m") 'helm-recentf + (kbd "s-m") 'my/recentf-ido-find-file (kbd "s-M") 'projectile-recentf (kbd "s-o") 'ido-find-file (kbd "s-O") 'open-major-mode-conf @@ -65,13 +68,17 @@ "d" 'dash-at-point "f" 'projectile-find-file "F" 'projectile-ag - "m" 'helm-recentf ; recent GLOBAL files + "g" 'git-gutter:stage-hunk + "G" 'git-gutter:revert-hunk + ;; "m" 'helm-recentf ; recent GLOBAL files + "m" 'my/recentf-ido-find-file ; recent GLOBAL files "M" 'projectile-recentf ; recent PROJECT files "p" 'projectile-switch-project "/" 'evilnc-comment-or-uncomment-lines "\\" 'neotree-show "|" 'neotree-hide ";" 'helm-imenu + ":" 'my/ido-goto-symbol "," 'ido-switch-buffer "=" 'align-regexp "x" 'my/kill-other-buffers @@ -94,6 +101,10 @@ "zz" 'kill-this-buffer ; Close buffer "]b" 'previous-buffer "[b" 'next-buffer + "]e" 'next-error + "[e" 'previous-error + "]g" 'git-gutter:next-hunk + "[g" 'git-gutter:previous-hunk ;; winner-mode: window layout undo/redo (see init-core.el) (kbd "C-w u") 'winner-undo diff --git a/init/init-fly.el b/init/init-fly.el index 6dba15a24..f8417a397 100644 --- a/init/init-fly.el +++ b/init/init-fly.el @@ -1,6 +1,5 @@ (use-package flycheck :ensure t :commands global-flycheck-mode - :diminish (flycheck-mode . " !") :init (add-hook 'after-init-hook #'global-flycheck-mode) :config (progn diff --git a/init/init-git.el b/init/init-git.el index ec09f17c4..088aca8d7 100644 --- a/init/init-git.el +++ b/init/init-git.el @@ -32,11 +32,11 @@ (custom-set-variables '(git-gutter:lighter " !")) (custom-set-variables '(git-gutter:verbosity 0)) - (set-face-foreground 'git-gutter-fr:modified "#555555") + (set-face-foreground 'git-gutter-fr:modified "#444444") (set-face-background 'git-gutter-fr:modified "#444444") - (set-face-foreground 'git-gutter-fr:deleted "#995555") + (set-face-foreground 'git-gutter-fr:deleted "#884444") (set-face-background 'git-gutter-fr:deleted "#884444") - (set-face-foreground 'git-gutter-fr:added "#559955") + (set-face-foreground 'git-gutter-fr:added "#448844") (set-face-background 'git-gutter-fr:added "#448844") )) diff --git a/init/init-project.el b/init/init-project.el index bdb9878da..84fc9a5d5 100644 --- a/init/init-project.el +++ b/init/init-project.el @@ -10,7 +10,7 @@ dired-dwim-target t)))) (use-package ag :ensure t :defer t) -(use-package helm :ensure t :defer t) +;; (use-package helm :ensure t :defer t) (use-package grizzl :ensure t :defer t) (use-package neotree :commands (neotree-show neotree-hide neotree-toggle)) diff --git a/init/my-defuns.el b/init/my-defuns.el index 92756c07c..59ae5da02 100644 --- a/init/my-defuns.el +++ b/init/my-defuns.el @@ -71,6 +71,61 @@ (defun my/kill-non-project-buffers ()) ; TODO Implement this +(defun my/recentf-ido-find-file () + "Find a recent file using ido." + (interactive) + (let ((file (ido-completing-read "Choose recent file: " recentf-list nil t))) + (when file + (find-file file)))) + +(defun my/ido-goto-symbol (&optional symbol-list) + "Refresh imenu and jump to a place in the buffer using Ido." + (interactive) + (unless (featurep 'imenu) + (require 'imenu nil t)) + (cond + ((not symbol-list) + (let ((ido-mode ido-mode) + (ido-enable-flex-matching + (if (boundp 'ido-enable-flex-matching) + ido-enable-flex-matching t)) + name-and-pos symbol-names position) + (unless ido-mode + (ido-mode 1) + (setq ido-enable-flex-matching t)) + (while (progn + (imenu--cleanup) + (setq imenu--index-alist nil) + (my/ido-goto-symbol (imenu--make-index-alist)) + (setq selected-symbol + (ido-completing-read "Symbol? " symbol-names)) + (string= (car imenu--rescan-item) selected-symbol))) + (unless (and (boundp 'mark-active) mark-active) + (push-mark nil t nil)) + (setq position (cdr (assoc selected-symbol name-and-pos))) + (cond + ((overlayp position) + (goto-char (overlay-start position))) + (t + (goto-char position))))) + ((listp symbol-list) + (dolist (symbol symbol-list) + (let (name position) + (cond + ((and (listp symbol) (imenu--subalist-p symbol)) + (my/ido-goto-symbol symbol)) + ((listp symbol) + (setq name (car symbol)) + (setq position (cdr symbol))) + ((stringp symbol) + (setq name symbol) + (setq position + (get-text-property 1 'org-imenu-marker symbol)))) + (unless (or (null position) (null name) + (string= (car imenu--rescan-item) name)) + (add-to-list 'symbol-names name) + (add-to-list 'name-and-pos (cons name position)))))))) + ;;;; Ac-setup Defuns ;;;;;;;;;;;;;; (defun my/ac-ruby-setup() "Set up RSense and ac-sources" @@ -85,9 +140,20 @@ output in the echo area" (interactive) (nmap mode (kbd "s-r") - (λ (shell-command-on-region (point-min) (point-max) interpreter))) + `(lambda() (interactive) (shell-command-on-region (point-min) (point-max) ,interpreter))) (vmap mode (kbd "s-r") - (λ (shell-command-on-region (region-beginning) (region-end) interpreter)))) + `(lambda() (interactive) (shell-command-on-region (region-beginning) (region-end) ,interpreter)))) + +;;;; Tmux defuns ;;;;;;;;;;;;;;;;; +(defun my/tmux-send(command) + (interactive "sRun command: ") + (shell-command (concat "tmux send-keys C-u " (shell-quote-argument command) " Enter")) + (message "Tmux: Command sent!")) + +(defun my/tmux-chdir(dir) + (interactive "DDirectory: ") + (shell-command (concat "tmux send-keys C-u \"cd " dir "\" Enter")) + (message "Tmux: Directory changed!")) ;;;; Mac-specific Defuns ;;;;;;;;; (when is-mac