75 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			EmacsLisp
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			EmacsLisp
		
	
	
	
	
	
| (require 'package)
 | |
| (package-initialize)
 | |
| (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))
 | |
| (unless (package-installed-p 'use-package)
 | |
|   (package-install 'use-package))
 | |
| (require 'use-package)
 | |
| 
 | |
| (use-package rainbow-mode :ensure t)
 | |
| (use-package treemacs
 | |
|   :ensure t
 | |
|   :config
 | |
|   (treemacs-follow-mode t)            ;; Enable follow mode
 | |
|   (setq treemacs-show-hidden-files t) ;; Show hidden files (optional)
 | |
|   (treemacs-fringe-indicator-mode t)  ;; Show fringe indicators
 | |
|   (treemacs-git-mode 'deferred)       ;; Enable Git integration
 | |
|   (global-set-key (kbd "C-\\") 'treemacs-select-window)
 | |
|   (global-set-key (kbd "M-`") 'treemacs-edit-workspaces)
 | |
|   (global-set-key (kbd "M-0") 'treemacs-switch-workspace)
 | |
|   )  ;; Keybinding to open Treemacs
 | |
| 
 | |
| (custom-set-variables
 | |
|  ;; custom-set-variables was added by Custom.
 | |
|  ;; If you edit it by hand, you could mess it up, so be careful.
 | |
|  ;; Your init file should contain only one such instance.
 | |
|  ;; If there is more than one, they won't work right.
 | |
|  ;; '(custom-enabled-themes '(tango-dark)) ;; Use a themes that available by emacs
 | |
|  '(package-selected-packages nil) )
 | |
| (custom-set-faces
 | |
|  ;; custom-set-faces was added by Custom.
 | |
|  ;; If you edit it by hand, you could mess it up, so be careful.
 | |
|  ;; Your init file should contain only one such instance.
 | |
|  ;; If there is more than one, they won't work right.
 | |
|  )
 | |
| 
 | |
| ; Custom themes that I download from internet
 | |
| (add-to-list 'custom-theme-load-path "~/.emacs.d/themes/")
 | |
| (load-theme 'dracula t)
 | |
| (add-to-list 'default-frame-alist '(background-color . "unspecified-bg"))
 | |
| 
 | |
| ; make backup to a designated dir, mirroring the full path
 | |
| (defun xah-backup-nested-dir-file-path (Fpath)
 | |
|   "Return a new file path and create dirs.
 | |
| If the new path's directories does not exist, create them.
 | |
| version 2022-06-09"
 | |
|   (let* ($backupRoot $backupFilePath)
 | |
|     (setq $backupRoot "~/.emacs.d/backup/")
 | |
|     ;; remove Windows driver letter in path, e.g. C:
 | |
|     (setq $backupFilePath
 | |
|           (format "%s%s~" $backupRoot (replace-regexp-in-string "^[A-Za-z]:/" "" Fpath)))
 | |
|     (make-directory
 | |
|      (file-name-directory $backupFilePath)
 | |
|      (file-name-directory $backupFilePath))
 | |
|     $backupFilePath
 | |
|     ))
 | |
| (setq make-backup-file-name-function 'xah-backup-nested-dir-file-path)
 | |
| 
 | |
| ; disable backup
 | |
| ; (setq backup-inhibited t)
 | |
| 
 | |
| ; disable auto save
 | |
| (setq auto-save-default nil)
 | |
| 
 | |
| ;; For example, set the default tab width to 4 spaces
 | |
| (setq-default tab-width 4)
 | |
| ;; For Python mode, set the indentation style
 | |
| (add-hook 'python-mode-hook
 | |
|           (lambda ()
 | |
|             (setq indent-tabs-mode nil) ; Use spaces instead of tabs
 | |
|             (setq python-indent-offset 4) )) ; Set the indentation offset
 | |
| ;; For JavaScript mode, set the indentation style
 | |
| (add-hook 'js-mode-hook
 | |
|           (lambda ()
 | |
|             (setq indent-tabs-mode nil) ; Use spaces instead of tabs
 | |
|             (setq js-indent-level 4))) ; Set the indentation offset
 |