* removed dotfiles stuff, this is emacs.d only
This commit is contained in:
		
							parent
							
								
									46b80c00fd
								
							
						
					
					
						commit
						e320f14263
					
				
					 17 changed files with 0 additions and 117 deletions
				
			
		
							
								
								
									
										130
									
								
								init-functions.el
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								init-functions.el
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,130 @@ | |||
| ;; A few handy functions I use in init.el (or not, but they're nice to | ||||
| ;; have) | ||||
| 
 | ||||
| (defun custom-download-theme (url filename) | ||||
|   "Downloads a theme through HTTP and places it in ~/.emacs.d/themes" | ||||
| 
 | ||||
|   ;; Ensure the directory exists | ||||
|   (unless (file-exists-p "~/.emacs.d/themes") | ||||
|     (make-directory "~/.emacs.d/themes")) | ||||
| 
 | ||||
|   ;; Adds the themes folder to the theme load path (if not already | ||||
|   ;; there) | ||||
|   (unless (member "~/.emacs.d/themes" custom-theme-load-path) | ||||
|     (add-to-list 'custom-theme-load-path "~/.emacs.d/themes")) | ||||
| 
 | ||||
|   ;; Download file if it doesn't exist. | ||||
| 
 | ||||
|   (let ((file | ||||
|          (concat "~/.emacs.d/themes/" filename))) | ||||
|     (unless (file-exists-p file) | ||||
|       (url-copy-file url file)))) | ||||
| 
 | ||||
| (defun custom-download-script (url filename) | ||||
|   "Downloads an Elisp script, places it in ~/.emacs/other and then loads it" | ||||
| 
 | ||||
|   ;; Ensure the directory exists | ||||
|   (unless (file-exists-p "~/.emacs.d/other") | ||||
|     (make-directory "~/.emacs.d/other")) | ||||
| 
 | ||||
|   ;; Download file if it doesn't exist. | ||||
|   (let ((file | ||||
|          (concat "~/.emacs.d/" filename))) | ||||
|     (unless (file-exists-p file) | ||||
|       (url-copy-file url file)) | ||||
| 
 | ||||
|     (load file))) | ||||
| 
 | ||||
| ;; This clones a git repository to 'foldername in .emacs.d | ||||
| ;; if there isn't already a folder with that name | ||||
| (defun custom-clone-git (url foldername) | ||||
|   "Clones a git repository to .emacs.d/foldername" | ||||
|   (let ((fullpath (concat "~/.emacs.d/" foldername))) | ||||
|     (unless (file-exists-p fullpath) | ||||
|       (shell-command (concat "git clone " url " " fullpath)))) | ||||
|   ) | ||||
| 
 | ||||
| ;; These come from magnars, he's got some awesome things. | ||||
| 
 | ||||
| (defun goto-line-with-feedback () | ||||
|   "Show line numbers temporarily, while prompting for the line number input" | ||||
|   (interactive) | ||||
|   (unwind-protect | ||||
|       (progn | ||||
|         (linum-mode 1) | ||||
|         (call-interactively 'goto-line)) | ||||
|     (linum-mode -1))) | ||||
| 
 | ||||
| (defun rotate-windows () | ||||
|   "Rotate your windows" | ||||
|   (interactive) | ||||
|   (cond ((not (> (count-windows)1)) | ||||
|          (message "You can't rotate a single window!")) | ||||
|         (t | ||||
|          (setq i 1) | ||||
|          (setq numWindows (count-windows)) | ||||
|          (while  (< i numWindows) | ||||
|            (let* ( | ||||
|                   (w1 (elt (window-list) i)) | ||||
|                   (w2 (elt (window-list) (+ (% i numWindows) 1))) | ||||
| 
 | ||||
|                   (b1 (window-buffer w1)) | ||||
|                   (b2 (window-buffer w2)) | ||||
| 
 | ||||
|                   (s1 (window-start w1)) | ||||
|                   (s2 (window-start w2)) | ||||
|                   ) | ||||
|              (set-window-buffer w1  b2) | ||||
|              (set-window-buffer w2 b1) | ||||
|              (set-window-start w1 s2) | ||||
|              (set-window-start w2 s1) | ||||
|              (setq i (1+ i))))))) | ||||
| 
 | ||||
| (defun untabify-buffer () | ||||
|   (interactive) | ||||
|   (untabify (point-min) (point-max))) | ||||
| 
 | ||||
| (defun indent-buffer () | ||||
|   (interactive) | ||||
|   (indent-region (point-min) (point-max))) | ||||
| 
 | ||||
| (defun cleanup-buffer () | ||||
|   "Perform a bunch of operations on the whitespace content of a buffer. | ||||
| Including indent-buffer, which should not be called automatically on save." | ||||
|   (interactive) | ||||
|   (untabify-buffer) | ||||
|   (delete-trailing-whitespace) | ||||
|   (indent-buffer)) | ||||
| 
 | ||||
| ;; These come from the emacs starter kit | ||||
| (defun esk-pretty-lambdas () | ||||
|   (font-lock-add-keywords | ||||
|    nil `(("(?\\(lambda\\>\\)" | ||||
|           (0 (progn (compose-region (match-beginning 1) (match-end 1) | ||||
|                                     ,(make-char 'greek-iso8859-7 107)) | ||||
|                     nil)))))) | ||||
| 
 | ||||
| (defun esk-eval-and-replace () | ||||
|   "Replace the preceding sexp with its value." | ||||
|   (interactive) | ||||
|   (backward-kill-sexp) | ||||
|   (condition-case nil | ||||
|       (prin1 (eval (read (current-kill 0))) | ||||
|              (current-buffer)) | ||||
|     (error (message "Invalid expression") | ||||
|            (insert (current-kill 0))))) | ||||
| 
 | ||||
| (defun esk-add-watchwords () | ||||
|   (font-lock-add-keywords | ||||
|    nil '(("\\<\\(FIX\\(ME\\)?\\|TODO\\|HACK\\|REFACTOR\\|NOCOMMIT\\)" | ||||
|           1 font-lock-warning-face t)))) | ||||
| 
 | ||||
| (defun esk-sudo-edit (&optional arg) | ||||
|   (interactive "p") | ||||
|   (if (or arg (not buffer-file-name)) | ||||
|       (find-file (concat "/sudo:root@localhost:" (ido-read-file-name "File: "))) | ||||
|     (find-alternate-file (concat "/sudo:root@localhost:" buffer-file-name)))) | ||||
| 
 | ||||
| (defun speak (m &optional voice) | ||||
|   (shell-command (if 'voice (concat "say -v " voice " \"" m "\"") | ||||
|                    (concat "say " m)))) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue