74689e0c22
Should fix #4375
409 lines
19 KiB
Org Mode
409 lines
19 KiB
Org Mode
#+TITLE: Frequently Asked Questions
|
||
#+HTML_HEAD_EXTRA: <link rel="stylesheet" type="text/css" href="../css/readtheorg.css" />
|
||
|
||
* FAQ :TOC_4_org:noexport:
|
||
- [[Common][Common]]
|
||
- [[Which version of Spacemacs am I running?][Which version of Spacemacs am I running?]]
|
||
- [[What is the official pronunciation of Spacemacs?][What is the official pronunciation of Spacemacs?]]
|
||
- [[Why are packages installed with =package-install= automatically deleted by Spacemacs when it boots?][Why are packages installed with =package-install= automatically deleted by Spacemacs when it boots?]]
|
||
- [[How to fix package download errors when installing Spacemacs ?][How to fix package download errors when installing Spacemacs ?]]
|
||
- [[The Spacemacs banner is ugly, what should I do?][The Spacemacs banner is ugly, what should I do?]]
|
||
- [[The powerline separators are ugly, how can I fix them?][The powerline separators are ugly, how can I fix them?]]
|
||
- [[The powerline separators have no anti-aliasing, what can I do?][The powerline separators have no anti-aliasing, what can I do?]]
|
||
- [[Why is after-init-hook not executed?][Why is after-init-hook not executed?]]
|
||
- [[What is the difference between =spacemacs-base= and =spacemacs= distributions?][What is the difference between =spacemacs-base= and =spacemacs= distributions?]]
|
||
- [[Should I place my settings in =user-init= or =user-config=?][Should I place my settings in =user-init= or =user-config=?]]
|
||
- [[Why do some of my =org=-related settings cause problems?][Why do some of my =org=-related settings cause problems?]]
|
||
- [[Why is Spacemacs hanging on startup?][Why is Spacemacs hanging on startup?]]
|
||
- [[Why does =helm-M-x= (~SPC :~) not accept the prefix argument?][Why does =helm-M-x= (~SPC :~) not accept the prefix argument?]]
|
||
- [[Why does my color theme not render correctly in terminal mode?][Why does my color theme not render correctly in terminal mode?]]
|
||
- [[Why do I get =(wrong-type-argument arrayp nil)= errors on startup?][Why do I get =(wrong-type-argument arrayp nil)= errors on startup?]]
|
||
- [[How do I...][How do I...]]
|
||
- [[Install a package not provided by a layer?][Install a package not provided by a layer?]]
|
||
- [[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 evilification of a mode?][Disable evilification of a mode?]]
|
||
- [[Include underscores in word motions?][Include underscores in word motions?]]
|
||
- [[Setup =$PATH=?][Setup =$PATH=?]]
|
||
- [[Change or define an alias for a leader key?][Change or define an alias for a leader key?]]
|
||
- [[Restore the sentence delimiter to two spaces?][Restore the sentence delimiter to two spaces?]]
|
||
- [[Prevent the visual selection overriding my system clipboard?][Prevent the visual selection overriding my system clipboard?]]
|
||
- [[Make spell-checking support curly quotes (or any other character)?][Make spell-checking support curly quotes (or any other character)?]]
|
||
- [[Use Spacemacs as the =$EDITOR= for git commits?][Use Spacemacs as the =$EDITOR= for git commits?]]
|
||
- [[Windows][Windows]]
|
||
- [[Why do the fonts look crappy on Windows?][Why do the fonts look crappy on Windows?]]
|
||
- [[Why is there no Spacemacs logo in the startup buffer?][Why is there no Spacemacs logo in the startup buffer?]]
|
||
- [[Why are all packages unavailable?][Why are all packages unavailable?]]
|
||
- [[The powerline isn't shown correctly when Spacemacs is used within =PuTTY=.][The powerline isn't shown correctly when Spacemacs is used within =PuTTY=.]]
|
||
- [[OS X][OS X]]
|
||
- [[Why are the powerline colors not correct on OS X?][Why are the powerline colors not correct on OS X?]]
|
||
|
||
* Common
|
||
** Which version of Spacemacs am I running?
|
||
The version is displayed on the upper right corner of the loading screen. You
|
||
may also just type ~SPC f e v~.
|
||
|
||
** What is the official pronunciation of Spacemacs?
|
||
As it is written, that is _space_ then _macs_.
|
||
|
||
** Why are packages installed with =package-install= automatically deleted by Spacemacs when it boots?
|
||
To declare new packages you have to create a new configuration layer or
|
||
add the package name to the variable =dotspacemacs-additonal-packages=
|
||
of your dotfile, see the [[file:QUICK_START.org][quick start guide]] for more info.
|
||
|
||
** How to fix package download errors when installing Spacemacs ?
|
||
Since 0.105.0 HTTPS protocol is used by default to download packages. If your
|
||
environment does not allow HTTPS to reach ELPA repositories then you can start
|
||
Emacs with the =--insecure= argument for force the usage of HTTP non secured
|
||
protocol.
|
||
Then you can set the variable =dotspacemacs-elpa-https= to =nil= in your
|
||
dotfile to remove the need to start Emacs with =--insecure== argument.
|
||
|
||
** The Spacemacs banner is ugly, what should I do?
|
||
Install the default font supported by Spacemacs or choose a fixed width font.
|
||
More information in the font section of the [[file:DOCUMENTATION.org][documentation]].
|
||
|
||
** The powerline separators are ugly, how can I fix them?
|
||
Use the property =:powerline-scale= of the variable =dotspacemacs-default-font=.
|
||
See font section of the [[file:DOCUMENTATION.org][documentation]] for more details.
|
||
|
||
** The powerline separators have no anti-aliasing, what can I do?
|
||
Emacs powerline uses XMP images to draw the separators in a graphical
|
||
environment. You can have anti-aliasing if you use the =utf8= separator. Note
|
||
that by default the =utf8= separator is used in a terminal. See the powerline
|
||
section in the font section of the [[file:DOCUMENTATION.org][documentation]].
|
||
|
||
** Why is after-init-hook not executed?
|
||
Don't launch Spacemacs with =emacs -q -l init.el= command. This command will run
|
||
the hooked functions in =after-init-hook= before the evaluation of the passed =-l
|
||
init.el= file.
|
||
|
||
** What is the difference between =spacemacs-base= and =spacemacs= distributions?
|
||
The =distribution= concept was introduced in 0.104.x. You can now choose
|
||
between two distributions =spacemacs= or =spacemacs-base=.
|
||
=spacemacs-base= contains only a minimal set of packages; whereas =spacemacs=
|
||
is the full Spacemacs experience.
|
||
Set the distribution with =dotspacemacs-distribution= variable. The default is
|
||
=spacemacs=. For more information as to what is included,
|
||
check out the =packages.el= file in the respective folders in the
|
||
=+distribution= folder of the =layers/= directory.
|
||
|
||
** Should I place my settings in =user-init= or =user-config=?
|
||
Any variable that layer configuration code will *read* and *act on* must be set
|
||
in =user-init=, and any variable that Spacemacs explicitly sets but you wish to
|
||
*override* must be set in =user-config=.
|
||
|
||
Anything that isn't just setting a variable should 99% be in =user-config=.
|
||
|
||
** Why do some of my =org=-related settings cause problems?
|
||
Since version 0.104, spacemacs uses the =org= version from the org ELPA
|
||
repository instead of the one shipped with emacs. Then, any =org= related code
|
||
should not be loaded before =dotspacemacs/user-config=, otherwise both versions
|
||
will be loaded and will conflict.
|
||
|
||
Because of autoloading, calling to =org= functions will trigger the loading up
|
||
of the =org= shipped with emacs wich will induce conflicts.
|
||
One way to avoid conflict is to wrap your =org= config code in a
|
||
=with-eval-after-load= block like this:
|
||
|
||
#+BEGIN_SRC emacs-lisp
|
||
(with-eval-after-load 'org
|
||
;; here goes your Org config :)
|
||
;; ....
|
||
)
|
||
#+END_SRC
|
||
|
||
** Why is Spacemacs hanging on startup?
|
||
This is probably related to Helm using Tramp which tries to figure out some
|
||
SSH/DNS settings at startup. The root cause is probably your ISP redirecting
|
||
non-existing addresses to their own servers.
|
||
|
||
Try using these settings in the ~user-init~ function in your ~.spacemacs~
|
||
configuration:
|
||
|
||
#+BEGIN_SRC emacs-lisp
|
||
(setq tramp-ssh-controlmaster-options
|
||
"-o ControlMaster=auto -o ControlPath='tramp.%%C' -o ControlPersist=no")
|
||
#+END_SRC
|
||
|
||
See [[https://github.com/syl20bnr/spacemacs/issues/3422#issuecomment-148919047][issue #3422]] and [[https://github.com/emacs-helm/helm/issues/1000#issuecomment-119487649][helm issue #1000]] for details. If for any reason this code is
|
||
not working, you can try to put these settings directly in =~/.ssh/config=:
|
||
|
||
#+begin_SRC ssh
|
||
Host *
|
||
ControlMaster auto
|
||
ControlPath ~/.ssh/master -%r@%h:%p
|
||
ControlPersist = no
|
||
#+end_SRC
|
||
|
||
** Why does =helm-M-x= (~SPC :~) not accept the prefix argument?
|
||
If you try to run =helm-M-x= with the prefix argument (i.e. ~SPC u SPC :~) it
|
||
will fail with this message:
|
||
|
||
#+begin_verse
|
||
Error: Specifying a prefix arg before calling helm-M-x
|
||
#+end_verse
|
||
|
||
Instead, call =helm-M-x= first, select the command you want to run, and press
|
||
~C-u~ before pressing ~RETURN~. For instance: ~SPC : org-reload C-u RET~
|
||
|
||
** Why does my color theme not render correctly in terminal mode?
|
||
In the terminal version of Emacs, color themes will not render correctly as
|
||
colors are rendered by the terminal and not by emacs. You will probably have to
|
||
change your terminal color palette. More explanations can be found on
|
||
[[https://github.com/sellout/emacs-color-theme-solarized#important-note-for-terminal-users][emacs-color-theme-solarized webpage]].
|
||
|
||
** Why do I get =(wrong-type-argument arrayp nil)= errors on startup?
|
||
This is most likely caused by a corrupted package archive. Try deleting your
|
||
=~/.emacs.d/elpa/archives/= folder and restart Emacs.
|
||
|
||
* How do I...
|
||
** Install a package not provided by a layer?
|
||
Spacemacs provides a variable in the =dotspacemacs/layers= function in
|
||
=.spacemacs= called =dotspacemacs-additional-packages=. Just add a package name
|
||
to the list and it will be installed when you reload your configuration with
|
||
~SPC f e R~, or at the next Spacemacs launch.
|
||
|
||
** 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. One 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
|
||
|
||
** 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
|
||
(with-eval-after-load 'magit
|
||
(define-key magit-status-mode-map
|
||
(kbd dotspacemacs-leader-key) spacemacs-default-map))
|
||
#+end_src
|
||
|
||
** Include underscores in word motions?
|
||
You can modify the syntax table of the mode in question. For example, for Python
|
||
mode:
|
||
|
||
#+begin_src emacs-lisp
|
||
(with-eval-after-load 'python
|
||
(modify-syntax-entry ?_ "w" python-mode-syntax-table))
|
||
#+end_src
|
||
|
||
** Setup =$PATH=?
|
||
Some layers require certain tools to be available on your =$PATH=. This means
|
||
that your =$PATH= must contain the installation paths for those tools. For
|
||
example, if you have installed some tools to =~/.local/bin= and want them to be
|
||
available in Spacemacs, you need to add =~/.local/bin= to your =$PATH=.
|
||
|
||
Users of =bash=, =zsh=, =sh= and other similar shells should add following line
|
||
to their =.bashrc= (=.zshrc=, =.profile= or your shell's equivalent). Note that
|
||
the =export= part is very important.
|
||
|
||
#+BEGIN_SRC sh
|
||
export PATH=~/.local/bin:$PATH
|
||
#+END_SRC
|
||
|
||
Users of =fish= should add following line to their =config.fish= file (should be
|
||
in =$XDG_CONFIG_HOME= or its default value - =~/.config/fish=). Note that =-x=
|
||
part is very important.
|
||
|
||
#+BEGIN_SRC fish
|
||
set -x PATH ~/.local/bin $PATH
|
||
#+END_SRC
|
||
|
||
Users of other shells should consult its documentation on how to setup =$PATH=
|
||
variable (with export to environment).
|
||
|
||
So now, =~/.local/bin= should be available in your =$PATH=. You can verify this
|
||
by calling =echo $PATH=. But you also should verify that =$PATH= is set properly
|
||
in your environment. To do so call following command in your terminal.
|
||
|
||
#+BEGIN_SRC sh
|
||
$ env | grep "PATH"
|
||
#+END_SRC
|
||
|
||
This is the value that will be used by Emacs. So it must contain =~/.local/bin=.
|
||
|
||
After that you can run Spacemacs and check that it properly gets the value of
|
||
=$PATH= by running =M-: (getenv "PATH")=.
|
||
|
||
Note that having =~/.local.bin= in your =$PATH= also means that it's possible to
|
||
run terminal and call tools from =~/.local/bin= without specifying their full
|
||
path. Under certain conditions you might want to avoid modifying your =$PATH=.
|
||
In that case you have the option of updating the value of =exec-path= in the
|
||
=dotspacemacs/user-config= function of your =.spacemacs= file.
|
||
|
||
#+BEGIN_SRC emacs-lisp
|
||
(add-to-list 'exec-path "~/.local/bin/")
|
||
#+END_SRC
|
||
|
||
** Change or define an alias for a leader key?
|
||
It is possible to change a leader key by binding its keymap to another sequence.
|
||
For instance, if you want to switch ~SPC S~ (spelling) with ~SPC d~ (used by
|
||
dash) to make the former easier to reach, you can use:
|
||
|
||
#+begin_src emacs-lisp
|
||
(defun dear-leader/swap-keys (key1 key2)
|
||
(let ((map1 (lookup-key spacemacs-default-map key1))
|
||
(map2 (lookup-key spacemacs-default-map key2)))
|
||
(spacemacs/set-leader-keys key1 map2 key2 map1)))
|
||
(dear-leader/swap-keys "S" "d")
|
||
#+end_src
|
||
|
||
If you want to define your own alias, like using ~SPC é~ (because it's a not
|
||
used key on your keyboard-layout for instance) for accessing ~SPC w~ (windows
|
||
management), you can use this:
|
||
|
||
#+begin_src emacs-lisp
|
||
(defun dear-leader/alias-of (key1 key2)
|
||
(let ((map (lookup-key spacemacs-default-map key2)))
|
||
(spacemacs/set-leader-keys key1 map)))
|
||
(dear-leader/alias-of "é" "w")
|
||
#+end_src
|
||
|
||
** Restore the sentence delimiter to two spaces?
|
||
To restore the sentence delimiter to two spaces, add the following code to the
|
||
=dotspacemacs/user-init= function of your =.spacemacs=:
|
||
|
||
#+begin_src emacs-lisp
|
||
(setq sentence-end-double-space t)
|
||
#+end_src
|
||
|
||
** Prevent the visual selection overriding my system clipboard?
|
||
On some operating systems, there is only one clipboard for both *copied* and
|
||
*selected* texts. This has the consequence that visual *selection* – which
|
||
should normally be saved to the /PRIMARY/ clipboard – overrides the /SYSTEM/
|
||
clipboard, where normally goes the *copied* text. This can be corrected by
|
||
adding the following code to the =dotspacemacs/user-config= of your
|
||
=.spacemacs=:
|
||
|
||
#+begin_src emacs-lisp
|
||
(fset 'evil-visual-update-x-selection 'ignore)
|
||
#+end_src
|
||
|
||
** Make spell-checking support curly quotes (or any other character)?
|
||
To have spell-checking support curly quotes (or any other character), you need
|
||
to add a new entry to =ispell-local-dictionary-alist=, by adding for example the
|
||
following code in the =dotspacemacs/user-config= of your =.spacemacs=:
|
||
|
||
#+begin_SRC emacs-lisp
|
||
(add-to-list 'ispell-local-dictionary-alist
|
||
(quote ("my_english" "[[:alpha:]]" "[^[:alpha:]]" "['’]" t ("-d" "en_US") nil utf-8)))
|
||
#+end_SRC
|
||
|
||
You can then add any regular expression you want in the fourth argument (i.e.
|
||
add a symbol within =['’]=) to make it supported. Consult the help of
|
||
=ispell-dictionary-alist= for more details about the possibilities.
|
||
|
||
You finally have to set =my_english= as your =ispell-local-dictionary= in order
|
||
to use the dictionary supporting your newly added characters.
|
||
|
||
** Use Spacemacs as the =$EDITOR= for git commits?
|
||
Spacemacs can be used as the =$EDITOR= (or =$GIT_EDITOR=) for editing git
|
||
commits messages. To enable this you have to add the following line to your
|
||
=dotspacemacs/user-config=:
|
||
|
||
#+begin_src emacs-lisp
|
||
(global-git-commit-mode t)
|
||
#+end_src
|
||
|
||
* Windows
|
||
** Why do the fonts look crappy on Windows?
|
||
You can install [[https://code.google.com/p/mactype/][MacType]] on Windows to get very nice looking fonts. It is
|
||
also recommended to disable smooth scrolling on Windows.
|
||
|
||
** Why is there no Spacemacs logo in the startup buffer?
|
||
A GUI build of emacs supporting image display is required.
|
||
You can follow the instructions [[http://stackoverflow.com/questions/2650041/emacs-under-windows-and-png-files][here]]. Alternatively you can download binaries
|
||
of emacs with image support included such as [[http://emacsbinw64.sourceforge.net/][this one]].
|
||
|
||
** Why are all packages unavailable?
|
||
Check if your Emacs has HTTPS capabilities by doing =M-:= and then:
|
||
|
||
#+begin_src emacs-lisp
|
||
(gnutls-available-p)
|
||
#+end_src
|
||
|
||
If this returns =nil=, you need to install the GnuTLS DDL file in the same
|
||
directory as Emacs. See [[https://www.gnu.org/software/emacs/manual/html_mono/emacs-gnutls.html#Help-For-Users][here]] for instructions.
|
||
|
||
** The powerline isn't shown correctly when Spacemacs is used within =PuTTY=.
|
||
You can follow [[http://mschulte.nl/posts/using-powerline-in-PuTTY.html][this explanation]] explaining how to correct this.
|
||
|
||
* OS X
|
||
** Why are the powerline colors not correct on OS X?
|
||
This is a [[https://github.com/milkypostman/powerline/issues/54][known issue]] as of Emacs 24.4 due to =ns-use-srgb-colorspace=
|
||
defaulting to true. It is recommended to use the [[http://github.com/railwaycat/homebrew-emacsmacport][emacs-mac-port]] build. See the
|
||
install section in the [[file:../README.md][README]] for more details.
|