Difference between revisions of "Configure .emacs file"
From Notes_Wiki
|  (Created page with "=Configure .emacs file=  Use following as <tt>.emacs</tt> configuration. If there are already few lines in .emacs file then these lines can be appended / prepended to existing...") | m | ||
| (14 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
| [[Main Page|Home]] > [[CentOS]] > [[CentOS 6.x]] > [[Text editors]] > [[Emacs]] > [[Configure .emacs file]] | |||
| Use following as <tt>.emacs</tt> configuration. If there are already few lines in .emacs file then these lines can be appended / prepended to existing file: | Use following as <tt>.emacs</tt> configuration. If there are already few lines in .emacs file then these lines can be appended / prepended to existing file: | ||
| <pre> | <pre> | ||
| (setq load- | ;; .emacs - Assumes emacs 24.4.1+, org 8.2.10-34+ | ||
| ;; Considerable information learned from http://www.aaronbedra.com/emacs.d/ | |||
| ;; Set full username and email address | |||
| (setq user-full-name "Saurabh Barjatiya") | |||
| (setq user-mail-address "saurabh [at] sbarjatiya.com")   ;***Replace with correct email ID*** | |||
| ;Modify path as neeed | |||
| ;(setenv "PATH" (concat "/usr/local/bin:/opt/local/bin:/usr/bin:/bin" (getenv "PATH"))) | |||
| ;Package common lisp is required to add more functionality to emacs lisp to | |||
| ;allow easier configuration of emacs.  Without this loop used further in this file is not available. | |||
| (require 'cl) | |||
| ;; Initialize built-in package manager | |||
| (load "package") | |||
| (package-initialize) | |||
| (add-to-list 'package-archives | |||
|              '("marmalade" . "http://marmalade-repo.org/packages/")) | |||
| (add-to-list 'package-archives | |||
|              '("melpa" . "http://melpa.milkbox.net/packages/") t) | |||
| (setq package-archive-enable-alist '(("melpa" deft magit))) | |||
| ;; define list of default packages to install | |||
| (defvar saurabh/packages '(ac-slime | |||
|                           auto-complete | |||
|                           autopair | |||
|                           clojure-mode | |||
|                           coffee-mode | |||
|                           csharp-mode | |||
|                           deft | |||
|                           erlang | |||
|                           feature-mode | |||
|                           flycheck | |||
|                           gist | |||
|                           go-mode | |||
|                           graphviz-dot-mode | |||
|                           haml-mode | |||
|                           haskell-mode | |||
|                           htmlize | |||
|                           magit | |||
|                           markdown-mode | |||
|                           marmalade | |||
|                           nodejs-repl | |||
|                           o-blog | |||
|                           org | |||
|                           paredit | |||
|                           php-mode | |||
|                           puppet-mode | |||
|                           restclient | |||
|                           rvm | |||
|                           scala-mode | |||
|                           smex | |||
|                           sml-mode | |||
|                           solarized-theme | |||
|                           web-mode | |||
|                           writegood-mode | |||
|                           yaml-mode) | |||
|   "Default packages") | |||
| ;;Install default packages | |||
| (defun saurabh/packages-installed-p () | |||
|   (loop for pkg in saurabh/packages | |||
|         when (not (package-installed-p pkg)) do (return nil) | |||
|         finally (return t))) | |||
| (unless (saurabh/packages-installed-p) | |||
|   (message "%s" "Refreshing package database...") | |||
|   (package-refresh-contents) | |||
|   (dolist (pkg saurabh/packages) | |||
|     (when (not (package-installed-p pkg)) | |||
|       (package-install pkg)))) | |||
| ;; default to better frame titles | |||
| (setq frame-title-format | |||
|       (concat  "%b - emacs@" (system-name))) | |||
| ;; default to unified diffs | |||
| (setq diff-switches "-u") | |||
| ;;Preventing emacs from creating backup files | ;;Preventing emacs from creating backup files | ||
| Line 14: | Line 95: | ||
| (global-visual-line-mode 1) | (global-visual-line-mode 1) | ||
| ;;Wrap lines at  | ;;Wrap lines at 70 columns | ||
| (set-fill-column  | (set-fill-column 70) | ||
| ;;Wrap lines at  | ;;Wrap lines at 70 columns and enable auto-fill-mode automatically | ||
| (setq-default fill-column  | (setq-default fill-column 70) | ||
| (add-hook 'text-mode-hook 'turn-on-auto-fill) | (add-hook 'text-mode-hook 'turn-on-auto-fill) | ||
| ;;Set default font-size to  | ;;Set default font-size to 120 (12pt) | ||
| (set-face-attribute 'default nil :height  | (set-face-attribute 'default nil :height 120)   | ||
| ;;Setting up Emacs for use with Erlang | ;;Setting up Emacs for use with Erlang | ||
| ;;Update the below mentioned paths appropriately based on installation | ;;Update the below mentioned paths appropriately based on installation | ||
| (add-to-list 'load-path "/usr/ | (add-to-list 'load-path "/usr/lib64/erlang/lib/tools-2.6.6.5/emacs/") | ||
| (require 'erlang-start) | (require 'erlang-start) | ||
| (add-to-list 'auto-mode-alist '("\\.erl?$" . erlang-mode)) | (add-to-list 'auto-mode-alist '("\\.erl?$" . erlang-mode)) | ||
| (add-to-list 'auto-mode-alist '("\\.hrl?$" . erlang-mode)) | (add-to-list 'auto-mode-alist '("\\.hrl?$" . erlang-mode)) | ||
| (add-to-list 'auto-mode-alist '("\\.escript?$" . erlang-mode)) | |||
| (add-to-list 'auto-mode-alist '("\\.yaws?$" . erlang-mode)) | |||
| (setq erlang-root-dir "/usr/ | (setq erlang-root-dir "/usr/lib64/erlang") | ||
| (add-to-list 'exec-path "/usr/ | (add-to-list 'exec-path "/usr/lib64/erlang/bin") | ||
| (setq erlang-man-root-dir "/usr/ | (setq erlang-man-root-dir "/usr/lib64/erlang/man") | ||
| ;;Disable splash screen at start-up | |||
| (setq inhibit-splash-screen t) | |||
| ;;Make emacs copy-paste M-w, C-y work with system copy-paste | ;;Make emacs copy-paste M-w, C-y work with system copy-paste | ||
| (setq x-select-enable-clipboard t) | (setq x-select-enable-clipboard t) | ||
| ;;To maximize emacs window at start-up | |||
| (defun toggle-fullscreen () | |||
|   (interactive) | |||
|   (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 | |||
|                  '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0)) | |||
|   (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 | |||
|                  '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0)) | |||
| ) | |||
| (toggle-fullscreen) | |||
| ;; PDFs visited in Org-mode are opened in Evince and not in the default choice | |||
| (add-hook 'org-mode-hook | |||
|       '(lambda () | |||
|          (delete '("\\.pdf\\'" . default) org-file-apps) | |||
|          (add-to-list 'org-file-apps '("\\.pdf\\'" . "evince %s")))) | |||
| ;;For setting tab to 4 spaces for .py programs | |||
| (add-hook 'python-mode-hook | |||
|       (lambda () | |||
|         (setq indent-tabs-mode 'nil) | |||
|         (setq tab-width 4) | |||
|         (setq python-indent 4))) | |||
| ;;To set proper command for exporting latex to pdf from org-mode | |||
| (setq org-latex-to-pdf-process (quote ("pdflatex %f" "bibtex %b" "pdflatex %f"))) | |||
| (setq org-latex-pdf-process (quote ("pdflatex %f" "bibtex %b" "pdflatex %f"))) | |||
| ;;Add INPROGRESS along with TODO, DONE.  Also enable flyspell-mode and writegood-mode | |||
| ;;while org-mode is active | |||
| (setq org-log-done t | |||
|       org-todo-keywords '((sequence "TODO" "INPROGRESS" "DONE")) | |||
|       org-todo-keyword-faces '(("INPROGRESS" . (:foreground "blue" :weight bold)))) | |||
| (add-hook 'org-mode-hook | |||
|           (lambda () | |||
|             (flyspell-mode))) | |||
| (add-hook 'org-mode-hook | |||
|           (lambda () | |||
|             (writegood-mode))) | |||
| </pre> | </pre> | ||
| Line 45: | Line 175: | ||
| [[Main Page|Home]] > [[CentOS]] > [[CentOS 6.x]] > [[Text editors]] > [[Emacs]] > [[Configure .emacs file]] | |||
Latest revision as of 15:53, 24 August 2022
Home > CentOS > CentOS 6.x > Text editors > Emacs > Configure .emacs file
Use following as .emacs configuration. If there are already few lines in .emacs file then these lines can be appended / prepended to existing file:
;; .emacs - Assumes emacs 24.4.1+, org 8.2.10-34+
;; Considerable information learned from http://www.aaronbedra.com/emacs.d/
;; Set full username and email address
(setq user-full-name "Saurabh Barjatiya")
(setq user-mail-address "saurabh [at] sbarjatiya.com")   ;***Replace with correct email ID***
;Modify path as neeed
;(setenv "PATH" (concat "/usr/local/bin:/opt/local/bin:/usr/bin:/bin" (getenv "PATH")))
;Package common lisp is required to add more functionality to emacs lisp to
;allow easier configuration of emacs.  Without this loop used further in this file is not available.
(require 'cl)
;; Initialize built-in package manager
(load "package")
(package-initialize)
(add-to-list 'package-archives
             '("marmalade" . "http://marmalade-repo.org/packages/"))
(add-to-list 'package-archives
             '("melpa" . "http://melpa.milkbox.net/packages/") t)
(setq package-archive-enable-alist '(("melpa" deft magit)))
;; define list of default packages to install
(defvar saurabh/packages '(ac-slime
                          auto-complete
                          autopair
                          clojure-mode
                          coffee-mode
                          csharp-mode
                          deft
                          erlang
                          feature-mode
                          flycheck
                          gist
                          go-mode
                          graphviz-dot-mode
                          haml-mode
                          haskell-mode
                          htmlize
                          magit
                          markdown-mode
                          marmalade
                          nodejs-repl
                          o-blog
                          org
                          paredit
                          php-mode
                          puppet-mode
                          restclient
                          rvm
                          scala-mode
                          smex
                          sml-mode
                          solarized-theme
                          web-mode
                          writegood-mode
                          yaml-mode)
  "Default packages")
;;Install default packages
(defun saurabh/packages-installed-p ()
  (loop for pkg in saurabh/packages
        when (not (package-installed-p pkg)) do (return nil)
        finally (return t)))
(unless (saurabh/packages-installed-p)
  (message "%s" "Refreshing package database...")
  (package-refresh-contents)
  (dolist (pkg saurabh/packages)
    (when (not (package-installed-p pkg))
      (package-install pkg))))
;; default to better frame titles
(setq frame-title-format
      (concat  "%b - emacs@" (system-name)))
;; default to unified diffs
(setq diff-switches "-u")
;;Preventing emacs from creating backup files
(setq make-backup-files nil)
;;Preventing emacs from creating auto-save files
(setq auto-save-default nil)
;;Use visual-line-mode for word wrap
(global-visual-line-mode 1)
;;Wrap lines at 70 columns
(set-fill-column 70)
;;Wrap lines at 70 columns and enable auto-fill-mode automatically
(setq-default fill-column 70)
(add-hook 'text-mode-hook 'turn-on-auto-fill)
;;Set default font-size to 120 (12pt)
(set-face-attribute 'default nil :height 120) 
;;Setting up Emacs for use with Erlang
;;Update the below mentioned paths appropriately based on installation
(add-to-list 'load-path "/usr/lib64/erlang/lib/tools-2.6.6.5/emacs/")
(require 'erlang-start)
(add-to-list 'auto-mode-alist '("\\.erl?$" . erlang-mode))
(add-to-list 'auto-mode-alist '("\\.hrl?$" . erlang-mode))
(add-to-list 'auto-mode-alist '("\\.escript?$" . erlang-mode))
(add-to-list 'auto-mode-alist '("\\.yaws?$" . erlang-mode))
(setq erlang-root-dir "/usr/lib64/erlang")
(add-to-list 'exec-path "/usr/lib64/erlang/bin")
(setq erlang-man-root-dir "/usr/lib64/erlang/man")
;;Disable splash screen at start-up
(setq inhibit-splash-screen t)
;;Make emacs copy-paste M-w, C-y work with system copy-paste
(setq x-select-enable-clipboard t)
;;To maximize emacs window at start-up
(defun toggle-fullscreen ()
  (interactive)
  (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
                 '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0))
  (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
                 '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0))
)
(toggle-fullscreen)
;; PDFs visited in Org-mode are opened in Evince and not in the default choice
(add-hook 'org-mode-hook
      '(lambda ()
         (delete '("\\.pdf\\'" . default) org-file-apps)
         (add-to-list 'org-file-apps '("\\.pdf\\'" . "evince %s"))))
;;For setting tab to 4 spaces for .py programs
(add-hook 'python-mode-hook
      (lambda ()
        (setq indent-tabs-mode 'nil)
        (setq tab-width 4)
        (setq python-indent 4)))
;;To set proper command for exporting latex to pdf from org-mode
(setq org-latex-to-pdf-process (quote ("pdflatex %f" "bibtex %b" "pdflatex %f")))
(setq org-latex-pdf-process (quote ("pdflatex %f" "bibtex %b" "pdflatex %f")))
;;Add INPROGRESS along with TODO, DONE.  Also enable flyspell-mode and writegood-mode
;;while org-mode is active
(setq org-log-done t
      org-todo-keywords '((sequence "TODO" "INPROGRESS" "DONE"))
      org-todo-keyword-faces '(("INPROGRESS" . (:foreground "blue" :weight bold))))
(add-hook 'org-mode-hook
          (lambda ()
            (flyspell-mode)))
(add-hook 'org-mode-hook
          (lambda ()
            (writegood-mode)))
Home > CentOS > CentOS 6.x > Text editors > Emacs > Configure .emacs file

