Jak wyświetlać linie wcięć w Emacsie?

Próbuję przełączyć się na Emacsa jako główny edytor kodu źródłowego. Brakuje mi jednej rzeczy (często spotykanej w nawet znacznie prostszych edytorach) - prowadnic wcięcia (dyskretne pionowe linie pokazujące poziom wcięcia). Czy Emacs jest w stanie je wyświetlić?

Author: Svante, 2009-10-19

3 answers

Stworzyłem w tym celu funkcję highlight-indentation, kod jest na GitHubie.

Podczas wywoływania highlight-indentation bez argumentu przedrostka bieżący poziom wcięcia jest naiwnie odgadywany z trybu głównego (python, ruby i języki oparte na trybie cc). Działa tylko dla wgnieceń przestrzeni. Dostosuj highlight-indent-face, aby zmienić wygląd linii wcięć.

Przykłady (ruby, python): Przykład Ruby, Python

Często używam również tego fragmentu, który składa cały kod na poziomie wcięcia większym niż aktualna linia. Jest to świetny sposób na uzyskanie szybkiego przeglądu zarysu.

(defun aj-toggle-fold ()
  "Toggle fold all lines larger than indentation on current line"
  (interactive)
  (let ((col 1))
    (save-excursion
      (back-to-indentation)
      (setq col (+ 1 (current-column)))
      (set-selective-display
       (if selective-display nil (or col 1))))))
(global-set-key [(M C i)] 'aj-toggle-fold)
 74
Author: antonj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-16 09:25:28

Z mojej wiedzy nikt do tej pory nie zaimplementował poradników wcięć dla Emacsa. Najbliższą rzeczą, jaką możesz uzyskać, jest wizualizacja kart z pakietem spacji, zobacz Pokaż karty z innym znakiem (Emacs) .

 5
Author: danielpoe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:30:17

Załóżmy, że możesz zgiąć ColumnMarker do swoich potrzeb, ale podświetli kolumnę nie daje ci ani jednego piksela.

Wciąłem 8 spacji więc nigdy o tym nie myślałem; P

 0
Author: Fredrik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-20 08:41:20