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