summaryrefslogtreecommitdiff
path: root/elchemy-functions.el
blob: a5919d70a4458ebbfef24f1dee82eb6c0731dc94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
(defun elchemy/replace-in-buffer ()
  "Replace strings in buffer"
  (interactive)
  (save-excursion
    (if (equal mark-active nil) (mark-word))
    (setq elchemy/rib/current-word (buffer-substring-no-properties (mark) (point)))
    (setq elchemy/rib/old-string (read-string "OLD string: " elchemy/rib/current-word))
    (setq elchemy/rib/new-string (read-string "NEW string: " elchemy/rib/old-string))
    (query-replace elchemy/rib/old-string elchemy/rib/new-string nil (point-min) (point-max))))

(defun elchemy/add-to-pypath (&optional path)
  "* Add to python path"
  (interactive)
  (let* ((fullpath (if path
		       path
		     (ido-read-directory-name "Path: "))))
    (setenv "PYTHONPATH"
	    (let ((current (getenv "PYTHONPATH"))
		  (new fullpath))
	      (if current
		  (concat new ":" current)
		new)))))

(defun elchemy/personal/ignore-angle-brackets ()
  "Ignore angle brackets in org mode"
  (modify-syntax-entry ?< ".")
  (modify-syntax-entry ?> "."))

(defun elchemy/read-alist-file (file-path)
  "Read a file where each line is an alist of the form (name . location), returning a list of these pairs."
  (interactive "fEnter file path: ")
  (let (result)
    (with-temp-buffer
      (insert-file-contents file-path)
      (goto-char (point-min))
      (while (not (eobp))
        (let ((line (buffer-substring-no-properties (line-beginning-position) (line-end-position))))
          (when (not (string-blank-p line))
            (let ((pair (car (read-from-string line))))
              (push pair result))))
        (forward-line 1)))
    (reverse result)))

(defun elchemy/find-file (FILENAME)
  "Find File to new split"
  (let ((buffer (find-file-noselect FILENAME)))
    (when (one-window-p)
      (split-window-right))
    (other-window 1)
    (switch-to-buffer buffer)))

(defun elchemy/term (TERM)
  "Terminal to new split"
  (when (one-window-p)
    (split-window-right))
  (other-window 1)
  (term TERM))

(provide 'elchemy-functions)