(purpose-load-window-layout-file "~/.emacs.d/layouts/full-ide.window-layout")
(nil (0 0 152 35) (t (0 0 29 35) (:purpose dired :purpose-dedicated t :width 0.16 :height 0.5 :edges (0.0 0.0 0.19333333333333333 0.5)) (:purpose buffers :purpose-dedicated t :width 0.16 :height 0.4722222222222222 :edges (0.0 0.5 0.19333333333333333 0.9722222222222222))) (t (29 0 125 35) (:purpose edit :purpose-dedicated t :width 0.6 :height 0.85 :edges (0.19333333333333333 0.0 0.8266666666666667 0.85)) (:purpose misc :purpose-dedicated t :width 0.6 :height 0.1 :edges (0.19333333333333333 0.8722222222222222 0.8266666666666667 0.9722222222222222)) ) (t (125 0 152 35) (:purpose ilist :purpose-dedicated t :width 0.15333333333333332 :height 0.6 :edges (0.82666666666666667 0.0 0.9722222222222222 0.6)) (:purpose todo :purpose-dedicated t :width 0.15333333333333332 :height 0.372222222 :edges (0.8266666666666667 0.6 0.9722222222222222 0.9722222222222222)) ) )
(defun load-purpose-mode () (interactive) (purpose-load-window-layout-file "~/.emacs.d/layouts/full-ide.window-layout") (purpose-x-code1-setup) ) (global-set-key (kbd "ML") 'load-purpose-mode)
misc purpose | todo purpose | edit purpose |
---|---|---|
inferior-python-mode | org-mode | css-mode |
python-inferior-mode | yaml-mode | |
gdb-inferior-io-mode | conf-unix-mode | |
fundamental-mode | * magit * | |
compilation-mode | ||
shell-mode | ||
eshell-mode | ||
term-mode |
(add-to-list 'purpose-user-mode-purposes '(YOUR_MODE . PURPOSE))
(defvar purpose-x-magit-single-conf (purpose-conf "magit-single" :regexp-purposes '(("^\\*magit" . misc))) "Configuration that gives each magit major mode the same purpose.") (purpose-x-magit-single-on)
(purpose-compile-user-configuration)
;; helper purpose. . (ie, purpose ) (defun get-only-one-buffer-with-purpose (purpose) "Get buffers wih purpose" (buffer-name (nth 0 (purpose-buffers-with-purpose purpose))) ) ;; dired buffer, , , dired . . ? purpose. , (define-key purpose-mode-map (kbd "Cc Cf") (lambda () (interactive) (purpose-switch-buffer-with-some-purpose 'dired)) ) ;; . . . . (define-key purpose-mode-map (kbd "Cc Cl") (lambda () (interactive) (purpose-switch-buffer (get-only-one-buffer-with-purpose 'buffers))) ) ;; . dired (define-key purpose-mode-map (kbd "Cc Cc") (lambda () (interactive) (purpose-switch-buffer-with-some-purpose 'edit)) ) ;; (, ) . . . . (define-key purpose-mode-map (kbd "Cc Cd") (lambda () (interactive) (purpose-switch-buffer (get-only-one-buffer-with-purpose 'ilist))) ) ;; todo . . . (define-key purpose-mode-map (kbd "Cc Ct") (lambda () (interactive) (purpose-switch-buffer (get-only-one-buffer-with-purpose 'todo))) )
(defconst todo-mode-buffer-name "*CodeTodo*" "Name of the buffer that is used to display todo entries.") ;; todo , , read only mode @todo. @todo . (defun on-org-mode-todo-file-built (process event) (find-file (concat (getenv "PWD") "/todo.org")) (call-interactively 'read-only-mode) ) ;; todo org-mode (defun build-org-mode-file-for-todo () (start-process "Building todo things" "*CodeTodo*" "bash" "-ic" "source ~/.bashrc; collecttodotags") (set-process-sentinel (get-process "Building todo things") 'on-org-mode-todo-file-built) ) ;; , (defun todo-mode-get-buffer-create () "Return the todo-mode buffer. If it doesn't exist, create it." (or (get-buffer todo-mode-buffer-name) (let ((buffer (get-buffer-create todo-mode-buffer-name))) (with-current-buffer buffer (org-mode) (build-org-mode-file-for-todo) (pop-to-buffer todo-mode-buffer-name)) buffer)))
alias collecttodotags="find `pwd` -type d \( -name .git -o -name myworkenv -o -name node_modules \) -prune -o -type f \( -name todo.org \) -prune -o -type f -print -exec grep -n '@todo' '{}' \; | create_org_mode_todo_file.py > ./todo.org"
(global-set-key "\C-c+" (lambda () (interactive) (enlarge-window +20))) (global-set-key "\C-c_" (lambda () (interactive) (enlarge-window -20)))
Source: https://habr.com/ru/post/333640/
All Articles