Add doom-emacs files, remove old Emacs files.
This commit is contained in:
parent
2c39a66ffe
commit
eff6302746
|
@ -0,0 +1,13 @@
|
|||
;;; ~/.doom.d/autoload/functions.el -*- lexical-binding: t; -*-
|
||||
|
||||
;;;###autoload
|
||||
(defun find-in-dotfiles ()
|
||||
"Open a file somewhere in ~/.dotfiles via a fuzzy filename search."
|
||||
(interactive)
|
||||
(doom-project-find-file (expand-file-name "~/projects/dotfiles")))
|
||||
|
||||
;;;###autoload
|
||||
(defun browse-dotfiles ()
|
||||
"Browse the files in ~/.dotfiles."
|
||||
(interactive)
|
||||
(doom-project-browse (expand-file-name "~/projects/dotfiles")))
|
|
@ -0,0 +1,110 @@
|
|||
;;; .doom.d/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(setq user-full-name "Alex Schmidt"
|
||||
user-mail-address "zyeryi@gmail.com"
|
||||
epa-file-encrypt-to user-mail-address)
|
||||
|
||||
;; disable automatic completion
|
||||
(setq company-idle-delay nil)
|
||||
|
||||
;; disable lsp-ui-sideline stuff
|
||||
(setq lsp-ui-sideline-enable nil
|
||||
lsp-enable-indentation nil
|
||||
lsp-enable-on-type-formatting nil
|
||||
lsp-enable-symbol-highlighting nil
|
||||
lsp-enable-file-watchers nil)
|
||||
|
||||
;; disable mouse-overs for mode-line segments
|
||||
(setq mode-line-default-help-echo nil
|
||||
show-help-function nil)
|
||||
|
||||
;; disable confirmation on quit
|
||||
(setq confirm-kill-emacs nil)
|
||||
|
||||
;; tell projectile where projects are stored
|
||||
(setq projectile-project-search-path '("~/projects" "~/src/repos"))
|
||||
|
||||
;; location where Emacs can find its own source code
|
||||
(setq source-directory "~/src/repos/emacs/")
|
||||
|
||||
;; prevent message about iedit during startup (annoying)
|
||||
(setq iedit-toggle-key-default nil)
|
||||
|
||||
;;
|
||||
;;; UI
|
||||
(setq doom-theme 'doom-one)
|
||||
|
||||
;; line numbers are distracting if we don't need them
|
||||
(setq display-line-numbers-type nil)
|
||||
|
||||
;; don't yell at us if the fonts aren't installed yet
|
||||
(ignore-errors
|
||||
(setq doom-font (font-spec :family "Iosevka" :size 14)
|
||||
doom-variable-pitch-font (font-spec :family "Noto Sans" :size 13)))
|
||||
|
||||
;;; Frames/Windows
|
||||
(add-to-list 'default-frame-alist '(inhibit-double-buffering . t))
|
||||
|
||||
;;
|
||||
;;; Keybinds
|
||||
(map! :leader
|
||||
(:prefix "f"
|
||||
"t" #'find-in-dotfiles
|
||||
"T" #'browse-dotfiles)
|
||||
|
||||
;; my arrow keys aren't working, so set up some temporary bindings to move
|
||||
;; lines around until I can get them fixed/replaced
|
||||
"[ e" #'drag-stuff-up
|
||||
"] e" #'drag-stuff-down
|
||||
|
||||
(:prefix "p"
|
||||
"/" #'+ivy/project-search)
|
||||
|
||||
(:prefix "t"
|
||||
"m" #'toggle-frame-maximized))
|
||||
|
||||
(map! :gnvime "M-K" #'drag-stuff-up
|
||||
:gnvime "M-J" #'drag-stuff-down)
|
||||
|
||||
;;; :completion ivy
|
||||
(setq +ivy-buffer-preview t)
|
||||
|
||||
;;; :editor evil
|
||||
(setq evil-split-window-below t
|
||||
evil-vsplit-window-right t)
|
||||
|
||||
;; o/O keys shouldn't continue commented lines
|
||||
(setq +evil-want-o/O-to-continue-comments nil)
|
||||
|
||||
;;; :tools magit
|
||||
(setq magit-repository-directories '(("~/projects" . 1))
|
||||
magit-save-repository-buffers nil
|
||||
magit-inhibit-save-previous-winconf t
|
||||
transient-values '((magit-commit "--gpg-sign=0x1C534F4138D5CCE4")
|
||||
(magit-rebase "--autosquash" "--gpg-sign=0x1C534F4138D5CCE4")
|
||||
(magit-pull "--rebase" "--gpg-sign=0x1C534F4138D5CCE4")))
|
||||
|
||||
;;; :lang org
|
||||
(setq org-directory "~/org/"
|
||||
org-bullets-bullet-list '("*"))
|
||||
|
||||
(setq-default org-hide-leading-stars nil)
|
||||
|
||||
;; revert TAB behavior (cycle subtree visibility state recursively)
|
||||
(after! evil-org
|
||||
(remove-hook 'org-tab-first-hook #'+org-cycle-only-current-subtree-h))
|
||||
|
||||
;;; :ui vc-gutter
|
||||
(setq +vc-gutter-in-remote-files nil)
|
||||
|
||||
;;; :lang latex
|
||||
(setq bibtex-completion-library-path (list "~/org/refs/pdfs"))
|
||||
|
||||
(setq +latex-bibtex-file "~/org/refs/references.bib"
|
||||
+latex-enable-unicode-math t)
|
||||
|
||||
(after! bibtex
|
||||
(setq bibtex-dialect 'biblatex))
|
||||
|
||||
(when IS-MAC
|
||||
(setq +latex-viewers '(skim pdf-tools)))
|
|
@ -0,0 +1,163 @@
|
|||
;;; init.el -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copy this file to ~/.doom.d/init.el or ~/.config/doom/init.el ('doom install'
|
||||
;; will do this for you). The `doom!' block below controls what modules are
|
||||
;; enabled and in what order they will be loaded. Remember to run 'doom refresh'
|
||||
;; after modifying it.
|
||||
;;
|
||||
;; More information about these modules (and what flags they support) can be
|
||||
;; found in modules/README.org.
|
||||
|
||||
(doom! :input
|
||||
;;chinese
|
||||
;;japanese
|
||||
|
||||
:completion
|
||||
company ; the ultimate code completion backend
|
||||
;helm ; the *other* search engine for love and life
|
||||
;;ido ; the other *other* search engine...
|
||||
(ivy +prescient) ; a search engine for love and life
|
||||
|
||||
:ui
|
||||
;;deft ; notational velocity for Emacs
|
||||
doom ; what makes DOOM look the way it does
|
||||
doom-dashboard ; a nifty splash screen for Emacs
|
||||
;;doom-quit ; DOOM quit-message prompts when you quit Emacs
|
||||
;;fill-column ; a `fill-column' indicator
|
||||
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
||||
hydra
|
||||
;;indent-guides ; highlighted indent columns
|
||||
modeline ; snazzy, Atom-inspired modeline, plus API
|
||||
nav-flash ; blink the current line after jumping
|
||||
;;neotree ; a project drawer, like NERDTree for vim
|
||||
ophints ; highlight the region an operation acts on
|
||||
(popup +all +defaults)
|
||||
;;pretty-code ; replace bits of code with pretty symbols
|
||||
;;tabs ; an tab bar for Emacs
|
||||
treemacs ; a project drawer, like neotree but cooler
|
||||
;;unicode ; extended unicode support for various languages
|
||||
vc-gutter ; vcs diff in the fringe
|
||||
vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
||||
window-select ; visually switch windows
|
||||
workspaces ; tab emulation, persistence & separate workspaces
|
||||
|
||||
:editor
|
||||
(evil +everywhere); come to the dark side, we have cookies
|
||||
file-templates ; auto-snippets for empty files
|
||||
fold ; (nigh) universal code folding
|
||||
;;(format +onsave) ; automated prettiness
|
||||
;;god ; run Emacs commands without modifier keys
|
||||
;; lispy ; vim for lisp, for people who don't like vim
|
||||
multiple-cursors ; editing in many places at once
|
||||
;;objed ; text object editing for the innocent
|
||||
;;parinfer ; turn lisp into python, sort of
|
||||
rotate-text ; cycle region at point between text candidates
|
||||
snippets ; my elves. They type so I don't have to
|
||||
;;word-wrap ; soft wrapping with language-aware indent
|
||||
|
||||
:emacs
|
||||
dired ; making dired pretty [functional]
|
||||
electric ; smarter, keyword-based electric-indent
|
||||
ibuffer ; interactive buffer management
|
||||
vc ; version-control and Emacs, sitting in a tree
|
||||
|
||||
:term
|
||||
eshell ; a consistent, cross-platform shell (WIP)
|
||||
;;shell ; a terminal REPL for Emacs
|
||||
;;term ; terminals in Emacs
|
||||
;;vterm ; another terminals in Emacs
|
||||
|
||||
:tools
|
||||
;;ansible
|
||||
;;debugger ; FIXME stepping through code, to help you add bugs
|
||||
direnv
|
||||
;;docker
|
||||
editorconfig ; let someone else argue about tabs vs spaces
|
||||
;;ein ; tame Jupyter notebooks with emacs
|
||||
(eval +overlay) ; run code, run (also, repls)
|
||||
flycheck ; tasing you for every semicolon you forget
|
||||
;;flyspell ; tasing you for misspelling mispelling
|
||||
;;gist ; interacting with github gists
|
||||
(lookup +docsets)
|
||||
lsp
|
||||
macos ; MacOS-specific commands
|
||||
magit ; a git porcelain for Emacs
|
||||
;;make ; run make tasks from Emacs
|
||||
pass ; password manager for nerds
|
||||
pdf ; pdf enhancements
|
||||
;; prodigy ; FIXME managing external services & code builders
|
||||
;;rgb ; creating color strings
|
||||
;;terraform ; infrastructure as code
|
||||
;; tmux ; an API for interacting with tmux
|
||||
;; upload ; map local to remote projects via ssh/ftp
|
||||
;;wakatime
|
||||
|
||||
:lang
|
||||
;;agda ; types of types of types of types...
|
||||
;;assembly ; assembly for fun or debugging
|
||||
(cc +lsp) ; C/C++/Obj-C madness
|
||||
;;clojure ; java with a lisp
|
||||
common-lisp ; if you've seen one lisp, you've seen them all
|
||||
;;coq ; proofs-as-programs
|
||||
;;crystal ; ruby at the speed of c
|
||||
(csharp +omnisharp) ; unity, .NET, and mono shenanigans
|
||||
data ; config/data formats
|
||||
;;elixir ; erlang done right
|
||||
;;elm ; care for a cup of TEA?
|
||||
emacs-lisp ; drown in parentheses
|
||||
;;erlang ; an elegant language for a more civilized age
|
||||
;;ess ; emacs speaks statistics
|
||||
;;faust ; dsp, but you get to keep your soul
|
||||
;;fsharp ; ML stands for Microsoft's Language
|
||||
;;go ; the hipster dialect
|
||||
(haskell +lsp) ; a language that's lazier than I am
|
||||
;;hy ; readability of scheme w/ speed of python
|
||||
;;idris ;
|
||||
;;(java +meghanada) ; the poster child for carpal tunnel syndrome
|
||||
(javascript +lsp) ; all(hope(abandon(ye(who(enter(here))))))
|
||||
;;julia ; a better, faster MATLAB
|
||||
;;kotlin ; a better, slicker Java(Script)
|
||||
latex ; writing papers in Emacs has never been so fun
|
||||
;;lean
|
||||
;;ledger ; an accounting system in Emacs
|
||||
lua
|
||||
; one-based indices? one-based indices
|
||||
markdown ; writing docs for people to ignore
|
||||
;;nim ; python + lisp at the speed of c
|
||||
;;nix ; I hereby declare "nix geht mehr!"
|
||||
;;ocaml ; an objective camel
|
||||
(org +dragndrop +gnuplot +jupyter +pandoc +hugo +present)
|
||||
;;perl ; write code no one else can comprehend
|
||||
php ; perl's insecure younger brother
|
||||
plantuml ; diagrams for confusing people more
|
||||
;;purescript ; javascript, but functional
|
||||
(python +lsp) ; beautiful is better than ugly
|
||||
qt ; the 'cutest' gui framework ever
|
||||
racket ; a DSL for DSLs
|
||||
rest ; Emacs as a REST client
|
||||
rst ; ReST in peace
|
||||
ruby ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
||||
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||
;;scala ; java, but good
|
||||
scheme ; a fully conniving family of lisps
|
||||
sh ; she sells {ba,z,fi}sh shells on the C xor
|
||||
;;solidity ; do you need a blockchain? No.
|
||||
;;swift ; who asked for emoji variables?
|
||||
;;terra ; Earth and Moon in alignment for performance.
|
||||
web ; the tubes
|
||||
|
||||
:email
|
||||
;;mu4e
|
||||
;;notmuch
|
||||
;;(wanderlust +gmail)
|
||||
|
||||
:app
|
||||
;; calendar
|
||||
;;irc ; how neckbeards socialize
|
||||
;;(rss +org) ; emacs as an RSS reader
|
||||
;;twitter ; twitter client https://twitter.com/vnought
|
||||
(write +langtool) ; emacs for writers (fiction, notes, papers, etc.)
|
||||
|
||||
:config
|
||||
;;literate
|
||||
(default +bindings +smartparens))
|
|
@ -0,0 +1,2 @@
|
|||
;;; .doom.d/packages.el -*- no-byte-compile: t; -*-
|
||||
|
982
.emacs.d/init.el
982
.emacs.d/init.el
|
@ -1,982 +0,0 @@
|
|||
;; -*- lexical-binding: t-*-
|
||||
|
||||
(require 'package)
|
||||
(setq package-enable-at-startup nil)
|
||||
|
||||
(setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
|
||||
("melpa" . "https://melpa.org/packages/")
|
||||
("org" . "https://orgmode.org/elpa/")))
|
||||
|
||||
(package-initialize)
|
||||
|
||||
(unless (package-installed-p 'use-package)
|
||||
(package-refresh-contents)
|
||||
(package-install 'use-package))
|
||||
|
||||
(eval-when-compile
|
||||
(require 'use-package))
|
||||
|
||||
(setq custom-file "~/.emacs.d/custom.el")
|
||||
(load custom-file 'noerror)
|
||||
|
||||
;; (when (string-equal system-name "akemi")
|
||||
;; (setq tls-checktrust t)
|
||||
;; (setq gnutls-verify-error t))
|
||||
|
||||
(use-package diminish
|
||||
:ensure t)
|
||||
|
||||
;; some useful utility libraries
|
||||
(use-package dash
|
||||
:ensure t)
|
||||
|
||||
(use-package dash-functional
|
||||
:ensure t
|
||||
:after dash)
|
||||
|
||||
(use-package s
|
||||
:ensure t)
|
||||
|
||||
(use-package f
|
||||
:ensure t)
|
||||
|
||||
;; startup profiling
|
||||
(use-package esup
|
||||
:ensure t)
|
||||
|
||||
;; enter pins in emacs
|
||||
(use-package pinentry
|
||||
:disabled t
|
||||
:ensure t
|
||||
:config
|
||||
(pinentry-start))
|
||||
|
||||
;; personal info
|
||||
(setq user-full-name "Alex Schmidt"
|
||||
user-mail-address "zyeryi@gmail.com")
|
||||
|
||||
;; better window resizing
|
||||
(setq frame-resize-pixelwise t)
|
||||
|
||||
;; font setup
|
||||
(cond ((member "Iosevka" (font-family-list))
|
||||
(set-frame-font "Iosevka-12")
|
||||
(set-face-attribute 'default nil :font "Iosevka-12")))
|
||||
|
||||
;; shorter confirmation prompts
|
||||
(defalias 'yes-or-no-p 'y-or-n-p)
|
||||
|
||||
;; always load latest elisp files
|
||||
(setq load-prefer-newer t)
|
||||
|
||||
;; display bell visually
|
||||
(setq visible-bell t)
|
||||
|
||||
;; follow symlinks in version control
|
||||
(setq vc-follow-symlinks t)
|
||||
|
||||
;; better scrolling
|
||||
(setq scroll-conservatively 1001
|
||||
scroll-margin 0
|
||||
scroll-preserve-screen-position t)
|
||||
|
||||
;; handle whitespace sanely
|
||||
(setq indent-tabs-mode nil
|
||||
require-file-newline t
|
||||
tab-always-indent t
|
||||
tab-width 4)
|
||||
|
||||
(setq echo-keystrokes 0.1)
|
||||
|
||||
;; delete moves to trash
|
||||
(setq delete-by-moving-to-trash t)
|
||||
|
||||
;; weeks start on Monday
|
||||
(setq calendar-week-start-day 1)
|
||||
|
||||
;; frame title
|
||||
(setq frame-title-format '(buffer-file-name "%f" ("%b")))
|
||||
|
||||
;; don't prompt to load themes, just load them
|
||||
(setq custom-safe-themes t)
|
||||
|
||||
;; line wrapping
|
||||
(setq-default truncate-lines t
|
||||
truncate-partial-width-windows 50)
|
||||
|
||||
(setq save-interprogram-paste-before-kill t
|
||||
sentence-end-double-space nil
|
||||
compilation-scroll-output t)
|
||||
|
||||
;; configure relative line numbers on supported Emacs versions
|
||||
(unless (version< emacs-version "26.1")
|
||||
(setq display-line-numbers-type 'relative))
|
||||
|
||||
;; compressed file support
|
||||
(auto-compression-mode t)
|
||||
|
||||
;; seed the PRNG
|
||||
(random t)
|
||||
|
||||
;; hide some startup stuff
|
||||
(setq inhibit-startup-message t
|
||||
inhibit-startup-echo-area-message user-login-name
|
||||
inhibit-default-init t
|
||||
initial-major-mode 'fundamental-mode
|
||||
initial-scratch-message nil)
|
||||
|
||||
;; useful constants
|
||||
(defconst dotemacs/user-home-directory
|
||||
(f-expand (getenv "HOME"))
|
||||
"Home directory for the current user.")
|
||||
|
||||
(defconst dotemacs/user-emacs-directory
|
||||
(f-join dotemacs/user-home-directory ".emacs.d")
|
||||
"Emacs directory for the current user.")
|
||||
|
||||
(defconst dotemacs/user-dropbox-directory
|
||||
(f-join dotemacs/user-home-directory "Dropbox")
|
||||
"Dropbox directory for the current user.")
|
||||
|
||||
(defconst dotemacs/user-org-directory
|
||||
(f-join dotemacs/user-dropbox-directory "org")
|
||||
"Directory to look for Org files.")
|
||||
|
||||
(defconst dotemacs/user-cache-directory
|
||||
(f-join dotemacs/user-emacs-directory "cache")
|
||||
"Directory for cache files.")
|
||||
|
||||
(setq abbrev-file-name
|
||||
(f-join dotemacs/user-cache-directory "abbrev.el"))
|
||||
|
||||
(setq auto-save-list-file-name
|
||||
`((".*" . ,(f-join dotemacs/user-cache-directory "autosave"))))
|
||||
|
||||
(setq pcache-directory
|
||||
(f-join dotemacs/user-cache-directory "pcache"))
|
||||
|
||||
(setq server-auth-dir
|
||||
(f-join dotemacs/user-cache-directory "server"))
|
||||
|
||||
(setq url-cache-directory
|
||||
(f-join dotemacs/user-cache-directory "url-cache"))
|
||||
|
||||
(setq url-configuration-directory
|
||||
(f-join dotemacs/user-cache-directory "url-config"))
|
||||
|
||||
(setq backup-directory-alist
|
||||
`((".*" . ,(f-join dotemacs/user-cache-directory "backups"))))
|
||||
|
||||
;; always use unicode
|
||||
(when (fboundp 'set-charset-priority)
|
||||
(set-charset-priority 'unicode))
|
||||
(setq locale-coding-system 'utf-8)
|
||||
(set-terminal-coding-system 'utf-8)
|
||||
(set-keyboard-coding-system 'utf-8)
|
||||
(set-selection-coding-system 'utf-8)
|
||||
(prefer-coding-system 'utf-8)
|
||||
|
||||
;; configure clipboard
|
||||
(cond ((string-equal system-type "gnu/linux")
|
||||
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING)
|
||||
select-enable-clipboard t
|
||||
select-enable-primary t)))
|
||||
|
||||
(use-package autorevert
|
||||
:hook (after-init . global-auto-revert-mode)
|
||||
:init
|
||||
(setq auto-revert-verbose nil))
|
||||
|
||||
(use-package paren
|
||||
:hook (after-init . show-paren-mode)
|
||||
:init
|
||||
(setq show-paren-delay 0.1
|
||||
show-paren-highlight-openparen t
|
||||
show-paren-when-point-inside-paren t))
|
||||
|
||||
(use-package smart-mode-line
|
||||
:ensure t
|
||||
:init
|
||||
(setq-default sml/theme 'dark
|
||||
sml/vc-mode-show-backend t)
|
||||
:config
|
||||
;; display line and column numbers in the mode line
|
||||
(line-number-mode)
|
||||
(column-number-mode)
|
||||
|
||||
;; display battery in the mode line too
|
||||
(display-battery-mode)
|
||||
|
||||
;; activate smart-mode-line
|
||||
(sml/setup))
|
||||
|
||||
;; prevent the scratch buffer from being killed
|
||||
(use-package unkillable-scratch
|
||||
:ensure t
|
||||
:hook (after-init . unkillable-scratch)
|
||||
:init
|
||||
(setq unkillable-scratch-behavior 'bury))
|
||||
|
||||
(use-package uniquify
|
||||
:init
|
||||
(setq uniquify-buffer-name-style 'post-forward-angle-brackets
|
||||
uniquify-separator "/"
|
||||
uniquify-ignore-buffers-re "^\\*"))
|
||||
|
||||
(use-package recentf
|
||||
:ensure t
|
||||
:hook (after-init . recentf-mode)
|
||||
:init
|
||||
(setq recentf-save-file (f-join dotemacs/user-cache-directory "recentf")
|
||||
recentf-max-saved-items 300
|
||||
recentf-max-menu-items 0
|
||||
recentf-filename-handlers '(abbreviate-file-name)
|
||||
recentf-exclude
|
||||
(list "^/tmp/" "^/ssh:" "\\.?ido\\.last$" "\\.revive$" "/TAGS$"
|
||||
"^/var/folders/.+$")))
|
||||
|
||||
(use-package savehist
|
||||
:ensure t
|
||||
:config
|
||||
(setq savehist-file (f-join dotemacs/user-cache-directory "savehist")
|
||||
savehist-save-minibuffer-history t
|
||||
savehist-autosave-interval nil
|
||||
savehist-additional-variables '(kill-ring search-ring regexp-search-ring))
|
||||
(savehist-mode +1))
|
||||
|
||||
(use-package saveplace
|
||||
:ensure t
|
||||
:hook (after-init . save-place-mode)
|
||||
:init
|
||||
(setq save-place-file (f-join dotemacs/user-cache-directory "saveplace")
|
||||
save-place-forget-unreadable-files t))
|
||||
|
||||
(use-package bookmark
|
||||
:init
|
||||
(setq bookmark-default-file (f-join dotemacs/user-cache-directory "bookmarks")
|
||||
bookmark-save-flag t))
|
||||
|
||||
(use-package editorconfig
|
||||
:ensure t
|
||||
:hook (after-init . editorconfig-mode)
|
||||
:diminish)
|
||||
|
||||
(use-package anzu
|
||||
:ensure t
|
||||
:diminish
|
||||
:config
|
||||
(setq anzu-cons-mode-line-p nil)
|
||||
(global-anzu-mode +1)
|
||||
:bind (("M-%" . anzu-query-replace)
|
||||
("C-M-%" . anzu-query-replace-regexp)))
|
||||
|
||||
(use-package server
|
||||
:config
|
||||
(unless (server-running-p)
|
||||
(server-start)))
|
||||
|
||||
(use-package doom-themes
|
||||
:ensure t
|
||||
:config
|
||||
(load-theme 'doom-tomorrow-night t)
|
||||
(doom-themes-neotree-config)
|
||||
|
||||
(setq doom-neotree-enable-variable-pitch t
|
||||
doom-neotree-file-icons 'simple
|
||||
doom-neotree-line-spacing 2)
|
||||
|
||||
(doom-themes-org-config))
|
||||
|
||||
(use-package all-the-icons
|
||||
:ensure t)
|
||||
|
||||
(use-package all-the-icons-dired
|
||||
:ensure t
|
||||
:after (:all all-the-icons)
|
||||
:hook (dired-mode . all-the-icons-dired-mode))
|
||||
|
||||
(use-package neotree
|
||||
:ensure t
|
||||
:after (:all all-the-icons projectile)
|
||||
:init
|
||||
(setq neo-create-file-auto-open t
|
||||
neo-banner-message nil
|
||||
neo-smart-open nil
|
||||
neo-show-updir-line nil
|
||||
neo-mode-line-type 'neotree
|
||||
neo-dont-be-alone t
|
||||
neo-window-width 32
|
||||
neo-show-hidden-files t
|
||||
neo-auto-indent-point t
|
||||
neo-modern-sidebar t
|
||||
neo-theme (if window-system 'icons 'arrow))
|
||||
:bind (([f2] . neotree-toggle)))
|
||||
|
||||
(use-package ag
|
||||
:ensure t
|
||||
:init
|
||||
(setq ag-highlight-search t
|
||||
ag-reuse-window t
|
||||
ag-reuse-buffers t))
|
||||
|
||||
(use-package hydra
|
||||
:ensure t
|
||||
:load-path "site-lisp/hydra")
|
||||
|
||||
(use-package ivy
|
||||
:ensure t
|
||||
:diminish ivy-mode
|
||||
:load-path "site-lisp/swiper"
|
||||
:hook ((after-init . ivy-mode))
|
||||
:init
|
||||
(setq projectile-completion-system 'ivy
|
||||
magit-completing-read-function 'ivy-completing-read
|
||||
ivy-count-format "(%d/%d) "
|
||||
ivy-use-virtual-buffers t
|
||||
ivy-height 10
|
||||
enable-recursive-minibuffers t)
|
||||
:bind (("C-c C-r" . ivy-resume)))
|
||||
|
||||
(use-package counsel
|
||||
:ensure t
|
||||
:bind (("C-x C-f" . counsel-find-file)
|
||||
("C-c C-s" . counsel-ag)
|
||||
("C-c k" . counsel-ag)
|
||||
("M-x" . counsel-M-x)
|
||||
("C-c j" . counsel-git-grep)
|
||||
("C-x l" . counsel-locate)))
|
||||
|
||||
(use-package counsel-projectile
|
||||
:ensure t
|
||||
:hook ((after-init . counsel-projectile-mode)))
|
||||
|
||||
(use-package swiper
|
||||
:ensure t
|
||||
:after ivy
|
||||
:bind (("C-s" . swiper)))
|
||||
|
||||
(use-package exec-path-from-shell
|
||||
:ensure t
|
||||
:if (memq window-system '(mac ns x))
|
||||
:init
|
||||
(setq exec-path-from-shell-check-startup-files nil)
|
||||
:config
|
||||
(exec-path-from-shell-copy-envs '("WORKON_HOME" "PROJECT_HOME"))
|
||||
(exec-path-from-shell-initialize))
|
||||
|
||||
(use-package python-mode
|
||||
:ensure t
|
||||
:mode ("\\.py\\'" . python-mode)
|
||||
:init
|
||||
(setq python-shell-completion-native-enable nil
|
||||
python-shell-interpreter "python"))
|
||||
|
||||
(use-package elpy
|
||||
:ensure t
|
||||
:init
|
||||
(setq-default elpy-rpc-python-command "python3")
|
||||
:config
|
||||
(elpy-enable))
|
||||
|
||||
(use-package dired
|
||||
:init
|
||||
(put 'dired-find-alternative-file 'disabled nil)
|
||||
(setq dired-recursive-deletes 'always
|
||||
dired-recursive-copies 'always
|
||||
dired-dwim-target t
|
||||
dired-listing-switches "-laGh1v --group-directories-first"))
|
||||
|
||||
(use-package dired-x
|
||||
:after dired)
|
||||
|
||||
(use-package dired-narrow
|
||||
:after (:all dired dired-x)
|
||||
:ensure t
|
||||
:bind (:map dired-mode-map
|
||||
("/" . dired-narrow)))
|
||||
|
||||
(use-package peep-dired
|
||||
:after (:all dired dired-x)
|
||||
:ensure t
|
||||
:defer t
|
||||
:init
|
||||
(setq peep-dired-cleanup-on-disable t)
|
||||
:bind (:map dired-mode-map
|
||||
("P" . peep-dired)))
|
||||
|
||||
(use-package shackle
|
||||
:ensure t
|
||||
:hook (after-init . shackle-mode)
|
||||
:init
|
||||
(setq shackle-default-alignment 'below
|
||||
shackle-rules
|
||||
'(("*eshell*" :select t :other t)
|
||||
("*Help*" :select t :inhibit-window-quit t :other t)
|
||||
("*Messages*" :select nil :inhibit-window-quit t)
|
||||
("*magit-dispatch-popup*" :select t :align t)
|
||||
(" *NeoTree*" :select t :align left :static t)
|
||||
("*compilation*" :size 0.25 :noselect t :autokill t :autoclose t)
|
||||
("*ert*" :same t :modeline t)
|
||||
("*info*" :size 0.5 :select t :autokill t)
|
||||
("*Backtrace*" :size 20 :noselect t)
|
||||
("*Warnings*" :size 12 :noselect t :autofit t)
|
||||
("*Messages*" :size 12 :noselect t)
|
||||
("*Help*" :size 0.3)
|
||||
("^\\*.*Shell Command.*\\*$" :regexp t :size 20 :noselect t :autokill t)
|
||||
(apropos-mode :size 0.3 :autokill t :autoclose t)
|
||||
(Buffer-menu-mode :size 20 :autokill t)
|
||||
(comint-mode :noesc t)
|
||||
(grep-mode :size 25 :noselect t :autokill t)
|
||||
(profiler-report-mode :size 0.3 :regexp t :autokill t :modeline minimal)
|
||||
(tabulated-list-mode :noesc t)
|
||||
("^ ?\\*" :regexp t :size 15 :noselect t :autokill t :autoclose t)
|
||||
("^\\*magit" :regexp t :size 0.5 :noesc t :autokill t))))
|
||||
|
||||
(use-package evil
|
||||
:ensure t
|
||||
:init
|
||||
(setq evil-want-fine-undo 'fine
|
||||
evil-default-cursor 'box
|
||||
evil-move-beyond-eol t
|
||||
evil-esc-delay 0
|
||||
evil-ex-substitute-global t
|
||||
evil-ex-visual-char-range t
|
||||
evil-symbol-word-search t
|
||||
evil-want-C-u-scroll t
|
||||
evil-want-Y-yank-to-eol t
|
||||
evil-magic t
|
||||
evil-echo-state t)
|
||||
:config
|
||||
;; set initial state for specific modes
|
||||
(cl-loop for (mode . state)
|
||||
in '((help-mode . emacs)
|
||||
(debugger-mode . emacs)
|
||||
(dired-mode . emacs)
|
||||
(tabulated-list-mode . emacs)
|
||||
(view-mode . emacs)
|
||||
(comint-mode . emacs)
|
||||
(term-mode . emacs)
|
||||
(calendar-mode . emacs)
|
||||
(Man-mode . emacs)
|
||||
(grep-mode . emacs)
|
||||
(image-mode . emacs)
|
||||
(paradox-menu-mode . emacs)
|
||||
(epa-key-list-mode . emacs)
|
||||
(dashboard-mode . emacs)
|
||||
(neotree-mode . emacs)
|
||||
(prodigy-mode . emacs)
|
||||
(special-mode . emacs)
|
||||
(messages-buffer-mode . emacs)
|
||||
(flymake-diagnostics-buffer-mode . emacs)
|
||||
(TeX-output-mode . emacs)
|
||||
(esup-mode . emacs))
|
||||
do (evil-set-initial-state mode state))
|
||||
(evil-select-search-module 'evil-search-module 'evil-search))
|
||||
|
||||
(use-package evil-commentary
|
||||
:ensure t
|
||||
:diminish
|
||||
:after evil
|
||||
:config
|
||||
(evil-commentary-mode +1))
|
||||
|
||||
(use-package evil-visualstar
|
||||
:ensure t
|
||||
:after evil
|
||||
:config
|
||||
(global-evil-visualstar-mode))
|
||||
|
||||
(use-package evil-anzu
|
||||
:ensure t
|
||||
:after evil)
|
||||
|
||||
(use-package evil-matchit
|
||||
:ensure t
|
||||
:after evil
|
||||
:config
|
||||
(global-evil-matchit-mode))
|
||||
|
||||
(use-package evil-surround
|
||||
:ensure t
|
||||
:after evil
|
||||
:config
|
||||
(global-evil-surround-mode))
|
||||
|
||||
(use-package evil-search-highlight-persist
|
||||
:ensure t
|
||||
:after evil
|
||||
:config
|
||||
(global-evil-search-highlight-persist t))
|
||||
|
||||
(use-package undo-tree
|
||||
:ensure t
|
||||
:diminish
|
||||
:init
|
||||
(setq undo-tree-history-directory-alist `((".*" . ,(f-join dotemacs/user-cache-directory "undo-tree-history")))
|
||||
undo-tree-auto-save-history t))
|
||||
|
||||
(use-package general
|
||||
:ensure t
|
||||
:init
|
||||
(setq general-default-keymaps 'evil-normal-state-map)
|
||||
:config
|
||||
(general-define-key "[ SPC" 'insert-newline-above
|
||||
"] SPC" 'insert-newline-below))
|
||||
|
||||
(use-package move-text
|
||||
:ensure t
|
||||
:after general
|
||||
:config
|
||||
(general-define-key "[ e" 'move-text-up
|
||||
"] e" 'move-text-down))
|
||||
(use-package magit
|
||||
:ensure t
|
||||
:init
|
||||
(setq magit-section-show-children-count t
|
||||
magit-diff-arguments '("--histogram")
|
||||
magit-ediff-dwim-show-on-hunks t
|
||||
magit-repository-directories `(( ,(f-join (getenv "HOME") "src" "projects"))
|
||||
( ,(f-join (getenv "HOME") "src" "repos"))))
|
||||
:bind (("C-c g" . magit-status)))
|
||||
|
||||
(use-package with-editor
|
||||
:ensure t
|
||||
:after magit
|
||||
:hook ((shell-mode . with-editor-export-editor)
|
||||
(term-exec . with-editor-export-editor)
|
||||
(eshell-mode . with-editor-export-editor)))
|
||||
|
||||
(use-package which-key
|
||||
:ensure t
|
||||
:hook (after-init . which-key-mode)
|
||||
:diminish
|
||||
:init
|
||||
(setq which-key-popup-type 'minibuffer
|
||||
which-key-add-column-padding 1
|
||||
which-key-max-display-columns nil
|
||||
which-key-min-display-lines 5
|
||||
which-key-sort-uppercase-first nil
|
||||
which-key-sort-order #'which-key-prefix-then-key-order)
|
||||
:config
|
||||
(set-face-attribute 'which-key-local-map-description-face nil :weight 'bold)
|
||||
(which-key-setup-side-window-bottom))
|
||||
|
||||
(use-package expand-region
|
||||
:ensure t
|
||||
:bind (("C-c C-+" . er/expand-region)
|
||||
("C-c C--" . er/contract-region)))
|
||||
|
||||
(use-package projectile
|
||||
:ensure t
|
||||
:diminish
|
||||
:init
|
||||
(setq projectile-enable-caching t
|
||||
projectile-cache-file (f-join dotemacs/user-cache-directory "projectile-cache.el")
|
||||
projectile-known-projects-file (f-join dotemacs/user-cache-directory "projectile-projects.el"))
|
||||
:config
|
||||
(projectile-mode))
|
||||
|
||||
(use-package company
|
||||
:ensure t
|
||||
:diminish
|
||||
:init
|
||||
(setq company-dabbrev-downcase nil
|
||||
company-dabbrev-ignore-case t
|
||||
company-dabbrev-code-ignore-case t
|
||||
company-dabbrev-code-everywhere t
|
||||
company-idle-delay 1
|
||||
company-show-numbers t
|
||||
company-minimum-prefix-length 2
|
||||
company-selection-wrap-around t
|
||||
company-tooltip-limit 10
|
||||
company-begin-commands '(self-insert-command)
|
||||
company-backends '((company-files
|
||||
company-keywords
|
||||
company-capf
|
||||
company-yasnippet)
|
||||
(company-abbrev))
|
||||
company-disabled-backends '(dabbrev)
|
||||
company-transformers '(company-sort-by-occurrence
|
||||
company-sort-by-backend-importance))
|
||||
:config
|
||||
(global-company-mode)
|
||||
:bind (("C-." . company-files)
|
||||
("M-<tab>" . company-complete)
|
||||
("C-c C-y" . company-yasnippet)))
|
||||
|
||||
(use-package company-statistics
|
||||
:ensure t
|
||||
:after company
|
||||
:config
|
||||
(setq company-statistics-file (f-join dotemacs/user-cache-directory "company-statistics-cache.el"))
|
||||
(add-hook 'after-init-hook #'company-statistics-mode))
|
||||
|
||||
(use-package org
|
||||
:ensure t
|
||||
:diminish org-indent-mode
|
||||
:config
|
||||
(setq org-directory (f-expand "~/Dropbox/org")
|
||||
org-default-notes-file "~/Dropbox/org/notes.org")
|
||||
|
||||
(setq org-agenda-files
|
||||
'("~/Dropbox/org/agenda.org"
|
||||
"~/Dropbox/org/archive.org"
|
||||
"~/Dropbox/org/contacts.org"
|
||||
"~/Dropbox/org/misc.org"
|
||||
"~/Dropbox/org/notes.org"
|
||||
"~/Dropbox/org/refile.org"))
|
||||
|
||||
(setq org-refile-targets
|
||||
'((org-agenda-files . (:maxlevel . 1))))
|
||||
|
||||
(setq org-src-fontify-natively t
|
||||
org-src-preserve-indentation t
|
||||
org-src-window-setup 'current-window
|
||||
org-src-strip-leading-and-trailing-blank-lines t)
|
||||
|
||||
(setq org-todo-keywords
|
||||
'((sequence "TODO(t)" "WAITING(w)" "SCHEDULED(s)" "ACTIVE(a)" "|" "DONE(d)" "CANCELED(c)")))
|
||||
|
||||
;; capture templates
|
||||
(setq org-capture-templates
|
||||
'(("t" "Todo" entry (file+headline "~/Dropbox/org/agenda.org" "Tasks")
|
||||
"* TODO %?\nAdded: %U\n" :prepend t :kill-buffer t)))
|
||||
|
||||
(setq org-latex-listings 'minted
|
||||
org-latex-packages-alist
|
||||
'(("" "minted" t)
|
||||
("" "tikz" t)))
|
||||
|
||||
(setq org-latex-pdf-process
|
||||
'("lualatex -shell-escape -interaction nonstopmode -output-directory %o %f"
|
||||
"lualatex -shell-escape -interaction nonstopmode -output-directory %o %f"))
|
||||
|
||||
(setq org-preview-latex-default-process 'imagemagick
|
||||
org-confirm-babel-evaluate nil)
|
||||
|
||||
(org-babel-do-load-languages
|
||||
'org-babel-load-languages
|
||||
'((emacs-lisp . t)
|
||||
(haskell . t)
|
||||
(python . t)
|
||||
(sql . t)
|
||||
(sqlite . t)
|
||||
(ditaa . t)
|
||||
(dot . t)
|
||||
(gnuplot . t)
|
||||
(latex . t)
|
||||
(plantuml . t)))
|
||||
|
||||
|
||||
:bind (("C-c c" . org-capture)
|
||||
("C-c a" . org-agenda)
|
||||
("C-c l" . org-store-link)))
|
||||
|
||||
(use-package org-projectile
|
||||
:ensure t
|
||||
:disabled
|
||||
:init
|
||||
(setq org-projectile-projects-file
|
||||
(f-join dotemacs/user-dropbox-directory "org" "projects.org"))
|
||||
(push (org-projectile-project-todo-entry) org-capture-templates)
|
||||
|
||||
(setq org-agenda-files
|
||||
(append org-agenda-files (org-projectile-todo-files)))
|
||||
|
||||
:bind (("C-c n p" . org-projectile-project-todo-completing-read)))
|
||||
|
||||
(use-package org-super-agenda
|
||||
:ensure t
|
||||
:disabled
|
||||
:after org-mode
|
||||
:config
|
||||
(org-super-agenda-mode +1)
|
||||
|
||||
(setq org-super-agenda-groups
|
||||
'((:order-multi (1 (:name "High priority"
|
||||
:priority> "C")))
|
||||
(:order-multi (1 (:name "Done today"
|
||||
:and (:regexp "State \"DONE\""
|
||||
:log t)))))))
|
||||
|
||||
(use-package elfeed
|
||||
:ensure t
|
||||
:commands elfeed
|
||||
:bind ("C-x w" . elfeed))
|
||||
|
||||
(use-package elfeed-org
|
||||
:ensure t
|
||||
:after elfeed
|
||||
:init
|
||||
(setq rmh-elfeed-org-files (list (f-expand "~/Dropbox/org/elfeed.org")))
|
||||
:config
|
||||
(elfeed-org))
|
||||
|
||||
(use-package tramp
|
||||
:ensure t
|
||||
:init
|
||||
(setq-default tramp-auto-save-directory (f-join dotemacs/user-cache-directory "tramp-auto-save/")
|
||||
tramp-backup-directory-alist backup-directory-alist
|
||||
tramp-persistency-file-name (f-join dotemacs/user-cache-directory "tramp-persistency.el"))
|
||||
(setq tramp-default-method "ssh"
|
||||
tramp-use-ssh-controlmaster-options ""))
|
||||
|
||||
(use-package json-mode
|
||||
:ensure t
|
||||
:mode ("\\.json\\'" . json-mode))
|
||||
|
||||
(use-package plantuml-mode
|
||||
:ensure t
|
||||
:mode (("\\.plantuml\\'" . plantuml-mode)
|
||||
("\\.puml\\'" . plantuml-mode))
|
||||
:init
|
||||
(setq plantuml-jar-path "~/bin/plantuml.jar"))
|
||||
|
||||
(use-package prodigy
|
||||
:ensure t
|
||||
:defer t
|
||||
:bind (([f12] . prodigy)))
|
||||
|
||||
(use-package yasnippet
|
||||
:ensure t
|
||||
:diminish yas-minor-mode
|
||||
:init
|
||||
(setq yas-snippet-dirs '("~/.emacs.d/snippets/private")
|
||||
yas-indent-line nil)
|
||||
:config
|
||||
(yas-reload-all)
|
||||
(yas-global-mode 1)
|
||||
|
||||
(unbind-key "TAB" yas-minor-mode-map)
|
||||
(unbind-key "<tab>" yas-minor-mode-map))
|
||||
|
||||
;; (use-package yasnippet-snippets
|
||||
;; :ensure t
|
||||
;; :after yasnippet)
|
||||
|
||||
(use-package tex
|
||||
:mode (("\\.tex\\'" . latex-mode))
|
||||
:ensure auctex
|
||||
:config
|
||||
;; Update PDF buffers after successful LaTeX runs
|
||||
(add-hook 'TeX-after-TeX-LaTeX-command-finished-hook #'TeX-revert-document-buffer)
|
||||
|
||||
(setq TeX-save-query nil
|
||||
TeX-auto-save t
|
||||
TeX-parse-self t
|
||||
TeX-PDF-mode t
|
||||
TeX-source-correlate-mode t
|
||||
TeX-source-correlate-start-server t
|
||||
TeX-source-correlate-method 'synctex
|
||||
LaTeX-fill-break-at-separators nil)
|
||||
|
||||
(add-to-list 'TeX-view-program-selection
|
||||
'(output-pdf "Zathura"))
|
||||
|
||||
(setq-default TeX-master nil
|
||||
TeX-engine 'luatex)
|
||||
|
||||
;; enable reftex integration
|
||||
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
|
||||
(setq reftex-plug-into-AUCTeX t)
|
||||
|
||||
(add-hook 'LaTeX-mode-hook 'flyspell-mode)
|
||||
(add-hook 'LaTeX-mode-hook 'flyspell-buffer)
|
||||
(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode))
|
||||
|
||||
(use-package auctex-latexmk
|
||||
:ensure t
|
||||
:init
|
||||
(setq auctex-latexmk-inherit-TeX-PDF-mode t)
|
||||
:config
|
||||
(auctex-latexmk-setup))
|
||||
|
||||
(use-package company-auctex
|
||||
:ensure t
|
||||
:mode (("\\.tex\\'" . latex-mode))
|
||||
:after (:all company auctex)
|
||||
:hook ((LaTeX-mode . company-auctex-init)
|
||||
(TeX-mode . company-auctex-init)))
|
||||
|
||||
(use-package markdown-mode
|
||||
:ensure t
|
||||
:mode (("README\\.md\\'" . gfm-mode)
|
||||
("\\.md\\'" . markdown-mode)
|
||||
("\\.markdown\\'" . markdown-mode)))
|
||||
|
||||
(use-package haskell-mode
|
||||
:ensure t
|
||||
:hook ((haskell-mode . haskell-indentation-mode)
|
||||
(haskell-mode . interactive-haskell-mode))
|
||||
:mode (("\\.hs\"" . haskell-mode))
|
||||
:commands haskell-mode
|
||||
:init
|
||||
(setq haskell-interactive-popup-errors nil
|
||||
haskell-ask-also-kill-buffers nil
|
||||
haskell-process-type 'auto))
|
||||
|
||||
(use-package hindent
|
||||
:ensure t
|
||||
:diminish hindent-mode
|
||||
:after haskell-mode
|
||||
:hook ((haskell-mode . hindent-mode)))
|
||||
|
||||
(use-package yaml-mode
|
||||
:ensure t
|
||||
:mode ("\\.yml\\'" . yaml-mode))
|
||||
|
||||
(use-package ini-mode
|
||||
:ensure t
|
||||
:mode ("\\.ini\\'" . ini-mode))
|
||||
|
||||
(use-package toml-mode
|
||||
:ensure t
|
||||
:mode (("\\.toml\\'" . toml-mode)
|
||||
("Pipfile" . toml-mode)))
|
||||
|
||||
(use-package js2-mode
|
||||
:ensure t
|
||||
:mode ("\\.js\\'" . js2-mode)
|
||||
:interpreter ("node" . js2-mode))
|
||||
|
||||
(use-package tern
|
||||
:ensure t
|
||||
:after js2-mode)
|
||||
|
||||
(use-package company-tern
|
||||
:ensure t
|
||||
:after (:all company tern)
|
||||
:hook (js2-mode . tern-mode)
|
||||
:config
|
||||
(add-to-list 'company-backends 'company-tern))
|
||||
|
||||
(use-package web-mode
|
||||
:ensure t
|
||||
:hook (web-mode . emmet-mode)
|
||||
:mode (("\\.html\\'" . web-mode))
|
||||
:init
|
||||
(setq web-mode-style-padding 4
|
||||
web-mode-script-padding 4
|
||||
web-mode-css-indent-offset 4
|
||||
web-mode-code-indent-offset 4
|
||||
web-mode-markup-indent-offset 2
|
||||
web-mode-enable-auto-quoting nil
|
||||
web-mode-comment-keywords t
|
||||
web-mode-enable-css-colorization t
|
||||
web-mode-enable-current-element-highlight t
|
||||
web-mode-enable-heredoc-fontification t
|
||||
web-mode-enable-comment-keywords t
|
||||
web-mode-enable-current-element-highlight t
|
||||
web-mode-enable-current-column-highlight t
|
||||
web-mode-enable-column-highlight t
|
||||
web-mode-engines-alist
|
||||
'(("jinja" . "\\.html\\'"))))
|
||||
|
||||
(use-package company-web
|
||||
:ensure t
|
||||
:after (:all company web-mode)
|
||||
:config
|
||||
(require 'company-web-html))
|
||||
|
||||
(use-package css-mode
|
||||
:ensure t
|
||||
:after web-mode
|
||||
:mode ("\\.css$" . css-mode)
|
||||
:config
|
||||
(setq css-indent-offset 4))
|
||||
|
||||
(use-package sass-mode
|
||||
:ensure t
|
||||
:after web-mode
|
||||
:mode ("\\.sass\\'" . sass-mode))
|
||||
|
||||
(use-package scss-mode
|
||||
:ensure t
|
||||
:after web-mode
|
||||
:mode ("\\.scss\\'" . scss-mode))
|
||||
|
||||
(use-package emmet-mode
|
||||
:ensure t
|
||||
:hook ((sgml-mode . emmet-mode)
|
||||
(css-mode . emmet-mode))
|
||||
:after web-mode
|
||||
:init
|
||||
(setq-default emmet-move-cursor-between-quotes t)
|
||||
:config
|
||||
(unbind-key "<C-return>" emmet-mode-keymap)
|
||||
(unbind-key "C-M-<left>" emmet-mode-keymap)
|
||||
(unbind-key "C-M-<right>" emmet-mode-keymap))
|
||||
|
||||
(use-package vue-mode
|
||||
:ensure t)
|
||||
|
||||
(use-package rust-mode
|
||||
:ensure t
|
||||
:mode ("\\.rs\\'" . rust-mode)
|
||||
:init
|
||||
(setq rust-format-on-save t))
|
||||
|
||||
(use-package macrostep
|
||||
:ensure t
|
||||
:defer t
|
||||
:bind (:map emacs-lisp-mode-map
|
||||
("C-c e" . macrostep-expand)))
|
||||
|
||||
(use-package systemd
|
||||
:ensure t)
|
||||
|
||||
(use-package nginx-mode
|
||||
:ensure t)
|
||||
|
||||
(defun insert-newline-above (count)
|
||||
"Insert one or several lines above the current point's line without changing
|
||||
the current state and point position."
|
||||
(interactive "p")
|
||||
(dotimes (_ count) (save-excursion (evil-insert-newline-above))))
|
||||
|
||||
(defun insert-newline-below (count)
|
||||
"Insert one or several lines below the current point's line without changing
|
||||
the current state and point position."
|
||||
(interactive "p")
|
||||
(dotimes (_ count) (save-excursion (evil-insert-newline-below))))
|
||||
|
||||
(defun dotemacs/scale-font-size (direction)
|
||||
"Scale the font. When DIRECTION is positive or zero, the font is scaled up,
|
||||
otherwise it is scaled down."
|
||||
(interactive)
|
||||
(let ((scale 0.5))
|
||||
(if (eq direction 0)
|
||||
(text-scale-set 0)
|
||||
(if (< direction 0)
|
||||
(text-scale-decrease scale)
|
||||
(text-scale-increase scale)))))
|
||||
|
||||
(defun dotemacs/increase-font-size ()
|
||||
"Increase font size."
|
||||
(interactive)
|
||||
(dotemacs/scale-font-size 1))
|
||||
|
||||
(defun dotemacs/decrease-font-size ()
|
||||
"Decrease font size."
|
||||
(interactive)
|
||||
(dotemacs/scale-font-size -1))
|
||||
|
||||
(defun dotemacs/reset-font-size ()
|
||||
"Reset font size."
|
||||
(interactive)
|
||||
(dotemacs/scale-font-size 0))
|
||||
|
||||
(defun dotemacs/rename-file-and-buffer (new-name)
|
||||
"Renames both current buffer and file it's visiting to NEW-NAME."
|
||||
(interactive "sNew name: ")
|
||||
(let ((name (buffer-name))
|
||||
(filename (buffer-file-name)))
|
||||
(if (not filename)
|
||||
(message "Buffer '%s' is not visiting a file!" name)
|
||||
(if (get-buffer new-name)
|
||||
(message "A buffer named '%s' already exists!" new-name)
|
||||
(progn
|
||||
(rename-file filename new-name 1)
|
||||
(rename-buffer new-name)
|
||||
(set-visited-file-name new-name)
|
||||
(set-buffer-modified-p nil))))))
|
Loading…
Reference in New Issue