org-mode – Ir a la última línea en la tabla de organización

Pregunta:

En modo org, necesito una función para mover el punto a la última fila de una tabla nombrada de longitud arbitraria.

Ejemplo:

Desde cualquier lugar del búfer, me gustaría ir a:

#+NAME: table-with-unique-name
|---+---------|
| X | Y       |
|---+---------|
| a | some    |
| b | random  |
| c | content | <--first cell in this row
|---+---------|

Entonces:

  • ¿Existe una forma más elegante de ir a una tabla con nombre que buscar #+NAME: table-with-unique-name y next-line ?

EDITAR: ok, entonces voy con una función que busca la línea #+NAME: table-with-unique-name y va a la next-line pero eso también me está dando problemas. Con esta función:

(defun test-goto-table ()
  (interactive)
    (goto-char (point-min))
    (re-search-forward "^#\\+NAME: table-with-unique-name")
    (next-line))

Puedo ir a la tabla con éxito si existe, pero si la búsqueda falla, el punto termina al principio del búfer. ¿Hay alguna forma de ajustar la re-search-forward o alguna otra forma inteligente de buscar en todo el búfer? [Resuelto utilizando save-excursion . Consulte "Editar 2" para conocer la función de trabajo.]

  • [Respondido] Una vez en la mesa, ¿cómo puedo ir a la última línea? (Sé que hay una función llamada org-table-goto-line pero no puedo hacer que vaya a la última línea, solo a un número de línea específico).

EDITAR 2: Esto funciona para ir a una celda específica de una tabla con un nombre único:

(defun tracktable-exists-p ()
  (save-excursion
    (goto-char (point-min))
    (re-search-forward "^#\\+NAME: table-with-unique-name" nil t)))

(defun test-goto-cell ()
  (interactive)
  (if (tracktable-exists-p)
      (let ((tabel "^#\\+NAME: table-with-unique-name"))
        (goto-char (point-min))
        (re-search-forward tabel nil t)
        (show-subtree) ; necessary if the table is hidden in a subtree
        (goto-char (org-table-end))
        (previous-line 2) ; the dotted line in the bottom is not recognized as part of the table by 'org-table-goto-column' so go two lines up.
        (org-table-goto-column 1))
    (message "table-with-unique-name doesn't exist")))

Marco Wahl resolvió la parte difícil, aceptando la respuesta.

Respuesta:

Esta es una respuesta a 'Una vez en la mesa, ¿cómo puedo ir a la última línea?'. Entonces esta es solo una respuesta parcial.

Puede usar este comando que en su núcleo usa la función 'org-table-end'.

(defun stackexchange-org-table-goto-last-line ()
  (interactive)
  (goto-char (org-table-end))
  (backward-char)
  (org-table-goto-column 1))

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım