3

I used to think that you can just type =13*57 into an org-mode table's cell, hit Tab or Ret, and have it enter the result for you. Today, I learned that this isn't true the hard way as I used this a lot, recomputed the entire table via C-u C-c C-c, and performed too many steps to undo the mistakes before I noticed them. Until recently, I didn't recompute entire tables, so I probably got tables using this which will explode upon recomputation.

Apparently, using the above lets the table know that the entire column ought to have that value, for some reason. Upon recomputation of the affected cells, this takes effect.

This yields the question of what I assumed =13*57 does can be done in a similarly easy fashion.

I know that you could use :=13*57 but that enters the formula into the table formulas line which can get it cluttered up pretty quickly. I just want the result of the computation to be entered. How it came to be doesn't have to be preserved.

NickD
  • 27,023
  • 3
  • 23
  • 42
UTF-8
  • 885
  • 6
  • 22

2 Answers2

5

quickly calculating

If you're just using constants, like your example 13*57, and not referring to other cells in the org table, you can use quick-calc to do this calculation.

M-x quick-calc reads an expression from the minibuffer, calculates it, and displays the result in the minibuffer.

inserting at point

With a prefix argument, it will also insert the result at point. So C-u M-x quick-calc 13*57<RET> will insert 741 at point in your org table -- and will also work anywhere in Emacs.

older emacsen

If you're on an Emacs older than 25.1, #'quick-calc exists, but does not do anything with the prefix argument. You can, when entering the expression, use C-j rather than RET, to tell #'quick-calc to insert the result at point. So the solution becomes M-x quick-calc 13*57 C-j.

zck
  • 8,984
  • 2
  • 31
  • 65
  • `quick-calc` displays the correct result but doesn't enter it into the document when I give it a prefix argument. I tried it both in an org table and in the scratch buffer. I also tried actually putting a number into the prefix argument but it didn't enter it either. Pressing `C-j` instead of `RET`, however, does enter the result into the document. Do you know why `C-u M-x quick-calc 13*57` doesn't work for me? I SSHed into a sever to check whether it works on the server but it doesn't either. If it did, maybe I could fiddle something together to make it work with a quick shortcut. – UTF-8 Oct 16 '17 at 20:49
  • Hrm, are you running an old version of Emacs? Perhaps this is something that's changed recently? If you look at the quick-calc documentation, does it take an optional argument `INSERT`? If so, a simple wrapper around it could be written. – zck Oct 16 '17 at 21:31
  • 1
    I use 24.5.1 and don't know how to access the documentation of a function. `describe-function` only yields this: https://pastebin.com/PULgKWJi I'm not sure whether that's what I'm supposed to be looking for. If I follow the link `calc.el, I only see that same text and that that function calls `calc-do-quick-calc`. `describe-function` doesn't even know `calc-do-quick-calc`. Can you please tell me how to access the documentation? – UTF-8 Oct 16 '17 at 22:03
  • `#'describe-function` is looking up the documentation for the function. (You can also call it with `C-h f` if you want). I looked at some old NEWS files, and the prefix argument functionality to `#'quick-calc` was added in Emacs 25.1 So you can update to a newer Emacs, or just use `C-j` instead of RET to enter the expression. – zck Oct 17 '17 at 04:36
  • 1
    Works with Emacs 25, so I came back to accept the fact this answer. Thank you for it and sorry for waiting with accepting it. – UTF-8 Mar 02 '18 at 15:44
0

You can use the calculator package, see here: https://www.gnu.org/software/emacs/manual/html_node/calc/RPN-Tutorial.html#RPN-Tutorial

You get your result fast and you can paste it into the org-tabular.

Keks Dose
  • 508
  • 4
  • 19
  • This has the disadvantages that that package uses RPN which I'm not comfortable with atm and that it doesn't use the normal order of operations iirc (either multiplication or division has higher precedence). I don't want to screw up my calculations because of those things. – UTF-8 Oct 16 '17 at 20:53