This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-05-31
Channels
- # aws (2)
- # beginners (101)
- # cider (8)
- # clara (8)
- # cljs-dev (3)
- # cljsrn (17)
- # clojars (2)
- # clojure (67)
- # clojure-austin (2)
- # clojure-finland (1)
- # clojure-france (5)
- # clojure-italy (3)
- # clojure-nl (3)
- # clojure-russia (2)
- # clojure-serbia (1)
- # clojure-spec (72)
- # clojure-uk (112)
- # clojurescript (92)
- # core-async (74)
- # core-typed (2)
- # cursive (8)
- # datomic (2)
- # duct (5)
- # emacs (35)
- # events (11)
- # fulcro (32)
- # instaparse (9)
- # jobs (1)
- # luminus (1)
- # lumo (3)
- # off-topic (118)
- # om (2)
- # onyx (10)
- # pedestal (5)
- # re-frame (21)
- # reagent (48)
- # reitit (40)
- # ring (12)
- # shadow-cljs (113)
- # spacemacs (21)
- # tools-deps (47)
Hmm, I think I finally remembering. π Originally we had some setting to indent everything the same way, and I guess we renamed this at some point.
`:always-align' - Follow the same rules as `lisp-mode'. All
args are vertically aligned with the first arg in case (A),
and vertically aligned with the function name in case (B).
For instance:
(reduce merge
some-coll)
(reduce
merge
some-coll)
`:always-indent' - All args are indented like a macro body.
(reduce merge
some-coll)
(reduce
merge
some-coll)
`:align-arguments' - Case (A) is indented like `lisp', and
case (B) is indented like a macro body.
(reduce merge
some-coll)
(reduce
merge
some-coll)"
I now remember discussing this with @malabarba and our slight oversight of using keywords
instead of symbols for the config values.
The original config value was clojure-defun-style-default-indent
- it made clojure-mode
indent everything like defuns
(`:always-ident`).
I seem to recall this kicking off the "debate" π https://github.com/clojure-emacs/clojure-mode/issues/235
Unrelated: for quite a while, I've ben using @timothypratleyβs method ( https://timothypratley.blogspot.com/2014/08/clojure-friendly-word-definitions-in.html ) for having emacs treat hyphenated words as single words (for purposes of eg forward-word
). At some point in the past year, that stopped working reliably for me -- typically navigation by word will treat the first hyphen in a word as equivalent to a space, and the rest as part of the word.
Has anyone else run across this issue? If so, have you been able to figure it out? I've made a number of attempts to track it down, so far without any success. describe-syntax
does show hyphen as a word char, as it should.
Weird. I haven't tried that method and haven't seen any behavior that sounds similar. I have been using SPC t c
to toggle camel case motion quite a bit, though, and it's pretty convenient for camel cased names. (I've been doing Javascript instead of Clojure lately. π±)
Aside from the fact that it isn't working for me at the moment, it's a really nice improvement to have emacs treat hyphenated words as a single word; I recommend it. Note that if you decide to try it, you actually want to apply it to clojure-mode-syntax-table
as described in the 1st comment on that blog post.
When I'm doing clojure, I sometimes like the separate-words functionality. I can still jump over the whole word with e.g. W
and B
(i.e. whitespace-delimited word motions). I guess *
could be an argument for considering the whole thing as a single word, but IIRC clojure-mode was smart enough to deal with *
with whole-word semantics even if w
and b
used separate-word semantics.
Yeah, I keep a couple of other bindings for navigation by subwords, but I like the default to be treating "words" by Clojure's standards.
(I just realized this was #emacs not #spacemacs. My comments assumed spacemacs, for anybody who might have been confused. )
I could always rebind w
to forward-WORD
(ie W
), but then that behaves incorrectly (relative to my preferences) with something like foo-bar]) baz
found it: https://emacs.stackexchange.com/questions/2710/switching-between-window-layouts
@borkdude I use winner-undo
for that exact purpose
You can do-undo window layouts
@borkdude also you can just do toggle-maximize-buffer
(at least in spacemacs), & then doing it again flips you back to the layout you had before.
I wrote a window manager that allows you to push and pop onto a stack of window configurations. Called resize-window
do you use βC-x 5 oβ a lot? I use Cmd-` to switch windows in a lot of apps, maybe I should configure emacs like that
Personally, I never use C-x 5 o
, because I run a tiling window manager, so jumping between frames it not something that I do within Emacs.
I do use multiple open buffers within one frame a lot, though. And winner-mode within that.
Btw, there's a shortcut for winner-undo
. Here's my config for it: https://github.com/munen/emacs.d/#winner-mode
Regarding your shortcut: I'm not aware that just a character as a prefix is a viable shortcut.
I think that's the <Super>
key: http://www.gnu.org/software/emacs/manual/html_node/emacs/Modifier-Keys.html
That sounds about right. I was wrong about my assumption, then. Thanks for that info, @U0BANPG68!
It's an oversight on my part since I only have keybindings on Alt and Ctrl for Emacs. Super is for the WM. But it makes sense to have it available for Emacs combos, of course!
Here are the keybinding conventions for Emacs: https://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Binding-Conventions.html