Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Spacemacs set tab width

Tags:

spacemacs

I just migrated from VIM to Spacemacs and would like to change the tab width from default (\t?) to only 2 spaces. I found commands like

(setq-default indent-tabs-mode nil)

and

(setq tab-width 4) ; or any other preferred value
(defvaralias 'c-basic-offset 'tab-width)
(defvaralias 'cperl-indent-level 'tab-width)

My problem is that I don't know if they are correct, where in the .spacemacs file I should insert them, and what they even mean.

like image 865
Catsy Avatar asked Apr 19 '16 13:04

Catsy


2 Answers

I found this article: http://blog.binchen.org/posts/easy-indentation-setup-in-emacs-for-web-development.html

I added this part of the code into my .spacemacs file outside of any function (but before (defun dotspacemacs/user-init () ... )):

(defun my-setup-indent (n)
  ;; java/c/c++
  (setq c-basic-offset n)
  ;; web development
  (setq coffee-tab-width n) ; coffeescript
  (setq javascript-indent-level n) ; javascript-mode
  (setq js-indent-level n) ; js-mode
  (setq js2-basic-offset n) ; js2-mode, in latest js2-mode, it's alias of js-indent-level
  (setq web-mode-markup-indent-offset n) ; web-mode, html tag in html file
  (setq web-mode-css-indent-offset n) ; web-mode, css in html file
  (setq web-mode-code-indent-offset n) ; web-mode, js code in html file
  (setq css-indent-offset n) ; css-mode
  )

and added the line

(my-setup-indent 2) ; indent 2 spaces width

into the (defun dotspacemacs/user-init () ... ) like this:

(defun dotspacemacs/user-init ()
  "Initialization function for user code.
It is called immediately after `dotspacemacs/init', before layer configuration
executes.
 This function is mostly useful for variables that need to be set
before packages are loaded. If you are unsure, you should try in setting them in
`dotspacemacs/user-config' first."
  (my-setup-indent 2) ; indent 2 spaces width
  )
like image 163
Catsy Avatar answered Nov 12 '22 23:11

Catsy


You can also just customize the the standard-indent variable, setting it to 2, by calling the command customize-variable within spacemacs. This will save the customization into your .spacemacs file.

Edit:

to run 'customize-variable' use the hotkey M-x (alt-x on most systems) then type customize-variable in to the prompt.

you can use the search to search for 'standard-indent'

like image 27
SpaceNuB1 Avatar answered Nov 12 '22 21:11

SpaceNuB1