50_Emacs on SSH setup - normalform/freebsd_setup GitHub Wiki

edit or create .emacs/init.el file

  • inhibit startup message
;; inhibit startup message
(setq inhibit-startup-message t)
  • enable line numbers in all programming modes
;; enable line numbers in all programming modes
(add-hook 'prog-mode-hook 'linum-mode)
(setq linum-format "%4d ")
  • use package
;; use package
(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives
             '("melpa" . "https://melpa.org/packages/"))
(package-initialize)

(unless (package-installed-p 'use-package)
  (package-refresh-contents)
  (package-install 'use-package))
;; use ace window
(use-package ace-window
  :ensure t
  :config
  (setq aw-scope 'frame) ;; was global
  (global-set-key (kbd "C-x O") 'other-frame)
  (global-set-key [remap other-window] 'ace-window))
;; use consult
(use-package consult :ensure t)
  • use counsel
;; use counsel
(use-package counsel
  :ensure t
  :bind
  (("M-y" . counsel-yank-pop)
   :map ivy-minibuffer-map
   ("M-y" . ivy-next-line)))
  • use ivy
;; use ivy
(use-package ivy
  :ensure t
  :diminish (ivy-mode)
  :bind (("C-x b" . ivy-switch-buffer))
  :config
  (ivy-mode 1)
  (setq ivy-use-virtual-buffers t)
  (setq ivy-count-format "%d/%d ")
  (setq ivy-display-style 'fancy))
  • use ctrlf
;; ctrlf
(use-package ctrlf
  :ensure t)
(ctrlf-mode +1)
  • use bufler
;; bufler
(use-package bufler
  :ensure t)
(defun mz/bufler-one-window (&optional force-refresh)
  (interactive "p")
  (bufler-list)
  (delete-other-windows))
  • use flycheck
;; use flycheck
(use-package flycheck
  :ensure t
  :init
  (global-flycheck-mode t))
  • use hydra
;; use hydra
(use-package hydra :ensure t)
  • use origami
;; origami
(use-package origami :ensure t)
(defhydra hydra-origami (:color red)
  "
  _o_pen node    _n_ext fold       toggle _f_orward
  _c_lose node   _p_revious fold   toggle _a_ll
  "
  ("o" origami-open-node)
  ("c" origami-close-node)
  ("n" origami-next-fold)
  ("p" origami-previous-fold)
  ("f" origami-forward-toggle-node)
  ("a" origami-toggle-all-nodes))
  • use elpy for python

make sure .emacs.d/elpy/rpc-venv/ is configured and dependent packages (e.g., jedi, rope, flake8, ..) were installed.

(setenv "PATH" (concat (getenv "PATH") ":~/.local/bin"))
(setq exec-path (append exec-path '("~/.local/bin")))
(use-package elpy :ensure t)
(elpy-enable)