zoukankan      html  css  js  c++  java
  • my emacs configuration

    modified from https://github.com/flyingmachine/emacs-for-clojure

    ;;;;
    ;; Packages
    ;;;;
    
    ;; Define package repositories
    (require 'package)
    (add-to-list 'package-archives
                 '("marmalade" . "http://marmalade-repo.org/packages/") t)
    (add-to-list 'package-archives
                 '("tromey" . "http://tromey.com/elpa/") t)
    (add-to-list 'package-archives
                 '("melpa" . "http://melpa.milkbox.net/packages/") t)
    
    ;; (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")
    ;;                          ("marmalade" . "http://marmalade-repo.org/packages/")
    ;;                          ("melpa" . "http://melpa-stable.milkbox.net/packages/")))
    
    
    ;; Load and activate emacs packages. Do this first so that the
    ;; packages are loaded before you start trying to modify them.
    ;; This also sets the load path.
    (package-initialize)
    
    ;; Download the ELPA archive description if needed.
    ;; This informs Emacs about the latest versions of all packages, and
    ;; makes them available for download.
    (when (not package-archive-contents)
      (package-refresh-contents))
    
    ;; The packages you want installed. You can also install these
    ;; manually with M-x package-install
    ;; Add in your own as you wish:
    (defvar my-packages
      '(;; makes handling lisp expressions much, much easier
        ;; Cheatsheet: http://www.emacswiki.org/emacs/PareditCheatsheet
        paredit
    
        ;; key bindings and code colorization for Clojure
        ;; https://github.com/clojure-emacs/clojure-mode
        clojure-mode
    
        ;; extra syntax highlighting for clojure
        clojure-mode-extra-font-locking
    
        ;; integration with a Clojure REPL
        ;; https://github.com/clojure-emacs/cider
        cider
    
        ;; allow ido usage in as many contexts as possible. see
        ;; customizations/navigation.el line 23 for a description
        ;; of ido
        ido-ubiquitous
    
        ;; Enhances M-x to allow easier execution of commands. Provides
        ;; a filterable list of possible commands in the minibuffer
        ;; http://www.emacswiki.org/emacs/Smex
        smex
    
        ;; project navigation
        projectile
    
        ;; colorful parenthesis matching
        rainbow-delimiters
    
        ;; edit html tags like sexps
        ;; tagedit
    
        ;; git integration
        ;;magit
        ))
    
    (dolist (p my-packages)
      (when (not (package-installed-p p))
        (package-install p)))
    
    ;; Place downloaded elisp files in ~/.emacs.d/vendor. You'll then be able
    ;; to load them.
    ;;
    ;; For example, if you download yaml-mode.el to ~/.emacs.d/vendor,
    ;; then you can add the following code to this file:
    ;;
    ;; (require 'yaml-mode)
    ;; (add-to-list 'auto-mode-alist '("\.yml$" . yaml-mode))
    ;; 
    ;; Adding this code will make Emacs enter yaml mode whenever you open
    ;; a .yml file
    (add-to-list 'load-path "~/.emacs.d/vendor")
    
    
    ;; change default start up directory
    (setq default-directory "C:/Users/hello/")
    
    ;; Go straight to scratch buffer on startup
    (setq inhibit-startup-message t)
    
    ;; "When several buffers visit identically-named files,
    ;; Emacs must give the buffers distinct names. The usual method
    ;; for making buffer names unique adds ‘’, ‘’, etc. to the end
    ;; of the buffer names (all but one of them).
    ;; The forward naming method includes part of the file's directory
    ;; name at the beginning of the buffer name
    ;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Uniquify.html
    (require 'uniquify)
    (setq uniquify-buffer-name-style 'forward)
    
    ;; Turn on recent file mode so that you can more easily switch to
    ;; recently edited files when you first start emacs
    (setq recentf-save-file (concat user-emacs-directory ".recentf"))
    (require 'recentf)
    (recentf-mode 1)
    (setq recentf-max-menu-items 40)
    
    ;; ido-mode allows you to more easily navigate choices. For example,
    ;; when you want to switch buffers, ido presents you with a list
    ;; of buffers in the the mini-buffer. As you start to type a buffer's
    ;; name, ido will narrow down the list of buffers to match the text
    ;; you've typed in
    ;; http://www.emacswiki.org/emacs/InteractivelyDoThings
    (ido-mode t)
    ;; This allows partial matches, e.g. "tl" will match "Tyrion Lannister"
    (setq ido-enable-flex-matching t)
    ;; Turn this behavior off because it's annoying
    (setq ido-use-filename-at-point nil)
    ;; Don't try to match file across all "work" directories; only match files
    ;; in the current directory displayed in the minibuffer
    (setq ido-auto-merge-work-directories-length -1)
    ;; Includes buffer names of recently open files, even if they're not
    ;; open now
    (setq ido-use-virtual-buffers t)
    ;; This enables ido in all contexts where it could be useful, not just
    ;; for selecting buffer and file names
    (ido-ubiquitous-mode 1)
    ;; Shows a list of buffers
    (global-set-key (kbd "C-x C-b") 'ibuffer)
    
    
    ;; Enhances M-x to allow easier execution of commands. Provides
    ;; a filterable list of possible commands in the minibuffer
    ;; http://www.emacswiki.org/emacs/Smex
    (setq smex-save-file (concat user-emacs-directory ".smex-items"))
    (smex-initialize)
    (global-set-key (kbd "M-x") 'smex)
    
    ;; projectile everywhere!
    (projectile-global-mode)
    
    ;; turn on menu bar
    (menu-bar-mode 1)
    
    ;; Show line numbers
    (global-linum-mode)
    
    ;; You can uncomment this to remove the graphical toolbar at the top. After
    ;; awhile, you won't need the toolbar.
    ;; (when (fboundp 'tool-bar-mode)
    ;;   (tool-bar-mode -1))
    
    ;; Don't show native OS scroll bars for buffers because they're redundant
    (when (fboundp 'scroll-bar-mode)
      (scroll-bar-mode -1))
    
    ;; Color Themes
    ;; Read http://batsov.com/articles/2012/02/19/color-theming-in-emacs-reloaded/
    ;; for a great explanation of emacs color themes.
    ;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Custom-Themes.html
    ;; for a more technical explanation.
    (add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
    (add-to-list 'load-path "~/.emacs.d/themes")
    (load-theme 'tomorrow-night-bright t)
    
    ;; increase font size for better readability
    (set-face-attribute 'default nil :height 120)
    
    ;; These settings relate to how emacs interacts with your operating system
    (setq ;; makes killing/yanking interact with the clipboard
          x-select-enable-clipboard t
    
          ;; I'm actually not sure what this does but it's recommended?
          x-select-enable-primary t
    
          ;; Save clipboard strings into kill ring before replacing them.
          ;; When one selects something in another program to paste it into Emacs,
          ;; but kills something in Emacs before actually pasting it,
          ;; this selection is gone unless this variable is non-nil
          save-interprogram-paste-before-kill t
    
          ;; Shows all options when running apropos. For more info,
          ;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Apropos.html
          apropos-do-all t
    
          ;; Mouse yank commands yank at point instead of at click.
          mouse-yank-at-point t)
    
    ;; enable cursor blinking
    (blink-cursor-mode 1)
    
    ;; full path in title bar
    (setq-default frame-title-format "%b (%f)")
    
    ;; don't pop up font menu
    (global-set-key (kbd "s-t") '(lambda () (interactive)))
    
    ;; uncomment to disable bell
    ;; (setq ring-bell-function 'ignore)
    
    ;; Highlights matching parenthesis
    (show-paren-mode 1)
    
    ;; Highlight current line
    (global-hl-line-mode 1)
    
    ;; When you visit a file, point goes to the last place where it
    ;; was when you previously visited the same file.
    ;; http://www.emacswiki.org/emacs/SavePlace
    (require 'saveplace)
    (setq-default save-place t)
    ;; keep track of saved places in ~/.emacs.d/places
    (setq save-place-file (concat user-emacs-directory "places"))
    
    ;; Emacs can automatically create backup files. This tells Emacs to
    ;; put all backups in ~/.emacs.d/backups. More info:
    ;; http://www.gnu.org/software/emacs/manual/html_node/elisp/Backup-Files.html
    (setq backup-directory-alist `(("." . ,(concat user-emacs-directory
                                                   "backups"))))
    (setq auto-save-default nil)
    
    ;; yay rainbows!
    (global-rainbow-delimiters-mode t)
    
    (setq electric-indent-mode 1)
    
    ;; For editing lisps
    ;; Automatically load paredit when editing a lisp file
    ;; More at http://www.emacswiki.org/emacs/ParEdit
    (autoload 'enable-paredit-mode "paredit" "Turn on pseudo-structural editing of Lisp code." t)
    (add-hook 'emacs-lisp-mode-hook       #'enable-paredit-mode)
    (add-hook 'eval-expression-minibuffer-setup-hook #'enable-paredit-mode)
    (add-hook 'ielm-mode-hook             #'enable-paredit-mode)
    (add-hook 'lisp-mode-hook             #'enable-paredit-mode)
    (add-hook 'lisp-interaction-mode-hook #'enable-paredit-mode)
    (add-hook 'scheme-mode-hook           #'enable-paredit-mode)
    
    ;; eldoc-mode shows documentation in the minibuffer when writing code
    ;; http://www.emacswiki.org/emacs/ElDoc
    (add-hook 'emacs-lisp-mode-hook 'turn-on-eldoc-mode)
    (add-hook 'lisp-interaction-mode-hook 'turn-on-eldoc-mode)
    (add-hook 'ielm-mode-hook 'turn-on-eldoc-mode)
    
    ;;;;
    ;; Clojure
    ;;;;
    
    ;; Enable paredit for Clojure
    (add-hook 'clojure-mode-hook 'enable-paredit-mode)
    
    ;; This is useful for working with camel-case tokens, like names of
    ;; Java classes (e.g. JavaClassName)
    (add-hook 'clojure-mode-hook 'subword-mode)
    
    ;; A little more syntax highlighting
    (require 'clojure-mode-extra-font-locking)
    
    ;;;;
    ;; Cider
    ;;;;
    
    ;; provides minibuffer documentation for the code you're typing into the repl
    (add-hook 'cider-mode-hook 'cider-turn-on-eldoc-mode)
    
    ;; go right to the REPL buffer when it's finished connecting
    (setq cider-repl-pop-to-buffer-on-connect t)
    
    ;; When there's a cider error, show its buffer and switch to it
    (setq cider-show-error-buffer t)
    (setq cider-auto-select-error-buffer t)
    
    ;; Where to store the cider history.
    (setq cider-repl-history-file "~/.emacs.d/cider-history")
    
    ;; Wrap when navigating history.
    (setq cider-repl-wrap-history t)
    
    ;; enable paredit in your REPL
    (add-hook 'cider-repl-mode-hook 'paredit-mode)
  • 相关阅读:
    自学数据分析书单2
    自学的数据分析书单
    @RequestBody, @ResponseBody 注解详解(转)
    @RequestParam @RequestBody @PathVariable 等参数绑定注解详解(转)
    @RequestMapping 用法详解之地址映射(转)
    关于java属性字段命名
    jQuery对象和DOM对象使用说明
    UAP开发错误之The given System.Uri cannot be converted into a Windows.Foundation.Uri(windows phone背景更换)
    Windows Azure之Mobile Service
    .NET重思(二)接口和抽象类的取舍
  • 原文地址:https://www.cnblogs.com/qsort/p/4456162.html
Copyright © 2011-2022 走看看