X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=dot-files%2F_emacs_el;h=01c8b7b202eb7c7f3d2259b900cd9770ec1ebd50;hb=c1aa3d72d715c7c7cc1e5dea3342230aed4b38b4;hp=0e55b9adc33cf4fe1cdf317f90b1c58da498818d;hpb=4eb4cdfe581f274c84c8ca686becefd892be7c48;p=sugar.git diff --git a/dot-files/_emacs_el b/dot-files/_emacs_el index 0e55b9a..01c8b7b 100644 --- a/dot-files/_emacs_el +++ b/dot-files/_emacs_el @@ -21,6 +21,7 @@ (global-set-key (kbd "C-\\" ) 'toggle-input-method) (global-set-key (kbd "C-RET") 'completion-at-point) +(global-set-key (kbd "C-") 'completion-at-point) (unless window-system (normal-erase-is-backspace-mode t)) @@ -41,6 +42,42 @@ ;; windmove (windmove-default-keybindings) +;; file renaming +;; Originally from stevey, adapted to support moving to a new directory. +(defun rename-file-and-buffer (new-name) + "Renames both current buffer and file it's visiting to NEW-NAME." + (interactive + (progn + (if (not (buffer-file-name)) + (error "Buffer '%s' is not visiting a file!" (buffer-name))) + ;; Disable ido auto merge since it too frequently jumps back to the original + ;; file name if you pause while typing. Reenable with C-z C-z in the prompt. + (let ((ido-auto-merge-work-directories-length -1)) + (list (read-file-name (format "Rename %s to: " (file-name-nondirectory + (buffer-file-name)))))))) + (if (equal new-name "") + (error "Aborted rename")) + (setq new-name (if (file-directory-p new-name) + (expand-file-name (file-name-nondirectory + (buffer-file-name)) + new-name) + (expand-file-name new-name))) + ;; Only rename if the file was saved before. Update the + ;; buffer name and visited file in all cases. + (if (file-exists-p (buffer-file-name)) + (rename-file (buffer-file-name) new-name 1)) + (let ((was-modified (buffer-modified-p))) + ;; This also renames the buffer, and works with uniquify + (set-visited-file-name new-name) + (if was-modified + (save-buffer) + ;; Clear buffer-modified flag caused by set-visited-file-name + (set-buffer-modified-p nil))) + + (setq default-directory (file-name-directory new-name)) + + (message "Renamed to %s." new-name)) + ;; Host specific configuration ------------------------------------------------ (let ((host (system-name))) (cond ((equal host "aria.cielonegro.org") @@ -56,7 +93,6 @@ )))))) ;; Settings for Browser -------------------------------------------------------- -(setq browse-url-browser-function 'w3m-browse-url) (global-set-key "\C-xm" 'browse-url-at-point) ;; Setting for the Mode Line --------------------------------------------------- @@ -70,12 +106,18 @@ (cond ((equal host "seras") (set-frame-font "Dejavu Sans Mono 11" t)) + ((equal host "yukari.cielonegro.org") + (set-frame-font "Dejavu Sans Mono 11" t)) + ((equal host "aria.cielonegro.org") (progn (set-frame-font "Dejavu Sans Mono 13" t) - (set-fontset-font nil 'japanese-jisx0208 "さざなみゴシック") - (set-fontset-font nil 'japanese-jisx0212 "さざなみゴシック") - (set-fontset-font nil 'katakana-jisx0201 "さざなみゴシック")))))) + ;; Emacs 24.4.1 somehow gets very slow when the following + ;; lines are uncommented. + ;;(set-fontset-font nil 'japanese-jisx0208 "さざなみゴシック") + ;;(set-fontset-font nil 'japanese-jisx0212 "さざなみゴシック") + ;;(set-fontset-font nil 'katakana-jisx0201 "さざなみゴシック") + ))))) ;; Hooks for newline-and-indent ------------------------------------------------ ;(mapcar (lambda (hook) @@ -141,6 +183,11 @@ (color-theme-initialize) (color-theme-subtle-hacker))) +;; multi-term +(autoload 'multi-term "multi-term" + "Create new term buffer. +Will prompt you shell name when you type `C-u' before this command." t) + ;; auto-complete (require-if-present 'auto-complete-config) (if (featurep 'auto-complete-config) @@ -164,8 +211,14 @@ (paren-activate)) ;; elscreen -(load "elscreen" "ElScreen" t) -(elscreen-start) +(condition-case e + (load "elscreen" "ElScreen" t) + (file-error + (if (equal (cadr e) "Cannot open load file") + (message "Warning: feature %s is absent" feature) ; warn and ignore + (apply 'signal (car e) (cdr e))))) ; rethrow +(if (featurep 'elscreen) + (elscreen-start)) (require-if-present 'elscreen-w3m) ;; undo-tree @@ -183,6 +236,12 @@ (append '(("\\.rst$" . rst-mode) ("\\.rest$" . rst-mode)) auto-mode-alist)) +;; graphviz-dot-mode +(autoload 'graphviz-dot-mode "graphviz-dot-mode" + "Major mode for the dot language." t) +(add-to-list 'auto-mode-alist '("\\.dot\\'" . graphviz-dot-mode)) +(add-to-list 'auto-mode-alist '("\\.gv\\'" . graphviz-dot-mode)) + ;; textile-mode (autoload 'textile-mode "textile-mode" "Major mode for editing Textile documents." t) @@ -196,6 +255,10 @@ (autoload 'lua-mode "lua-mode" "Lua editing mode." t) (add-to-list 'auto-mode-alist '("\\.lua$" . lua-mode)) +;; protobuf-mode +(autoload 'protobuf-mode "protobuf-mode") +(add-to-list 'auto-mode-alist '("\\.proto\\'" . protobuf-mode)) + ;; scala-mode2 (add-to-list 'load-path "~/sandbox/_scala/scala-mode2") (require-if-present 'scala-mode2) @@ -272,6 +335,11 @@ (add-to-list 'auto-mode-alist '("\\.js$" . js2-mode)) (add-to-list 'auto-mode-alist '("\\.json$" . javascript-mode)) +;; typescript +(autoload 'typescript-mode "typescript-mode" + "Major mode for editing typescript." t) +(add-to-list 'auto-mode-alist '("\\.ts$" . typescript-mode)) + ;; vimrc (autoload 'vimrc-mode "vimrc-mode" "Major mode for editing `.vimrc', `xxx.vim' and `.exrc' files." t) @@ -354,6 +422,10 @@ (setq cperl-indent-level 4) (setq cperl-indent-parens-as-block t) +;; Lua +(autoload 'lua-mode "lua-mode" "Lua Mode" t) +(add-to-list 'auto-mode-alist '("\\.lua\\'" . lua-mode)) + ;; Erlang (require-if-present 'erlang-start) (setq erlang-electric-commands nil) @@ -404,11 +476,20 @@ (setq tsv-separator-list '("\t")) ;(add-to-list 'auto-mode-alist '("\\.[Tt][Ss][Vv]\\'" . tsv-mode)) +;; markdown-mode +;; http://jblevins.org/projects/markdown-mode/ +(autoload 'markdown-mode "markdown-mode.el" "Major mode for editing Markdown files" t) +(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode)) + ;; yaml-mode (autoload 'yaml-mode "yaml-mode" "Major mode for editing YAML files." t) (add-to-list 'auto-mode-alist '("\\.ya?ml$" . yaml-mode)) +;; less-css-mode +(autoload 'less-css-mode "less-css-mode" "Major mode for editing LESS files" t) +(add-to-list 'auto-mode-alist '("\\.less\\'" . less-css-mode)) + ;; Troublesome Tasks (if (equal (system-name) "seras") (progn @@ -488,6 +569,7 @@ '(ac-ignore-case nil) '(appt-display-format (quote window)) '(appt-message-warning-time 20) + '(browse-url-browser-function (quote browse-url-firefox)) '(canlock-password "a14fa4d2601465d55585c291fa8b3943e189e716") '(cleite:auto-refresh-interval nil) '(cleite:measure-srpc-call-time t) @@ -516,6 +598,8 @@ '(ecb-windows-width 0.2) '(elscreen-display-tab t) '(global-whitespace-mode t) + '(graphviz-dot-auto-indent-on-newline nil) + '(graphviz-dot-auto-indent-on-semi nil) '(haskell-program-name "ghci") '(ido-enable-flex-matching t) '(ido-everywhere t) @@ -524,6 +608,7 @@ ("\\`CVS/" "\\`#" "\\`.#" "\\`\\.\\./" "\\`\\./" "\\.ttc"))) '(ido-work-directory-list-ignore-regexps (quote ("^\\(/mnt/ibm/\\|/Volumes/IBM80GB/\\)"))) '(indent-tabs-mode nil) + '(ispell-dictionary "english") '(jabber-nickname "PHO") '(jabber-resource "emacs") '(jabber-server "jabber.jp") @@ -534,6 +619,7 @@ '(js2-mirror-mode nil) '(js2-use-font-lock-faces t) '(makefile-mode-hook (quote ((lambda nil (set-variable (quote tab-width) 8))))) + '(markdown-live-preview-delete-export (quote delete-on-export)) '(mediawiki-site-alist (quote (("Wikipedia" "http://en.wikipedia.org/w/" "username" "password" "Main Page") @@ -633,6 +719,7 @@ ("schemas.xml" "~/share/nxml/schemas.xml" "/usr/pkg/share/emacs/site-lisp/nxml-mode/schema/schemas.xml"))) '(rst-level-face-base-light 50) '(safe-local-variable-values (quote ((todo-categories "Todo" "Todo" "Todo" "Todo")))) + '(select-enable-clipboard t) '(session-use-package t nil (session)) '(tramp-auto-save-directory "/tmp/tramp-auto-save") '(tramp-completion-reread-directory-timeout 2) @@ -640,6 +727,7 @@ '(tramp-default-method "sshx") '(uniquify-buffer-name-style (quote forward) nil (uniquify)) '(uniquify-trailing-separator-p t) + '(vc-cvs-diff-switches (quote ("-u"))) '(vc-cvs-stay-local nil) '(w3m-bookmark-file-coding-system (quote utf-8)) '(w3m-coding-system (quote utf-8)) @@ -654,12 +742,11 @@ '(w3m-output-coding-system (quote utf-8)) '(w3m-terminal-coding-system (quote utf-8)) '(w3m-use-cookies t) - '(whitespace-global-modes (quote (not mew-summary-mode))) + '(whitespace-global-modes (quote (not mew-draft-mode mew-summary-mode))) '(whitespace-style (quote (face tabs trailing space-before-tab newline indentation empty space-after-tab))) - '(woman-cache-filename "~/.wmncach.el") - '(x-select-enable-clipboard t)) + '(woman-cache-filename "~/.wmncach.el")) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful.