(setq load-path (cons "~/.emacs.d/emacs" load-path))
-(load "my-c-mode.el")
-(load "my-generic-stuff.el")
-(load "my-search.el")
-
;; color themes
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
(load-theme 'zenburn t)
-;; setup font
+(require 'package)
+(package-initialize)
+
+(load "my-c-mode.el")
+(load "my-generic-stuff.el")
+(load "my-search.el")
+(load "my-erc.el")
+(load "my-org-mode.el")
+(load "my-slime.el")
+(load "my-twitter.el")
+(load "my-python.el")
+;; setup font
(if (>= emacs-major-version 23)
(setq default-frame-alist '((font . "Inconsolata-12")))
(set-default-font
"-Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO8859-1"))
-;; (set-default-font "-unknown-Inconsolata-normal-normal-normal-*-16-*-*-*-m-8-iso10646-1")
-
(setq-default indent-tabs-mode nil)
-
(add-hook 'emacs-lisp-mode-hook
(lambda () (which-function-mode t)))
-;;; erc
-(require 'erc)
-
-;; Load authentication info from an external source. Put sensitive
-;; passwords and the like in here.
-(load "~/.emacs.d/emacs/.erc-auth")
-
-(require 'erc-services)
-(require 'erc-match)
-(erc-services-mode 1)
-
-(setq erc-prompt-for-nickserv-password nil)
-
-(setq erc-nickserv-passwords
- `((freenode (("vu3rdd" . ,freenode-nick-pass)))
- (debian (("vu3rdd" . ,debian-nick-pass)))))
-
-(setq erc-autojoin-channels-alist
- '((".*\\.freenode.net" "#racket" "#haskell")
- (".*\\.oftc.net" "#debian-arm" "#debian" "#debian-devel")))
-
-(global-set-key "\C-cef" (lambda () (interactive)
- (erc :server "irc.freenode.net" :port "8000"
- :nick "vu3rdd")))
-(global-set-key "\C-ced" (lambda () (interactive)
- (erc :server "irc.debian.org" :port "6668"
- :nick "vu3rdd")))
-
-(setq erc-user-full-name "Ramakrishnan Muthukrishnan")
-(setq erc-email-userid "vu3rdd@gmail.com")
-
-(require 'erc-track)
-(erc-track-mode 1)
-(setq erc-track-switch-direction 'importance)
-
-;; Only track my nick(s)
-(defadvice erc-track-find-face (around erc-track-find-face-promote-query activate)
- (if (erc-query-buffer-p)
- (setq ad-return-value (intern "erc-current-nick-face"))
- ad-do-it))
-
-(setq erc-keywords '("vu3rdd" "rkrishnan"))
-
-(setq erc-track-exclude-types '("JOIN" "NICK" "PART" "QUIT" "MODE"
- "324" "329" "332" "333" "353" "477"))
-
-(global-set-key (kbd "C-c SPC") 'erc-track-switch-buffer)
-
-;; erc notification via notify
-(defun clean-message (s)
- (setq s (replace-regexp-in-string "'" "'"
- (replace-regexp-in-string "\"" """
- (replace-regexp-in-string "&" "&"
- (replace-regexp-in-string "<" "<"
- (replace-regexp-in-string ">" ">" s)))))))
-
-(defun call-libnotify (matched-type nick msg)
- (let* ((cmsg (split-string (clean-message msg)))
- (nick (first (split-string nick "!")))
- (msg (mapconcat 'identity (rest cmsg) " ")))
- (shell-command-to-string
- (format "notify-send -t 5000 -u critical '%s says:' '%s'" nick msg))))
-
-(add-hook 'erc-text-matched-hook 'call-libnotify)
-
-;; Enable logging
-(setq erc-log-insert-log-on-open nil)
-(setq erc-log-channels t)
-(setq erc-log-channels-directory "~/.erc/logs/")
-(setq erc-save-buffer-on-part t)
-(setq erc-save-queries-on-quit nil
- erc-log-write-after-send t
- erc-log-write-after-insert t)
-(defadvice save-buffers-kill-emacs (before save-logs (arg) activate)
- (save-some-buffers t (lambda () (when (and (eq major-mode 'erc-mode)
- (not (null buffer-file-name)))))))
-(add-hook 'erc-insert-post-hook 'erc-save-buffer-in-logs)
-
;; iswitch
(iswitchb-mode 1)
;; smooth scroll
(setq scroll-conservatively 1)
(put 'upcase-region 'disabled nil)
-
(put 'downcase-region 'disabled nil)
;; cscope
(set-frame-size-according-to-resolution)
+;; tramp
(require 'tramp)
+ (setq tramp-default-method "ssh")
;; cut and paste with the rest of ecosystem in X
(setq x-select-enable-clipboard t)
-;; tramp
- (setq tramp-default-method "ssh")
-
-;; copy a line
-(defun duplicate-current-line ()
- (interactive)
- (beginning-of-line nil)
- (let ((b (point)))
- (end-of-line nil)
- (copy-region-as-kill b (point)))
- (back-to-indentation))
-
-;; (global-set-key "\C-b" 'duplicate-current-line)
-
-;;
-;; Start GNUServe process when starting up. This lets us send new files
-;; to previously spawned emacs process.
-;;
-;(load "gnuserv-compat")
-;(load-library "gnuserv")
-;(gnuserv-start)
-;; When loading files reuse existing frames.
-;(setq gnuserv-frame (car (frame-list)))
-
;; remove toolbar
(if (> emacs-major-version 20)
(tool-bar-mode -1))
-;; org mode
-(require 'org-install)
-(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
-(define-key global-map "\C-cl" 'org-store-link)
-(define-key global-map "\C-ca" 'org-agenda)
-(define-key global-map "\C-cb" 'org-iswitchb)
-(setq org-log-done 'time)
-(setq org-startup-indented t)
-
-(setq org-agenda-files (list "~/org/work.org"
- "~/org/remember.org"
- "~/org/debian.org"
- "~/org/clojure.org"
- "~/org/learning.org"
- "~/org/reading.org"
- "~/org/investments.org"))
-
-;; adapted from <http://doc.norang.ca/org-mode.html>
-(setq org-todo-keywords '((sequence "TODO(t)"
- "STARTED(s!)"
- "|"
- "DONE(d!/!)")
- (sequence "WAITING(w@/!)"
- "SOMEDAY(S!)"
- "|"
- "CANCELLED(c@/!)")))
-
-(setq org-todo-keyword-faces (quote (("TODO" :foreground "red" :weight bold)
- ("STARTED" :foreground "blue" :weight bold)
- ("DONE" :foreground "forest green" :weight bold)
- ("WAITING" :foreground "orange" :weight bold)
- ("SOMEDAY" :foreground "magenta" :weight bold)
- ("CANCELLED" :foreground "forest green" :weight bold))))
-
-;; common lisp
-;; Set up the Common Lisp environment
-;(add-to-list 'load-path "/usr/share/common-lisp/source/slime/")
-;(setq inferior-lisp-program "/usr/bin/sbcl")
-;(require 'slime)
-;(slime-setup)
-
-;; cl-doc
-;(autoload 'turn-on-cldoc-mode "cldoc" nil t)
-
;; clojure mode
-(add-to-list 'load-path "~/src/clojure-mode")
+(add-to-list 'load-path "~/.emacs.d/vendor/clojure-mode")
(require 'clojure-mode)
;; highlight parentheses mode
;; "orange1" "yellow1" "greenyellow" "green1"
;; "springgreen1" "cyan1" "slateblue1" "magenta1" "purple"))
-;; slime
-(add-to-list 'load-path "~/src/slime")
-
-(eval-after-load "slime"
- '(progn
- (setq slime-use-autodoc-mode nil)
- (slime-setup '(inferior-slime
- ;; slime-asdf
- ;; slime-autodoc
- slime-banner
- ;; slime-c-p-c
- ;; slime-editing-commands
- slime-fancy-inspector
- slime-fancy
- slime-fuzzy
- ;; slime-highlight-edits
- ;; slime-parse
- ;; slime-presentation-streams
- ;; slime-presentations
- ;; slime-references
- slime-repl
- slime-scratch
- ;;slime-tramp
- ;;slime-typeout-frame
- slime-xref-browser
- slime-scheme))
-
- (setq slime-protocol-version 'ignore)
- (setq slime-complete-symbol*-fancy t)
- (setq slime-complete-symbol-function 'slime-fuzzy-complete-symbol)))
-
-(require 'slime)
-;(setq inferior-lisp-program "~/src/sbcl/src/runtime/sbcl")
-(add-to-list 'slime-lisp-implementations '(sbcl ("/usr/bin/sbcl")))
-(setq slime-default-lisp 'sbcl)
-
-(add-to-list 'load-path "~/src/swank-clojure-extra")
-
-(setq swank-clojure-classpath (append (list "/usr/share/java/clojure.jar"
- "~/src/swank-clojure/src"
- "~/.clojure")
- (directory-files "/usr/share/java/"
- t
- ".jar$")))
-
-(setq swank-clojure-extra-vm-args (list "-server"
- "-noverify"
- "-Xincgc"
- "-Djava.net.preferIPv4Stack=true"
- "-Xms256m"
- "-Xmx1024m"
- "-XX:CompileThreshold=1500"
- "-XX:+UseConcMarkSweepGC"
- "-XX:+UseParNewGC"
- "-XX:+ExplicitGCInvokesConcurrent"
- "-XX:+CMSClassUnloadingEnabled"
- "-XX:MaxPermSize=250m"
- "-XX:+UseAdaptiveSizePolicy"
- "-XX:+AggressiveOpts"
- "-XX:+UseFastAccessorMethods"
- "-XX:+UseFastEmptyMethods"
- "-XX:+UseFastJNIAccessors"
- "-Xverify:none"
- "-XX:+UseCompressedOops"
- "-XX:MaxInlineSize=1024"
- "-XX:FreqInlineSize=1024"))
-
-;; swank gauche
-(setq swank-gauche-path "~/src/swank-gauche")
-(setq swank-gauche-gauche-source-path nil)
-
-(push swank-gauche-path load-path)
-(require 'swank-gauche)
-
-(add-to-list 'slime-lisp-implementations
- '(gauche ("gosh") :init gauche-init :coding-system utf-8-unix))
-
-(eval-after-load "slime"
- '(progn
- (require 'swank-clojure-extra)
- (add-to-list 'slime-lisp-implementations `(clojure ,(swank-clojure-cmd)
- :init swank-clojure-init)
- t)
- (add-hook 'slime-indentation-update-hooks 'swank-clojure-update-indentation)
- (add-hook 'slime-repl-mode-hook 'swank-clojure-slime-repl-modify-syntax t)
- (add-hook 'clojure-mode-hook 'swank-clojure-slime-mode-hook t)))
-
-;; enable cldoc for slime
-;; (dolist (hook '(lisp-mode-hook
-;; slime-repl-mode-hook))
-;; (add-hook hook 'turn-on-cldoc-mode))
-
-;; needed for overriding default method for invoking slime
-(ad-activate 'slime-read-interactive-args)
-
;; paredit
(autoload 'paredit-mode "paredit"
"Minor mode for pseudo-structurally editing Lisp code." t)
(add-hook hook #'(lambda ()
(highlight-parentheses-mode t)
(paredit-mode +1))))
-
;; clojure-test-mode
(autoload 'clojure-test-mode "clojure-test-mode" "Clojure test mode" t)
(autoload 'clojure-test-maybe-enable "clojure-test-mode" "" t)
(add-hook 'clojure-mode-hook 'clojure-test-maybe-enable)
-;; pressing newline, should also indent automatically
-;; (global-set-key "\r" 'newline-and-indent)
-
;; flyspell
(autoload 'flyspell-mode "flyspell" "On-the-fly spelling checker." t)
(global-set-key [f10] 'switch-full-screen)
-;; (defun fullscreen (&optional f)
-;; (interactive)
-;; (set-frame-parameter f 'fullscreen
-;; (if (frame-parameter f 'fullscreen) nil 'fullboth)))
-
-;; (global-set-key [f10] 'fullscreen)
-
-;; (add-hook 'after-make-frame-functions 'fullscreen)
-
;; gist integration
(require 'gist)
-;; mozrepl
-(autoload 'moz-minor-mode "moz" "Mozilla Minor and Inferior Mozilla Modes" t)
-
-(add-hook 'espresso-mode-hook 'espresso-custom-setup)
-(defun espresso-custom-setup ()
- (moz-minor-mode 1))
-
;; browse url
(setq browse-url-browser-function 'browse-url-generic
browse-url-generic-program "/usr/bin/iceweasel"
(when (require 'browse-kill-ring nil 'noerror)
(browse-kill-ring-default-keybindings))
-;; magit-status bound to Cx-g
-(global-set-key (kbd "C-x g") 'magit-status)
-
-;; sql mode
-(require 'sql)
-
;; rainbox mode for CSS color highlighting
(require 'rainbow-mode)
-;; rudel (remote pairing/collaborative editing)
-;(add-to-list 'load-path "~/src/rudel")
-;(load-file "~/src/rudel/rudel-loaddefs.el")
-
(add-to-list 'auto-mode-alist '("\\.rkt$" . scheme-mode))
;; scheme auto complete
'(progn (define-key scheme-mode-map "\t" 'scheme-complete-or-indent)))
;; autocomplete
-(add-to-list 'load-path "~/src/auto-complete/")
+(add-to-list 'load-path "~/.emacs.d/vendor/popup/")
+(add-to-list 'load-path "~/.emacs.d/vendor/auto-complete/")
(require 'auto-complete)
+
+(set-default 'ac-sources
+ '(ac-source-abbrev
+ ac-source-dictionary
+ ac-source-yasnippet
+ ac-source-words-in-buffer
+ ac-source-words-in-same-mode-buffers
+ ac-source-semantic))
+
+(dolist (m '(c-mode c++-mode java-mode))
+ (add-to-list 'ac-modes m))
+
(global-auto-complete-mode t)
;; slime autocomplete
-(add-to-list 'load-path "~/src/ac-slime/")
+(add-to-list 'load-path "~/.emacs.d/vendor/ac-slime/")
(require 'ac-slime)
(set-default 'ac-sources 'ac-source-slime-simple)
(local-set-key "\C-c\C-v" 'racket-enter!)
;; company-mode
-(add-to-list 'load-path "~/src/company-mode")
+(add-to-list 'load-path "~/.emacs.d/vendor/company-mode")
(autoload 'company-mode "company" nil t)
;; handle trailing whitespaces
(and url (browse-url url))
(or url ret))))
-;; (require 'color-theme-zenburn)
-;;(color-theme-zenburn)
-
-(add-to-list 'load-path "~/.emacs.d/emacs/twittering-mode")
-(require 'twittering-mode)
-(add-hook 'twittering-edit-mode-hook (lambda () (ispell-minor-mode) (flyspell-mode)))
-
-(require 'ac-python)
-
-;;; Use python-mode with files with these extensions
-(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
-(add-to-list 'auto-mode-alist '("\\.pyx\\'" . python-mode))
-
-;;; Turn on auto-complete in python shells
-(add-hook 'inferior-python-mode-hook (lambda () (auto-complete-mode 1)))
-
-;;; Use python major mode if 'python' is in hashbang.
-(add-to-list 'interpreter-mode-alist '("python" . python-mode))
-
-;;; Use python as the python interpreter (can be changed to "ipython" in time
-;;; when it works)
-(setq python-python-command "python")
-
-;;; Check files for pep8 mistakes
-(autoload 'python-pep8 "python-pep8")
-(autoload 'pep8 "python-pep8")
-
;;; displays "\" at the end of lines that wrap
(setq longlines-show-hard-newlines t)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indent)
(set-variable 'haskell-program-name "ghci")
-;; chicken swank
-(add-to-list 'load-path "/var/lib/chicken/6/")
-(autoload 'chicken-slime "chicken-slime" "SWANK backend for Chicken" t)
-(setq slime-csi-path "/usr/bin/csi")
-(add-hook 'scheme-mode-hook
- (lambda ()
- (slime-mode t)))
-
;; javascript mode
(autoload 'js2-mode "js2-mode" nil t)
(add-to-list 'auto-mode-alist '("\\.js$" . js2-mode))
(require 'gnus-art)
;; sending email
-;; sending mail
(setq message-send-mail-function 'message-send-mail-with-sendmail
mail-specify-envelope-from t ; Settings to work with msmtp
message-sendmail-f-is-evil nil