ishi soichi <soichi...@gmail.com> wrote: > Ah, I need more help, though... > > I have tried this code. I made it as simple as possible to clarify my > question. > > (defun add-word () > (interactive) > '(org-table-put (@2 $2 "word!"))) > > and execute in a buffer having a table already. It did not work at all. >
Four problems: o point must be *in* the table before you call org-table-put (which incidentally also answers your question below about multiple tables). o line and column are integers: @2 and $2 is syntax for table formulas in the spreadsheet, not for providing arguments to this function. o quoting returns the quoted expression unevaluated, so the last line of your function does not do anything much; in particular, it does *not* call org-table-put at all (if it had you would have gotten an error). o lisp functions are called like this: (func arg1 arg2 ...) and *not* like this: (func (arg1 arg2 ...)) So your function should look something like this: (defun add-word () (interactive) (save-excursion (goto-char <some-place-inside-the-table>) (org-table-put 2 2 "word!" t))) where you'll have to figure out how to get the point somewhere inside the table. In the simplest case, providing a character position will work, but is obviously not very general. I won't try to explain the save-excursion here: see its documentation for more details. I'd recommend you spend some time studying the "Introduction to Emacs Lisp" guide: http://www.gnu.org/software/emacs/emacs-lisp-intro/html_node/index.html > But also I kept wondering what could happen if there are two separate tables > in the same buffer? I checked cells with C-c?, then realized that the cell > locations are not unique in more than one table. So, there must be a way to > identify the table in question. > HTH. Nick _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode