* 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]]
   - [[#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]]

** 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
=dotspacemacs/user-config= in your dotfile and add the following code:

#+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
macro =spacemacs|disable-company= in the function =dotspacemacs/user-config=
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