Skip to content

Ino4137/.emacs.d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

Packages and Themes

use-package

;;; Until I embrace the declarative nix autism
(unless (package-installed-p 'use-package)
  (package-refresh-contents)
  (package-install 'use-package))

diminish

(use-package diminish
  :ensure t
  :init
  (diminish 'which-key-mode)
  (diminish 'subword-mode)
  (diminish 'rainbow-mode)
  (diminish 'auto-revert-mode)
  (diminish 'company-mode)
  (diminish 'eldoc-mode))

spacemacs-theme

(unless (package-installed-p 'spacemacs-theme)
  (package-refresh-contents)
  (package-install 'spacemacs-theme))

spaceline

(use-package spaceline
  :ensure t
  :config
  (require 'spaceline-config)
  (setq powerline-default-separator (quote arrow))
  (spaceline-spacemacs-theme))

which-key

(use-package which-key
  :ensure t
  :diminish which-key-mode
  :init
  (which-key-mode))

switch-window

(use-package switch-window
  :ensure t
  :config
  (setq switch-window-input-style 'minibuffer)
  (setq switch-window-increase 4)
  (setq switch-window-threshold 2)
  (setq switch-window-shortcut-style 'qwerty)
  (setq switch-window-qwerty-shortcuts
	  '("a" "s" "d" "f" "j" "k" "l"))
  :bind
  ([remap other-window] . switch-window))

avy

(use-package avy
  :ensure t
  :bind
  ("M-s" . avy-goto-char))

sudo-edit

(use-package sudo-edit
  :ensure t
  :bind ("C-M-e" . sudo-edit))

rainbow-mode

(use-package rainbow-mode
  :ensure t
  :diminish rainbow-mode
  :init (rainbow-mode 1))

rainbow-delimiters

(use-package rainbow-delimiters
  :ensure t
  :init
  (rainbow-delimiters-mode 1))

dashboard

(use-package dashboard
  :ensure t
  :config
  (dashboard-setup-startup-hook)
  (setq dashboard-items '((recents . 10)))
  (setq dashboard-banner-logo-title "Rise and Shine"))

magit

(use-package magit
  :ensure t)
(global-set-key (kbd "C-x g") 'magit-status)

company

(use-package company
  :ensure t
  :diminish company-mode
  :init
  (add-hook 'after-init-hook 'global-company-mode))
(setq company-idle-delay 0)
(setq company-minimum-prefix-length 1)
(setq company-selection-wrap-around t)
(company-tng-configure-default)

multiple-cursors

(use-package multiple-cursors
  :ensure t)
(global-set-key (kbd "C-,") 'mc/mark-previous-like-this)
(global-set-key (kbd "C-.") 'mc/mark-next-like-this)
(global-set-key (kbd "C-c C-.") 'mc/mark-all-like-this)

Language Modes

haskell-mode

(use-package haskell-mode
  :ensure t)

racket-mode

(use-package racket-mode
  :ensure t)

Org

Configuration

(setq org-src-window-setup 'current-window)
(add-to-list 'org-structure-template-alist
	       '("el" "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC"))
(add-hook 'org-mode-hook (lambda () (company-mode -1)))

Org Bullets

(use-package org-bullets
  :ensure t
  :config
  (add-hook 'org-mode-hook (lambda () (org-bullets-mode))))

IDO

enable and setup ido

(setq ido-enable-flex-matching nil)
(setq ido-create-new-buffer 'always)
(setq ido-everywhere t)
(ido-mode 1)

ido-vertical

(use-package ido-vertical-mode
  :ensure t
  :init
  (ido-vertical-mode 1))
(setq ido-vertical-define-keys 'C-n-and-C-p-only)

smex

(use-package smex
  :ensure t
  :init (smex-initialize)
  :bind
  ("M-x" . smex))

switch buffer remap

(global-set-key (kbd "C-x C-b") 'ido-switch-buffer)

Terminal

Set zsh as terminal

(defadvice ansi-term (before force-bash)
  (interactive (list "/bin/zsh")))
(ad-activate 'ansi-term)

Set keybinding for ansi-term

(global-set-key (kbd "<s-return>") 'ansi-term)

QOL Config

No autosave, no backup file

(setq make-backup-files nil)
(setq auto-save-default nil)
(setq create-lockfiles nil)

Remove ugly UI elements

(tool-bar-mode -1)
(menu-bar-mode -1)
(scroll-bar-mode -1)

y-or-n instead of yes-or-no

(defalias 'yes-or-no-p 'y-or-n-p)

Highlight current line

;;; On some terminals it looks atrocious, only use with the GUI
(when window-system (global-hl-line-mode t)) 

Prettify symbols

;;; Don't trust any terminal to display unicode properly
;;; Will probably have to disable it in agda-mode
(when window-system (global-prettify-symbols-mode t))

Disable startup popup

(setq inhibit-startup-message t)

Scroll with the cursor

(setq scroll-conservatively 100)

Disable the jumpscare bell

(setq ring-bell-function 'ignore)

Enable ibuffer

(global-set-key (kbd "C-x b") 'ibuffer)

Camel case fix

(global-subword-mode 1)

Electric

  (setq electric-pair-pairs '(
			      (?\( . ?\))
			      (?\[ . ?\])
			      (?\{ . ?\})
			      ))
;; for now disabled will see how it goes  (electric-pair-mode 1)

Enable line and column modes

(line-number-mode 1)
(column-number-mode 1)

Time

(setq display-time-24hr-format t)
(display-time-mode 1)

Custom functions

config-visit

(defun config-visit ()
  (interactive)
  (find-file "~/.emacs.d/README.org"))
(global-set-key (kbd "C-c e") 'config-visit)

config-reload

(defun config-reload ()
  (interactive)
  (org-babel-load-file (expand-file-name "~/.emacs.d/README.org")))
(global-set-key (kbd "C-c r") 'config-reload)

splitting windows and following

(defun split-and-follow-horizontally ()
  (interactive)
  (split-window-below)
  (balance-windows)
  (other-window 1))
(global-set-key (kbd "C-x 2") 'split-and-follow-horizontally)

(defun split-and-follow-vertically ()
  (interactive)
  (split-window-right)
  (balance-windows)
  (other-window 1))
(global-set-key (kbd "C-x 3") 'split-and-follow-vertically)

kill-whole-word

(defun kill-whole-word ()
  (interactive)
  (forward-word)
  (backward-word)
  (kill-word 1))
(global-set-key (kbd "M-d") 'kill-whole-word)

kill-current-buffer

;; Override for smex
(defun kill-curr-buffer ()
  (interactive)
  (kill-buffer (current-buffer)))
(global-set-key (kbd "C-x k") 'kill-curr-buffer)

copy-whole-line

 (defun copy-whole-line ()
   (interactive)
   (save-excursion
     (kill-new
      (buffer-substring
	(point-at-bol)
	(point-at-eol)))))
 (global-set-key (kbd "M-k") 'copy-whole-line)

kill-all-buffers

(defun kill-all-buffers ()
  (interactive)
  (mapc 'kill-buffer (buffer-list)))
(global-set-key (kbd "C-M-s-k") 'kill-all-buffers)

eval-and-replace

 (defun eval-and-replace ()
   "Replace the preceding sexp with its value"
   (interactive)
   (backward-kill-sexp)
   (condition-case nil
	(prin1 (eval (read (current-kill 0)))
	       (current-buffer))
     (error (message "Invalid expression")
	     (insert (current-kill 0)))))
 (global-set-key (kbd "C-c C-e") 'eval-and-replace)

About

my emacs config

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published