Czy można usunąć „\ emsp” z raportu zegara, ale zachować wcięcie?

19

Czy można zastąpić „\ emsp” zwykłymi spacjami?

To znaczy, w raportach z zegarem istnieje wiele takich plików. (Zobacz przykład poniżej.)

Mogę się ich pozbyć, ustawiając „: wcięcie zero”. Ale to całkowicie usuwa wszystkie wcięcia, co jest niepożądane. Mogę się ich również pozbyć, jeśli eksportuję rzeczy. Ale w widoku Agenda nie eksportuję raportów, a pliki \ emsp są tylko wizualną rozrywką.

Do tej pory mogłem usunąć słowa kluczowe „TODO” za pomocą formatera, jak opisano tutaj . Ale formater wydaje się nie widzieć „\ emsp” i nie może ich usunąć. Wygląda na to, że zostały dodane później.

|-----------+-------------------------------------------------------------------+---------+------|
| dev.org   | *File time*                                                       | *9:54*  |      |
|           | Dev                                                               | 9:54    |      |
|           | \emsp Configure VMs for testing [[elisp:(my/goto-parent)][parent]]                            |         | 5:03 |
|           | \emsp test if DND works in outline view in Mars (4.5) Build id: I20150217-0800 has outline view fixed (RHBZ#1012336). |         | 0:16 |
|           | \emsp GtkMenuItem directly instead of GtkImageMenuItem            |         | 1:28 |
|           | \emsp Bug 459487 - [GTK] Replace deprecated gtk_arrow_* with gtk_image |         | 1:31 |
|           | \emsp General                                                     |         | 1:36 |
Lew Ufimcew
źródło
Odpowiedź Boutrosa jest prawidłowa, pamiętaj tylko, aby nie umieścić jej w pliku o nazwie org-table.el, w przeciwnym razie Twoje tabele wybuchną.
Dr Bombay

Odpowiedzi:

25

To jest błąd, IMO. Ktoś narzekał, że stare znaczniki wcięcia zaburzają układ tabeli w wydruku lateksu, więc ktoś zastąpił je tymi instrukcjami lateksu. Teraz oczywiście jest bałagan na ekranie.

Myślałem, że nowy prettify-symbols-modemoże być przydatnym sposobem na zamianę \emspna coś innego, ale to może zastąpić tylko jeden znak i zaburza układ tabeli z powodu zmieniającej się szerokości.

Nie ma więc nic innego, jak przedefiniować kod wcięcia:

(defun my-org-clocktable-indent-string (level)
  (if (= level 1)
      ""
    (let ((str "^"))
      (while (> level 2)
        (setq level (1- level)
              str (concat str "--")))
      (concat str "-> "))))

(advice-add 'org-clocktable-indent-string :override #'my-org-clocktable-indent-string)

Zmień znaczniki wcięcia na smak.

Boutros Boutros Garlic
źródło
Szkoda, jeśli chodzi o niezgodności. Dobrze byłoby kiedyś to naprawić. Powyższa funkcja naprawia dla mnie rzeczy, dziękuję za wysłanie.
Lew Ufimcew
Wygląda na to, że potrzebuję emacsa 24.4, aby to działało. Aktualizuj z Fedory 20 do 21.
Leo Ufimcew
Działa w Emacs 24.4
Leo Ufimtsev
1
jest to w zasadzie naprawione w org-mode 8.3, więc możesz ponownie użyć tej funkcji: orgmode.org/cgit.cgi/org-mode.git/tree/lisp/org-clock.el#n2685
anarcat
Używam tego z ╰ jako początkowym znacznikiem i ─ zamiast myślników (Mx insert-char BOX DRAWINGS LIGHT ARC UP I RIGHT oraz BOX RYSUNKI LIGHT HORIZONTAL). Wygląda całkiem nieźle - dziękuję! ╰─> E-Mails lesen
Arne Babenhauserheide,
3

Instrukcja obsługi symboli specjalnych mówi

Jeśli chcesz, aby jednostki były wyświetlane jako znaki UTF-8, użyj następującego polecenia:

DW Cx \

Przełącz wyświetlanie jednostek jako znaków UTF-8. Nie zmienia to zawartości bufora, która pozostaje zwykłym ASCII, ale nakłada znak UTF-8 wyłącznie do celów wyświetlania.

Możesz włączyć to domyślnie, ustawiając zmienną org-pretty-entities, lub na podstawie pliku z opcją #+STARTUP: entitiespretty.

Bae
źródło
Czy mogę sobie podziękować za opublikowanie tego! Potrzebowałem tego 6 miesięcy później: P
Bae