From 744e661ccea2890536dedaeb1c65106185c4d728 Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Tue, 15 Aug 2017 17:44:17 +0100 Subject: [PATCH] buffers module added --- lib/extensions/development/init.el | 6 ++-- lib/extensions/editor/buffers.el | 38 +++++++++++++++++++++++++ lib/extensions/editor/init.el | 8 +++++- lib/extensions/editor/lxdrive-mode.el | 41 ++++++++------------------- lib/extensions/editor/utils.el | 1 - 5 files changed, 60 insertions(+), 34 deletions(-) create mode 100644 lib/extensions/editor/buffers.el diff --git a/lib/extensions/development/init.el b/lib/extensions/development/init.el index 81eadf5..bf079d5 100644 --- a/lib/extensions/development/init.el +++ b/lib/extensions/development/init.el @@ -61,7 +61,7 @@ (setq bm-in-lifo-order t) (setq bm-cycle-all-buffers t) - ;(setq bm-highlight-style 'bm-highlight-line-and-fringe) + ;(setq bm-highlight-style 'bm-highlight-line-and-fringe) (setq-default bm-buffer-persistence t) (setq bm-repository-file (locate-user-emacs-file "bm-repository")) (add-hook 'prog-mode-hook 'bm-load-and-restore) @@ -144,7 +144,7 @@ "Snippet configuration." (let ((snippet_home (concat (file-name-directory - (locate-library "yasnippet")) "snippets")) + (locate-library "yasnippet")) "snippets")) (my_snippet (concat fg42-home "/lib/snippets"))) (setq yas-snippet-dirs (list my_snippet snippet_home))) @@ -230,7 +230,7 @@ '(shell-pop-shell-type (quote ("eshell" "*shell*" (lambda nil (eshell shell-pop-term-shell))))) ;;'(shell-pop-term-shell "/bin/zsh") '(shell-pop-term-shell "eshell") - '(shell-pop-universal-key "M-`") + '(shell-pop-window-size 30) '(shell-pop-full-span t) '(shell-pop-window-position "full")) diff --git a/lib/extensions/editor/buffers.el b/lib/extensions/editor/buffers.el new file mode 100644 index 0000000..b97c5f4 --- /dev/null +++ b/lib/extensions/editor/buffers.el @@ -0,0 +1,38 @@ +;;; Buffers Module --- All the functions related to buffer management +;;; Commentary: +;;; Code: + +(defvar *favorite-buffer* nil) + +(defun switch-to-previous-buffer () + "Switch to previously open buffer. +Repeated invocations toggle between the two most recently open buffers." + (interactive) + (switch-to-buffer (other-buffer (current-buffer) 1))) + +(defun switch-to-buffer-by-regex () + "Switch to buffer which the name match the *favorite-buffer* regex." + (interactive) + (if *favorite-buffer* + (switch-to-buffer + (car (remove-if-not (apply-partially #'string-match-p *favorite-buffer*) + (buffer-list)))) + (eshell))) + +(defun switch-to-favorite-buffer () + "Switch to *favorite-buffer* buffer with is variable assigned to each mode. + +For exampe in clojure mode it would the name of repl buffer. The *favorite-buffer* value should be regex matching to the buffer name" + (interactive + (if *favorite-buffer* + (if (string-match *favorite-buffer* (buffer-name)) + (switch-to-previous-buffer) + (switch-to-buffer-by-regex)) + (if (string= (buffer-name) "*eshell*") (switch-to-previous-buffer) (eshell))))) + + + + + +(provide 'extensions/editor/buffers) +;;; buffers.el ends here diff --git a/lib/extensions/editor/init.el b/lib/extensions/editor/init.el index fc14930..05bfe94 100644 --- a/lib/extensions/editor/init.el +++ b/lib/extensions/editor/init.el @@ -1,3 +1,5 @@ +(require 'extensions/editor/buffers) + ;; Customizations -------------------------------------------- (defcustom fg42-todo-file "~/.TODO.org" "Path to your TODO file. You can use a tramp address here as well." @@ -121,6 +123,10 @@ (global-set-key (kbd "\C-c m") 'menu-bar-mode) (global-set-key (kbd "") 'goto-line) + + (global-set-key (kbd "M-TAB") 'switch-to-previous-buffer) + (global-set-key (kbd "M-`") 'switch-to-favorite-buffer) + ;; Don't allow tab as indent (setq-default indent-tabs-mode nil) @@ -169,7 +175,7 @@ (global-set-key (kbd "C-c C-SPC ") 'mc/mark-all-like-this) ;; Reload FG42 - (define-key global-map (kbd "") 'fg42-reload) + (define-key global-map (kbd "C-") 'fg42-reload) ;; Key Chord ------------------------------------------------ ;; (require 'key-chord) diff --git a/lib/extensions/editor/lxdrive-mode.el b/lib/extensions/editor/lxdrive-mode.el index 08c4a86..c37ce77 100644 --- a/lib/extensions/editor/lxdrive-mode.el +++ b/lib/extensions/editor/lxdrive-mode.el @@ -19,21 +19,11 @@ (lxdrive-minor-mode t) (use-global-map lxdrive-mode-map)) -(defun turn-off-and-ido-find-file () - (interactive) - (turn-off-lxdrive) - (ido-find-file)) - (defun turn-off-and-smex () (interactive) (turn-off-lxdrive) (smex)) -(defun turn-off-and-swiper () - (interactive) - (turn-off-lxdrive) - (swiper)) - (defvar lxdrive-mode-map (let ((map (make-sparse-keymap))) ;; Movement @@ -46,28 +36,26 @@ (define-key map (kbd "n") 'backward-paragraph) (define-key map (kbd "m") 'forward-paragraph) (define-key map (kbd "TAB") 'indent-for-tab-command) - (define-key map (kbd "`") 'cua-set-mark) - (define-key map (kbd "=") 'er/expand-region) - (define-key map (kbd "]") 'forward-page) - (define-key map (kbd "[") 'backward-page) - (define-key map (kbd "e") 'move-end-of-line) - (define-key map (kbd "a") 'move-beginning-of-line) + (define-key map (kbd "`") 'cua-set-mark) + (define-key map (kbd "=") 'er/expand-region) + (define-key map (kbd "]") 'forward-page) + (define-key map (kbd "[") 'backward-page) + (define-key map (kbd "e") 'move-end-of-line) + (define-key map (kbd "a") 'move-beginning-of-line) (define-key map (kbd "") 'go-to-line) - (define-key map (kbd "C-TAB") 'other-window) + (define-key map (kbd "C-TAB") 'other-window) ;; Actions - (define-key map (kbd "b") 'ivy-switch-buffer) (define-key map (kbd "RET") 'newline) - (define-key map (kbd "d") 'delete-char) + (define-key map (kbd "d") 'delete-char) (define-key map (kbd "") 'delete-backward-char) (define-key map (kbd "y") 'cua-paste) (define-key map (kbd "C-w") 'kill-region) (define-key map (kbd "M-w") 'kill-ring-save) (define-key map (kbd "h") 'kill-and-join-forward) - (define-key map (kbd "f") 'turn-off-and-ido-find-file) + (define-key map (kbd "g") 'keyboard-quit) - (define-key map (kbd "s") 'turn-off-and-swiper) (define-key map (kbd "z") 'undo) (define-key map (kbd "M-x") 'turn-off-and-smex) @@ -81,18 +69,13 @@ (define-minor-mode lxdrive-minor-mode "A minor mode so that my key settings override annoying major modes." + :global t :lighter " lx") - -;; (defun my-minibuffer-setup-hook () -;; (lxdrive-minor-mode 0)) - -;; (add-hook 'minibuffer-setup-hook 'my-minibuffer-setup-hook) - - -;;(lxdrive-minor-mode 1) (global-set-key (kbd "ESC ESC") 'turn-on-lxdrive) (global-set-key (kbd "M-SPC") 'turn-on-lxdrive) + (spaceline-toggle-lxdrive-on) + (provide 'extensions/editor/lxdrive-mode) ;;; lxdrive-mode ends here diff --git a/lib/extensions/editor/utils.el b/lib/extensions/editor/utils.el index 809652d..3c23362 100644 --- a/lib/extensions/editor/utils.el +++ b/lib/extensions/editor/utils.el @@ -1,5 +1,4 @@ ;; Functions ----------------------------- - ;;;###autoload (defun comment-dwim-line (&optional arg) "Replacement for the comment-dwim command.