Skip to content

Latest commit

 

History

History
283 lines (228 loc) · 8.62 KB

starter-kit-misc.org

File metadata and controls

283 lines (228 loc) · 8.62 KB

Starter Kit Misc

This is part of the Emacs Starter Kit.

Starter Kit Misc

Things that don’t fit anywhere else.

Window system stuff

(when window-system
  (setq frame-title-format '(buffer-file-name "%f" ("%b")))
  (tooltip-mode -1)
  (tool-bar-mode -1)
  (scroll-bar-mode -1)

  (blink-cursor-mode -1))

(mouse-wheel-mode t)
(auto-compression-mode t) ;; Transparently open compressed files
(size-indication-mode t) ;; Show file in %
(global-visual-line-mode t) ;; Line wrapping
(recentf-mode t) ;; Save a list of recent files visited.

(setq windmove-wrap-around t)

(define-coding-system-alias 'UTF-8 'utf-8)
(define-coding-system-alias 'UTF8 'utf-8)
(define-coding-system-alias 'utf8 'utf-8)

(prefer-coding-system 'utf-8)
(setq locale-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)

(setq make-backup-files nil
      auto-save-default nil
      auto-save-list-file-name nil

      org-agenda-span 14 ;; Org agenda
      word-wrap t ;; Line wrapping
      x-select-enable-clipboard t ;; The total OS clipboard

      require-final-newline t ;; Added empty line in EOF
      next-line-add-newlines nil ;; Not to add a new line to the end of the displacement

      ;; Highlight search resaults
      search-highlight t
      query-replace-highlight t

      visible-bell t
      echo-keystrokes 0.1
      font-lock-maximum-decoration t
      font-lock-verbose nil
      inhibit-startup-screen t
      inhibit-startup-message t
      transient-mark-mode t
      delete-by-moving-to-trash t
      shift-select-mode nil
      truncate-partial-width-windows nil
      uniquify-buffer-name-style 'forward
      whitespace-style '(trailing lines space-before-tab
                                  indentation space-after-tab
                                  face tabs trailing lines-tail)
      ediff-window-setup-function 'ediff-setup-windows-plain
      oddmuse-directory (concat dotfiles-dir "oddmuse")
      xterm-mouse-mode t
      save-place-file (concat dotfiles-dir "places")
      redisplay-dont-pause t
      ring-bell-function 'ignore
      use-dialog-box nil
      scroll-margin 10
      scroll-step 1
      scroll-conservatively 10000
      scroll-preserve-screen-position 1
      mouse-wheel-follow-mouse 't
      mouse-wheel-scroll-amount '(1 ((shift) . 1)))

Set browser

Set this to whatever browser you use e.g…

(setq browse-url-browser-function 'browse-url-generic browse-url-generic-program "google-chrome")
;; (setq browse-url-browser-function 'browse-url-firefox)
;; (setq browse-url-browser-function 'browse-default-macosx-browser)
;; (setq browse-url-browser-function 'browse-default-windows-browser)
;; (setq browse-url-browser-function 'browse-default-kde)
;; (setq browse-url-browser-function 'browse-default-epiphany)
;; (setq browse-url-browser-function 'browse-default-w3m)
;; (setq browse-url-browser-function 'browse-url-generic
;;       browse-url-generic-program "~/src/conkeror/conkeror")

Indent settings

(defun my-setup-indent (n)
  ;; java/c/c++
  (setq-local standard-indent n)
  (setq-local c-basic-offset n)
  ;; web development
  (setq-local javascript-indent-level n) ; javascript-mode
  (setq-local js-indent-level n) ; js-mode
  (setq-local react-indent-level n) ; react-mode
  (setq-local js2-basic-offset n) ; js2-mode, in latest js2-mode, it's alias of js-indent-level
  (setq-local web-mode-attr-indent-offset n) ; web-mode
  (setq-local web-mode-code-indent-offset n) ; web-mode, js code in html file
  (setq-local web-mode-css-indent-offset n) ; web-mode, css in html file
  (setq-local web-mode-markup-indent-offset n) ; web-mode, html tag in html file
  (setq-local web-mode-sql-indent-offset n) ; web-mode
  (setq-local web-mode-attr-value-indent-offset n) ; web-mode
  (setq-local css-indent-offset n) ; css-mode
  ;; shell scripts
  (setq-local sh-basic-offset n)
  (setq-local sh-indentation n))

(defun my-personal-code-style (ident)
  (interactive)
  (message "My personal code style!")
  ;; use space instead of tab
  (setq whitespace-line-column 120)
  (setq indent-tabs-mode nil)
  ;; indent spaces width
  (my-setup-indent ident))

Enable syntax highlighting for older Emacsen that have it off

;; Syntax highlighting
(require 'font-lock)
(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)

Show Menu Bar in Window but not in tty

If launching Emacs as in windowing system, show the menu. If launching in a tty/terminal window, don’t display the menu.

(if window-system
  (menu-bar-mode t)
  (menu-bar-mode -1))

Highlight matching parentheses when the point is on them.

(show-paren-mode t) ;; Include the allocation between the expressions {},[],()
(setq show-paren-style 'expression) ;; Highlight expression between {},[],()

ido mode

ido-mode is like magic pixie dust!

(when (> emacs-major-version 21)
  (ido-mode t)
  (setq ido-enable-prefix nil
        ido-enable-flex-matching t
        ido-create-new-buffer 'always
        ido-use-filename-at-point nil
        ido-max-prospects 10))

Other

;; Dired
(require 'dired)
(setq dired-recursive-deletes 'top) ;; For dired might delete not empty directory

;; Delete selection
(delete-selection-mode t)

(set-default 'indicate-empty-lines t)

(set-default 'imenu-auto-rescan t)
(set-default 'imenu-use-popup-menu nil)

(add-hook 'text-mode-hook 'turn-on-auto-fill)
;; (add-hook 'text-mode-hook 'turn-on-flyspell)

(defalias 'yes-or-no-p 'y-or-n-p)
(random t) ;; Seed the random-number generator

possible issues/resolutions with flyspell

Most of the solution came from EmacsWiki-FlySpell.

Hippie expand: at times perhaps too hip

(delete 'try-expand-line hippie-expand-try-functions-list)

Programming hook

(add-hook 'prog-mode-hook 'coding-hooks)

(defun coding-hooks ()
  (require 'rainbow-delimiters)

  (local-comment-auto-fill)
  (turn-on-hl-line-mode)
  (turn-on-save-place-mode)
  (turn-on-whitespace)
  (ggtags-mode 1)

  (autoload 'rainbow-delimiters-mode "rainbow-delimiters")

  (global-prettify-symbols-mode +1)

  (font-lock-add-keywords
   nil '(("\\<\\(FIX\\|TODO\\|FIXME\\|HACK\\|REFACTOR\\)\\:"
          1 font-lock-warning-face prepend)))

  (add-hook 'before-save-hook 'cleanup-buffer)
  (flycheck-custom)
  (rainbow-delimiters-mode))

(defun run-coding-hook ()
  "Not every programming mode yet inherits from prog-mode (new to
   Emacs 24), so this function provides a short-cut for including
   those hooks in another mode."
  (run-hooks 'prog-mode-hook))

Flycheck

(defun flycheck-custom ()
  (require 'flycheck)
  (run-hooks 'flycheck)
  (flycheck-mode)

  (defun flycheck-moder(param)
    (interactive)
    (flycheck-mode param))

  (defun flycheck-disable()
    (flycheck-moder nil))

  (defun flycheck-enable()
    (flycheck-moder t))

  (custom-set-variables
   '(flycheck-run-in-place nil)
   '(flycheck-log-level 0))
  (custom-set-variables
   '(flycheck-run-in-place nil)
   '(flycheck-log-level 0))
  (custom-set-faces
   '(flycheck-error ((t (:underline "red4"))))
   '(flycheck-error-face ((t (:background "brown4"))))
   '(flycheck-fringe-error ((t nil)))
   '(flycheck-fringe-warning ((t nil)))
   '(flycheck-warning ((t (:underline "dark orange"))))
   '(flycheck-warning-face ((t (:background "chocolate4"))))
   '(flymake-errline ((((class color)) (:underline "red"))))
   '(flymake-warnline ((((class color)) (:underline "yellow")))))

  (eval-after-load 'flycheck
    '(progn
      (let ((m flycheck-mode-map))
        (define-key m (kbd "C-s-j") 'flycheck-previous-error)
        (define-key m (kbd "C-s-k") 'flycheck-next-error))
      (add-hook 'flycheck-mode-hook 'flycheck-color-mode-line-mode))))
(message "------ Starter Kit Misc loaded ------")