user-config?”>Should I place my settings in user-init or user-config?insert state. What is going on?”>Typing quickly fd takes me out of insert state. What is going on?The version is displayed on the upper right corner of the loading screen. You
may also just type SPC f e v.
As it is written, that is space then macs.
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 quick start guide for more info.
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. You can set the variable dotspacemacs-elpa-https to nil in your
dotfile to remove the need to start Emacs with --insecure= argument.
Install the default font supported by Spacemacs or choose a fixed width font. More information in the font section of the documentation.
Use the property :powerline-scale of the variable dotspacemacs-default-font.
See font section of the documentation for more details.
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 documentation.
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.
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.
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.
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:
(with-eval-after-load 'org
;; here goes your Org config :)
;; ....
)
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:
(setq tramp-ssh-controlmaster-options
"-o ControlMaster=auto -o ControlPath='tramp.%%C' -o ControlPersist=no")
See issue #3422 and 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:
Host *
ControlMaster auto
ControlPath ~/.ssh/master -%r@%h:%p
ControlPersist = no
helm-M-x (SPC SPC) not accept the prefix argument?If you try to run helm-M-x with the prefix argument (i.e. SPC u SPC SPC) it
will fail with this message:
Instead, call helm-M-x first, select the command you want to run, and press
C-u before pressing RETURN. For instance: SPC SPC org-reload C-u RET
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 emacs-color-theme-solarized webpage.
(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.
fd takes me out of insert state. What is going on?This is a feature of Spacemacs, enabling you to easily escape from a lot of
situations, like escaping from insert state to normal state.
The sequence of characters used can be customized. See the documentation for more information.
If you don’t like this feature, you can deactivate it by adding evil-escape to
dotspacemacs-excluded-packages in your init file.
These are lockfiles, created by Emacs to prevent editing conflicts which occur when the same file is edited simultaneously by two different programs. To disable this behaviour:
(setq create-lockfiles nil)
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.
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:
(setq-default dotspacemacs-excluded-packages '(package1 package2 ...))
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:
(remove-hook 'python-mode-hook 'flycheck-mode)
Hint to know the name of the major-mode of the current buffer press: SPC h d
v major-mode RET
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:
(spacemacs|disable-company python-mode)
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:
;; Only mark helm buffers as useless
(setq spacemacs-useless-buffers-regexp '("\\*helm\.\+\\*"))
;; Marking the *Messages* buffer as useful
(push "\\*Messages\\*" spacemacs-useful-buffers-regexp)
Add the following snippet to your dostpacemacs/config function:
;; 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)
You can ensure a mode opens in emacs state by using evil-set-initial-state.
(evil-set-initial-state 'magit-status-mode 'emacs)
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
(push '("*magit" . emacs) evil-buffer-regexps)
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,
(with-eval-after-load 'magit
(define-key magit-status-mode-map
(kbd dotspacemacs-leader-key) spacemacs-default-map))
You can modify the syntax table of the mode in question. To do so you can
include this on your dotspacemacs/user-config.
;; For python
(add-hook 'python-mode-hook #'(lambda () (modify-syntax-entry ?_ "w")))
;; For ruby
(add-hook 'ruby-mode-hook #'(lambda () (modify-syntax-entry ?_ "w")))
;; For Javascript
(add-hook 'js2-mode-hook #'(lambda () (modify-syntax-entry ?_ "w")))
$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.
export PATH=~/.local/bin:$PATH
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.
set -x PATH ~/.local/bin $PATH
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.
env | grep "PATH"
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.
(add-to-list 'exec-path "~/.local/bin/")
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:
(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")
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:
(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")
To restore the sentence delimiter to two spaces, add the following code to the
dotspacemacs/user-init function of your .spacemacs:
(setq sentence-end-double-space t)
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:
(fset 'evil-visual-update-x-selection 'ignore)
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:
(add-to-list 'ispell-local-dictionary-alist
(quote ("my_english" "[[:alpha:]]" "[^[:alpha:]]" "['’]" t ("-d" "en_US") nil utf-8)))
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.
$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:
(global-git-commit-mode t)
Emacs’ ability to use any directory as the home for launching it allows us to
try out Spacemacs (or any other Emacs configuration we desire) without having to
go through the trouble of backing up our ~/.emacs.d directory and then cloning
the new configuration. This can be achieved easily using the following steps:
mkdir ~/spacemacs
git clone git@github.com:syl20bnr/spacemacs.git ~/spacemacs/.emacs.d
HOME=~/spacemacs emacs
If you’re on Fish shell, you will need to modify the last command to:
env HOME=$HOME/spacemacs emacs
It is possible to disable the mouse support in X11 terminals in order to
enable copying/pasting with the mouse. You need to add this line to your
dotspacemacs/user-config:
(xterm-mouse-mode -1)
helm-ag to search only in files of a certain type?It is possible to restrict the scope of helm-ag to search only expressions in
some specified file types. There is two way of doing this, both by appending
some expressions to the search input:
-G, for instance -G\.el$ will look for all files
ending with .el which are emacs-lisp files.--python which should be self-explaining. The list of
available flags colud be accessed from terminal with:
ag --list-file-types
This is possible because helm-ag is treating the search input as command-line
arguments of the ag program.
You can install MacType on Windows to get very nice looking fonts. It is also recommended to disable smooth scrolling on Windows.
A GUI build of emacs supporting image display is required. You can follow the instructions here. Alternatively you can download binaries of emacs with image support included such as this one.
Check if your Emacs has HTTPS capabilities by doing M-: and then:
(gnutls-available-p)
If this returns nil, you need to install the GnuTLS DLL file in the same
directory as Emacs. See here for instructions.
PuTTY.You can follow this explanation explaining how to correct this.
This is a known issue as of Emacs 24.4 due to ns-use-srgb-colorspace
defaulting to true. It is recommended to use the emacs-mac-port build. See the
install section in the README for more details.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。