2015-06-10 17:56:09 +00:00
|
|
|
* Compilation of quick HOW-TOs for Spacemacs
|
|
|
|
|
|
|
|
** Table of Contents :TOC@4:
|
|
|
|
- [[#compilation-of-quick-how-tos-for-spacemacs][Compilation of quick HOW-TOs for Spacemacs]]
|
2015-09-28 06:05:18 +00:00
|
|
|
- [[#disable-a-package-completely][Disable a package completely]]
|
|
|
|
- [[#disable-a-package-only-for-a-specific-major-mode][Disable a package only for a specific major-mode]]
|
|
|
|
- [[#disable-company-for-a-specific-major-mode][Disable company for a specific major-mode]]
|
|
|
|
- [[#change-special-buffer-rules][Change special buffer rules]]
|
|
|
|
- [[#enable-navigation-by-visual-lines][Enable navigation by visual lines]]
|
2015-09-30 09:17:51 +00:00
|
|
|
- [[#disable-evilification-of-a-mode][Disable evilification of a mode]]
|
2015-06-10 17:56:09 +00:00
|
|
|
|
|
|
|
** Disable a package completely
|
|
|
|
To completely disable a package and effectively uninstalling it even if
|
|
|
|
it is part of your used layers, look for the variable
|
|
|
|
=dotspacemacs-excluded-packages= in your dotfile and add the package
|
|
|
|
name to it:
|
|
|
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
(setq-default dotspacemacs-excluded-packages '(package1 package2 ...))
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
** Disable a package only for a specific major-mode
|
|
|
|
This is done by removing the hook added by Spacemacs. For example to
|
|
|
|
remove =flycheck= support in python buffers, look for the function
|
2015-09-28 06:05:18 +00:00
|
|
|
=dotspacemacs/user-config= in your dotfile and add the following code:
|
2015-06-10 17:56:09 +00:00
|
|
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
(remove-hook 'python-mode-hook 'flycheck-mode)
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
*Hint* to know the name of the major-mode of the current buffer press:
|
|
|
|
~SPC h d v major-mode RET~
|
|
|
|
|
|
|
|
** Disable company for a specific major-mode
|
|
|
|
It may be handy to disable =company= for a given mode if you plan on
|
|
|
|
configuring =auto-complete= instead. On easy way to do it is to use the
|
2015-09-28 06:05:18 +00:00
|
|
|
macro =spacemacs|disable-company= in the function =dotspacemacs/user-config=
|
2015-06-10 17:56:09 +00:00
|
|
|
of your dotfile. The following snippet disables company for
|
|
|
|
=python-mode=:
|
|
|
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
(spacemacs|disable-company python-mode)
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
** Change special buffer rules
|
|
|
|
To change the way spacemacs marks buffers as useless, you can customize
|
|
|
|
=spacemacs-useless-buffers-regexp= which marks buffers matching the
|
|
|
|
regexp as useless. The variable =spacemacs-useful-buffers-regexp= marks
|
|
|
|
buffers matching the regexp as useful buffers. Both can be customized
|
|
|
|
the same way.
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
;; Only mark helm buffers as useless
|
|
|
|
(setq spacemacs-useless-buffers-regexp '("\\*helm\.\+\\*"))
|
|
|
|
|
|
|
|
;; Marking the *Messages* buffer as useful
|
|
|
|
(push "\\*Messages\\*" spacemacs-useful-buffers-regexp)
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
** Enable navigation by visual lines
|
|
|
|
Add the following snippet to your =dostpacemacs/config= function:
|
|
|
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
;; Make evil-mode up/down operate in screen lines instead of logical lines
|
|
|
|
(define-key evil-motion-state-map "j" 'evil-next-visual-line)
|
|
|
|
(define-key evil-motion-state-map "k" 'evil-previous-visual-line)
|
|
|
|
;; Also in visual mode
|
|
|
|
(define-key evil-visual-state-map "j" 'evil-next-visual-line)
|
|
|
|
(define-key evil-visual-state-map "k" 'evil-previous-visual-line)
|
|
|
|
#+end_src
|
2015-09-30 09:17:51 +00:00
|
|
|
|
|
|
|
** Disable evilification of a mode
|
|
|
|
You can ensure a mode opens in emacs state by using =evil-set-initial-state=.
|
|
|
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
(evil-set-initial-state 'magit-status-mode 'emacs)
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
You can also do this using buffer name regular expressions. E.g. for magit,
|
|
|
|
which has a number of different major modes, you can catch them all with
|
|
|
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
(push '("*magit" . emacs) evil-buffer-regexps)
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
This should make all original magit bindings work in the major modes in
|
|
|
|
question. To enable the leader key in this case, you may have to define a
|
|
|
|
binding in the mode's map, e.g. for =magit-status-mode=,
|
|
|
|
|
|
|
|
#+begin_src emacs-lisp
|
|
|
|
(define-key magit-status-mode-map
|
|
|
|
dotspacemacs-leader-key evil-leader--default-map)
|
|
|
|
#+end_src
|