Great! emacs is my favorite editor, I used it for many years now except for
Java dev because I'm too lazy to configure intelli-sens... In the following
there is all I *use* in emacs and which make you ready to use emacs - as I
am - daily.

I use emacs 24 and the following only needs a vanilla emacs install and
there is nothing specific to Clojure.

C is Ctrl
M is Meta (Alt)

C-x means Ctrl+X...
C-x b means Ctrl+X then b


> My current major stumbling block though is navigating my project.  Whilst
> (I expect) the density and sane namespacing capabilities of Clojure to
> significantly reduce the number of files, that isn't true of everything.
>  In particular, ExtJS encourages you to follow the "one file per class".
>  You don't have to but eventually you will have more than a handful of
> files regardless.
>
> So my questions:
>  - is there a decent project explorer.  I really miss the "tree on the
> left, editor on the right" layout
>

speedbar: «C-X speedbar»

It's in vanilla emacs 24, it does also file/class explorer, but I don't use
it. I only use «buffer navigation»:

- «C-x C-f» to browser file system
- «C-x b» to switch to the previous buffer, but the mini-buffer is active
you can type the name of a buffer. If you have a lot of similarly named
buffers use the «Use directory names in buffer names», it use a clever
algorithm based on the path to the file to name the buffer - when needed...
autocompletion work with tab and their might be smart extension to improve
it, but for me it's enough

There is also the the following bindings «C-x right/left arrow» but I
seldom use them.

 - is there a decent JS and clojure autocompletion aware plugin
>

I don't use any intelli-autocompletion but the basic autocompletion, it's a
vanilla feature: «M-/» it does autocompletion based on the names that are
already in the current buffer. You can use several times «M-/» to change
the cnd directory, I use the followings, use arrows to navigate
the ompletion.

Also to search for something in a file I use «C-s» then mini-buffer, if you
don't capitalize it do a case insensitive search. There is also «C-r» for
backward but instead I do the following when I want to search the whole
file «M-g 0 enter» which brings you at the top of the file then «C-s» the
things. «M-g» is go to line by the way.

I don't use bookmarks, I use my memory and the above commands, speebar can
help in big files, if any.

Also I use «C-g» to get away «quit» the mini-buffer.

In a buffer, I use «C-a» and «C-e» to respectively go at the end of the
beginning of the line and end of the line.

«C-k» to «kill» a line or several
«C-y» to yield what you killed
«C-_» to undo

To select use «C-space» then navigate, then «C-w» to cut and «C-y» to yield.

Also you will probably want if you have a big screen to cut the window to
be able to look at two files at the same time:

- «C-x 3» cut vertically
- «C-x 2» cut horizontally

Then, you might sometime want to use:

- «C-1» maximize current frame
- «C-0» close current frame

Most of the time I use only two frames with vertical separation.

 - other than paredit, nrepl and clojure-mode (and the excellent
> coffee-mode for coffeescript), what other plugins should I install
>

dired-x<http://www.gnu.org/software/emacs/manual/html_node/dired-x/index.html#Top>,
here is the configuration that use for it, it allows not to show useless
files in the buffer and mini-buffer:

(require 'dired-x)
(setq dired-omit-files
      (rx (or (seq bol (? ".") "#")         ;; emacs autosave files
      (seq "~" eol)                 ;; backup-files
      (seq bol "svn" eol)           ;; svn dirs
      (seq ".pyc" eol))))

(setq dired-omit-extensions
      (append dired-latex-unclean-extensions
      dired-bibtex-unclean-extensions
      dired-texinfo-unclean-extensions))
(add-hook 'dired-mode-hook (lambda () (dired-omit-mode 1)))
(put 'dired-find-alternate-file 'disabled nil)

This works in without the extension: When you browser your file systems
with «C-x C-f» you can do some operations on the files and directory, I use
the followings, use arrows to navigate the buffer, then on a file or
directory:

- «C-r» to rename then put the new name in mini-buffer (it's a mv)
- «C-c» to copy then put the new name in mini-buffer
- «C-d» to delete
- «g» to update the content of dired (if you created a file with «C-x f» it
won't appear in dired before you hit «g»)

To look a particular directory go to this directory with «C-x C-f» hit
enter then «M-x grep-find the-thing-you-are-looking-for»

Also if you use git or mercurial (I have an extension for mercurial...):
- you can commit a file with «C-x v v» (yes two times «v») then a buffer
will show up write the commit message, submit the message with «C-c C-c»:
Done.
- you can show global colored diff with «C-x v d»

If you want to send mail you can hit «C-x m» then «C-c C-c» to send.

I also use flymake with flymake-cursor for code linting/feedback.

I use the zenburn theme <https://github.com/bbatsov/zenburn-emacs> which
happens to work great when you use emacs in daemon
mode<http://www.emacswiki.org/emacs/EmacsAsDaemon>.
Daemon mode allows to share buffers between emacs instances and it runs
faster of course.

Last but (probably) not least org-mode is very popular it is some kind of
restructured/markdown syntax that can be useful for many things like
generating pdf, latex, creating todos and probably growing a dollar-tree ;)
And tramp <http://www.gnu.org/software/tramp/> is useful if you need to do
editing on a remote location and/or with su rights directly in emacs.

Since python 24 you can install directly extensions within
emacs<http://emacswiki.org/emacs/ELPA>with «M-x
package-list-packages», browser then hit «i» to install the
extension you are hover, use  «x» to effectively install it. You will need
to reboot for the installation to take effect.

my .emacs is 
available<https://github.com/amirouche/dotfiles/blob/master/src/emacs>
but
not updated, like I said I use very little extensions so it's very
simple... hence I don't understand why people say you can't use emacs
without configuring it. The only thing I struggled with is space/tabs
things, and minor-modes to have javascript/css highlighted in html files
but this is... minor.

I forgot to save a file «C-x C-s» and to quit «C-x C-c»

Regards,

Amirouche

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to