I even do with specialized boxes/formatting environments with InputAliases, largely through TemplateBox. All of this is possible to set at the stylesheet level
@b3m2a1 Thanks, that's really helpful. I've almost never looked at the stylesheet stuff because it seemed very 2004 and I didn't want to give myself a headache. Are you aware of a handy QA somewhere to explain how to do this for all notebooks?
@kirkus That's probably a good idea, but I work on linux and I don't know if there's a nice cohesive option there. I actually use a custom keyboard for which I can write the firmware (using QMK qmk.fm) so it's really my own fault that | is hard to reach
Suppose I could actually make some keys that just input <| and |> now that I think about it...
@KimJongUn I don't have Mathematica available right now but perhaps something like Join @@@ f[...] or Flatten /@ f[...]. If you need to do it with pattern matching, perhaps f[...] ./ f[x_] :> f[Flatten[x]]
@KimJongUn I don't understand what you are trying to say with that code. All Mathematica code is a single expression of the form head[subexpr1, subexpr2, ...]. Lots of books on Mathematica begin with a sentence to this very effect. Have a look at FullForm to see that any Mathematica code can be written in this way. Now, [x__] is supposed to be a subexpressions of Rule (->) but it clearly is not a an expression, because it does not have the format head[subexpr1, subexpr2,...]