소스 검색

Add some init files (git, octave...)

Remove init-local.el from .gitignore
master
ßingen 9 년 전
부모
커밋
c9942be9a2
8개의 변경된 파일211개의 추가작업 그리고 2개의 파일을 삭제
  1. +1
    -1
      .gitignore
  2. +5
    -0
      init.el
  3. +90
    -0
      lisp/init-git.el
  4. +14
    -0
      lisp/init-github.el
  5. +1
    -1
      lisp/init-javascript.el
  6. +11
    -0
      lisp/init-local.el
  7. +12
    -0
      lisp/init-octave.el
  8. +77
    -0
      lisp/init-windows.el

+ 1
- 1
.gitignore 파일 보기

@@ -34,6 +34,6 @@ site-lisp/package/
/image-dired/
/eshell

lisp/init-local.el
#lisp/init-local.el
session*
.#.smex-items

+ 5
- 0
init.el 파일 보기

@@ -49,9 +49,13 @@
(require 'init-recentf)
(require 'init-ido)
(require 'init-auto-complete)
(require 'init-windows)

(require 'init-editing-utils)

;(require 'init-git)
;(require 'init-github)

(require 'init-crontab)
(require 'init-markdown)
(require 'init-csv)
@@ -63,6 +67,7 @@
(require 'init-css)
(require 'init-python-mode)
(require 'init-sql)
(require 'init-octave)

(when *spell-check-support-enabled*
(require 'init-spelling))

+ 90
- 0
lisp/init-git.el 파일 보기

@@ -0,0 +1,90 @@
;; TODO: link commits from vc-log to magit-show-commit
;; TODO: smerge-mode
(require-package 'magit)
(require-package 'git-blame)
(require-package 'git-commit-mode)
(require-package 'git-rebase-mode)
(require-package 'gitignore-mode)
(require-package 'gitconfig-mode)
(require-package 'git-messenger) ;; Though see also vc-annotate's "n" & "p" bindings
(require-package 'git-timemachine)

(setq-default
magit-save-some-buffers nil
magit-process-popup-time 10
magit-diff-refine-hunk t
magit-completing-read-function 'magit-ido-completing-read)

;; Hint: customize `magit-repo-dirs' so that you can use C-u M-F12 to
;; quickly open magit on any one of your projects.
(global-set-key [(meta f12)] 'magit-status)

(after-load 'magit
(define-key magit-status-mode-map (kbd "C-M-<up>") 'magit-goto-parent-section))

(require-package 'fullframe)
(after-load 'magit
(fullframe magit-status magit-mode-quit-window))

(add-hook 'git-commit-mode-hook 'goto-address-mode)
(after-load 'session
(add-to-list 'session-mode-disable-list 'git-commit-mode))

;;; When we start working on git-backed files, use git-wip if available

(after-load 'magit
(global-magit-wip-save-mode)
(diminish 'magit-wip-save-mode))

(after-load 'magit
(diminish 'magit-auto-revert-mode))

(when *is-a-mac*
(after-load 'magit
(add-hook 'magit-mode-hook (lambda () (local-unset-key [(meta h)])))))


;; Convenient binding for vc-git-grep
(global-set-key (kbd "C-x v f") 'vc-git-grep)


;;; git-svn support

(require-package 'magit-svn)
(autoload 'magit-svn-enabled "magit-svn")
(defun sanityinc/maybe-enable-magit-svn-mode ()
(when (magit-svn-enabled)
(magit-svn-mode)))
(add-hook 'magit-status-mode-hook #'sanityinc/maybe-enable-magit-svn-mode)

(after-load 'compile
(dolist (defn (list '(git-svn-updated "^\t[A-Z]\t\\(.*\\)$" 1 nil nil 0 1)
'(git-svn-needs-update "^\\(.*\\): needs update$" 1 nil nil 2 1)))
(add-to-list 'compilation-error-regexp-alist-alist defn)
(add-to-list 'compilation-error-regexp-alist (car defn))))

(defvar git-svn--available-commands nil "Cached list of git svn subcommands")

(defun git-svn (dir)
"Run a git svn subcommand in DIR."
(interactive "DSelect directory: ")
(unless git-svn--available-commands
(setq git-svn--available-commands
(sanityinc/string-all-matches
"^ \\([a-z\\-]+\\) +"
(shell-command-to-string "git svn help") 1)))
(let* ((default-directory (vc-git-root dir))
(compilation-buffer-name-function (lambda (major-mode-name) "*git-svn*")))
(compile (concat "git svn "
(ido-completing-read "git-svn command: " git-svn--available-commands nil t)))))

(require-package 'git-messenger)
(global-set-key (kbd "C-x v p") #'git-messenger:popup-message)


(provide 'init-git)

+ 14
- 0
lisp/init-github.el 파일 보기

@@ -0,0 +1,14 @@
(require 'init-git)

(require-package 'yagist)
(require-package 'github-browse-file)
(require-package 'bug-reference-github)
(add-hook 'prog-mode-hook 'bug-reference-prog-mode)

(when (eval-when-compile (> emacs-major-version 23))
(require-package 'github-clone)
(require-package 'magit-gh-pulls))



(provide 'init-github)

+ 1
- 1
lisp/init-javascript.el 파일 보기

@@ -11,7 +11,7 @@
:type 'symbol
:group 'programming
:options '(js2-mode js-mode))
(defvar preferred-javascript-indent-level 4)
(defvar preferred-javascript-indent-level 2)

;; Need to first remove from list if present, since elpa adds entries too, which
;; may be in an arbitrary order

+ 11
- 0
lisp/init-local.el 파일 보기

@@ -0,0 +1,11 @@
(global-set-key (kbd "S-s-<up>") 'windmove-up)
(global-set-key (kbd "S-s-<down>") 'windmove-down)
(global-set-key (kbd "S-s-<right>") 'windmove-right)
(global-set-key (kbd "S-s-<left>") 'windmove-left)

;; linum-mode by default
(require ‘linum)
(global-linum-mode 1)

(provide 'init-local)


+ 12
- 0
lisp/init-octave.el 파일 보기

@@ -0,0 +1,12 @@
(autoload 'octave-mode "octave-mod" nil t)
(setq auto-mode-alist
(cons '("\\.m$" . octave-mode) auto-mode-alist))

(add-hook 'octave-mode-hook
(lambda ()
(abbrev-mode 1)
(auto-fill-mode 1)
(if (eq window-system 'x)
(font-lock-mode 1))))

(provide 'init-octave)

+ 77
- 0
lisp/init-windows.el 파일 보기

@@ -0,0 +1,77 @@
;;----------------------------------------------------------------------------
;; Navigate window layouts with "C-c <left>" and "C-c <right>"
;;----------------------------------------------------------------------------
(winner-mode 1)


;; Make "C-x o" prompt for a target window when there are more than 2
(require-package 'switch-window)
(require 'switch-window)
;;(setq switch-window-shortcut-style 'alphabet)
(setq switch-window-shortcut-style 'qwerty)
(global-set-key (kbd "C-x o") 'switch-window)


;;----------------------------------------------------------------------------
;; When splitting window, show (other-buffer) in the new window
;;----------------------------------------------------------------------------
(defun split-window-func-with-other-buffer (split-function)
(lexical-let ((s-f split-function))
(lambda ()
(interactive)
(funcall s-f)
(set-window-buffer (next-window) (other-buffer)))))

(global-set-key "\C-x2" (split-window-func-with-other-buffer 'split-window-vertically))
(global-set-key "\C-x3" (split-window-func-with-other-buffer 'split-window-horizontally))

(defun sanityinc/toggle-delete-other-windows ()
"Delete other windows in frame if any, or restore previous window config."
(interactive)
(if (and winner-mode
(equal (selected-window) (next-window)))
(winner-undo)
(delete-other-windows)))

(global-set-key "\C-x1" 'sanityinc/toggle-delete-other-windows)

;;----------------------------------------------------------------------------
;; Rearrange split windows
;;----------------------------------------------------------------------------
(defun split-window-horizontally-instead ()
(interactive)
(save-excursion
(delete-other-windows)
(funcall (split-window-func-with-other-buffer 'split-window-horizontally))))

(defun split-window-vertically-instead ()
(interactive)
(save-excursion
(delete-other-windows)
(funcall (split-window-func-with-other-buffer 'split-window-vertically))))

(global-set-key "\C-x|" 'split-window-horizontally-instead)
(global-set-key "\C-x_" 'split-window-vertically-instead)

;; Borrowed from http://postmomentum.ch/blog/201304/blog-on-emacs
(defun sanityinc/split-window()
"Split the window to see the most recent buffer in the other window.
Call a second time to restore the original window configuration."
(interactive)
(if (eq last-command 'sanityinc/split-window)
(progn
(jump-to-register :sanityinc/split-window)
(setq this-command 'sanityinc/unsplit-window))
(window-configuration-to-register :sanityinc/split-window)
(switch-to-buffer-other-window nil)))

(global-set-key (kbd "<f7>") 'sanityinc/split-window)
(global-set-key (kbd "<f6>")
(lambda ()
(interactive)
(switch-to-buffer nil)))


(provide 'init-windows)

Loading…
취소
저장