summaryrefslogtreecommitdiffstats
path: root/articles/emacs.org
diff options
context:
space:
mode:
authorGravatar Tom Willemse2013-10-13 01:04:11 +0200
committerGravatar Tom Willemse2013-10-13 01:04:11 +0200
commit294e9da3b751e6afe71c9981f4cd00003523996d (patch)
tree2428ae39cb080b905c87595e281909bc78b9567b /articles/emacs.org
parent1f885cd7998112287da454880ed5552db8e276cc (diff)
downloadorgweb-294e9da3b751e6afe71c9981f4cd00003523996d.tar.gz
orgweb-294e9da3b751e6afe71c9981f4cd00003523996d.zip
Move everything out of site
Diffstat (limited to 'articles/emacs.org')
-rw-r--r--articles/emacs.org127
1 files changed, 127 insertions, 0 deletions
diff --git a/articles/emacs.org b/articles/emacs.org
new file mode 100644
index 0000000..f76a51a
--- /dev/null
+++ b/articles/emacs.org
@@ -0,0 +1,127 @@
+#+TITLE: Emacs
+#+STYLE: <link rel="stylesheet" type="text/css" href="../../stylesheet.css" />
+#+LINK_UP: ../index.html
+#+LINK_HOME: ../index.html
+#+OPTIONS: H:5
+
+* General Emacs Tips
+
+ Tips might be the wrong word here, but the way I use Emacs has
+ resulted into looking at some things that others might not think of
+ or see.
+
+** Emacs Init File
+
+ Your Emacs init file can be any of the following:
+
+ - ~$HOME/.emacs~
+ - ~$HOME/.emacs.el~
+ - ~$HOME/.emacs.d/init.el~
+
+ I personally use ~$HOME/.emacs.d/init.el~ because that way I can
+ keep *everything* Emacs related in a single directory
+ (~$HOME/.emacs.d~).
+
+** Displaying time
+
+ I've seriously minimized the use of my window manager's task
+ bar. It only shows which tags there are, some important daemons'
+ status (running or not) and whether or not I have mail. This makes
+ it difficult to tell time when I need it. That why it's useful to
+ see what time it is in Emacs, since that is on 99.99% of the time
+ I'm behind my computer, and it's very easy:
+
+ #+BEGIN_SRC emacs-lisp
+ (display-time-mode t)
+ #+END_SRC
+
+ That is all. When you have that in your [[Emacs Init File]], you will
+ always have the time in your modeline.
+
+** Automatically compile startup files
+
+ I know that for 99% of the things you might have in your having a
+ compiled init files won't make much of a difference, but still I
+ like having my init files compiled. This gets messy when you share
+ your init files across multiple PCs and the source files become
+ newer than the compiled ones.
+
+ To fix this I've put only a very little bit of code in my actual
+ [[Emacs Init File]]:
+
+ #+BEGIN_SRC emacs-lisp
+ (require 'bytecomp)
+
+ (defvar startup-files
+ (directory-files "~/.emacs.d/startup/" t "^[^.].*\\.el$")
+ "A list of the files that should be loaded during startup.")
+
+ (while startup-files
+ (let ((filename (car startup-files))
+ (byte-compile-warnings nil))
+ (if (not (eq (byte-recompile-file filename nil 0) nil))
+ (load (substring filename 0 -3))))
+ (setq startup-files (cdr startup-files)))
+ #+END_SRC
+
+ It gets all the files in the ~$HOME/.emacs.d/startup/~ directory
+ that end with ~.el~. It loops through all these files and compiles
+ them, and then loads them. I use ~byte-recompile-file~ instead of
+ ~byte-recompile-directory~ because the directory one didn't work
+ quite right. It doesn't recompile anything if the source file is
+ still up to date, so it only slows down when you have a lot of new
+ files in the ~startup~ directory. It also disables warnings so
+ that you're not bothered by them during startup.
+
+* Emacs as...
+
+ There are *many* things Emacs[fn:emacs] is useful for, not just
+ coding and writing, but certainly very much for these uses as well.
+
+** ... An IDE...
+
+ Emacs features many modes for a lot of different languages.
+
+# *** ... For PHP
+
+# Coming soon...
+
+# *** ... For Python
+
+# Coming soon...
+
+# **** ... With django
+
+# Coming soon...
+
+# *** ... For C
+
+# Coming soon...
+
+# *** ... For Java on Android
+
+# Coming soon...
+
+# *** ... For Go
+
+# Coming soon...
+
+# *** ... For Guile (Scheme)
+
+# Coming soon...
+
+# ** ... A web authoring tool
+
+# Coming soon...
+
+# ** ... An organizational tool
+
+# Coming soon...
+
+# ** ... A social network interface
+
+# Coming soon...
+
+# ** ... A notifier
+
+# Coming soon...