Emacs 31.1 - tuż za rogiem

 



Główne zmiany w Emacs 31.1

Instalacja i budowanie

  • Usunięto stary dumper unexec (był przestarzały od wersji 27).
  • Nie buduje się już starego programu ctags (używaj Universal Ctags; jeśli potrzebujesz starego zachowania — etags --ctags).
  • Zmodyfikowano domyślne flagi GCC na 32-bitowym x86.
  • Nowa opcja ./configure --with-systemduserunitdir.

Uruchamianie (Startup)

  • W obsługujących to terminalach tryb xterm-mouse-mode jest teraz włączony domyślnie (lepsze wsparcie myszy i schowka systemowego).
  • Plik site-start.el ładuje się przed early-init użytkownika.
  • Emacs domyślnie przygotowuje katalog user-lisp/ (w katalogu konfiguracyjnym), który jest automatycznie dodawany do load-path, byte-kompilowany i ma generowane autoloady. Można to wyłączyć.

Ogólne zmiany w edytorze

  • Zmienna line-spacing obsługuje teraz cons cell, pozwalając określić odstępy nad i pod linią (przydatne do wyśrodkowania pionowego).
  • prettify-symbols-mode lepiej radzi sobie z znakami, których nie da się wyświetlić.
  • Wsparcie dla child frames na terminalach TTY (ważne dla pakietów typu Posframe, Corfu itp.).
  • Tryb tty-tip-mode do pokazywania tooltipów na TTY.
  • Kilka zmiennych twarzy font-lock-* zostało oznaczonych jako przestarzałe — lepiej dostosowywać twarze bezpośrednio.

Minibuffer i uzupełnianie (Completion)

Bardzo dużo ulepszeń:

  • Możliwość natychmiastowego pokazywania bufora *Completions* i jego dynamicznej aktualizacji podczas pisania.
  • Lepsze wsparcie dla stylu flex (szybszy i dokładniejszy).
  • Nowe opcje formatowania i nawigacji w *Completions* (szczególnie w trybie pionowym i poziomym).
  • Ulepszone completion-preview (lepsza integracja z Corfu/Company).
  • RET w minibufferze teraz wybiera zaznaczoną pozycję z completions.
  • Lepsze zarządzanie historią w funkcjach find-function, find-variable itp.

Okna i ramki (Windows & Frames)

  • Nowe komendy do rotowania i przerzucania układu okien (C-x w t/r, C-x w f).
  • Lepsze zarządzanie cyklem okien (other-window, windmove).
  • Ulepszone mechanizmy display-buffer, quit-window, quit-restore.
  • Domyślny kierunek dzielenia okna (split-window-preferred-direction) zależy teraz od orientacji ekranu.
  • Lepsze wsparcie dla buforów pośrednich (indirect buffers).
  • Komendy do łączenia/rozłączania ramek (split-frame, merge-frames).

Dired

  • Nowe opcje dotyczące tworzenia plików, sprawdzania symlinków, ukrywania szczegółów.
  • Lepsze radzenie sobie z nazwami plików zawierającymi nowe linie.
  • Możliwość klikania w nazwę katalogu nadrzędnego.

VC (kontrola wersji)

Dużo ulepszeń, szczególnie dla Git i Mercurial:

  • Lepsze wsparcie dla multi-worktree.
  • Nowe komendy do cherry-pick, revert revision, logów branchy.
  • Możliwość edycji komentarzy commita bezpośrednio z Log View.
  • Asynchroniczne check-in dla Git/Hg.
  • Lepsze zarządzanie stashami, konfliktami itp.

Inne tryby i pakiety

  • Diff i Ediff — nowe komendy (m.in. usuwanie wszystkich hunków oprócz bieżącego).
  • Python — kilka poprawek (m.in. domyślny interpreter, powtarzalne indent-shift, wsparcie electric-layout).
  • Package — sporo ulepszeń w menedżerze pakietów (async refresh, isolate, autosuggest, lepszy interfejs).
  • Grep — dodano tryb edycji wyników (e).
  • Xref, Imenu, Customize i wiele innych drobnych usprawnień.

Podsumowanie

Emacs 31 przynosi sporo ergonomicznych i UX-owych ulepszeń (szczególnie w obszarze minibuffera/uzupełniania, okien i ramek), lepsze wsparcie dla nowoczesnych terminali oraz dalszą modernizację wewnętrznych mechanizmów (okna, bufor display, VC, Packages).

Komentarze

Popularne posty z tego bloga

XEmacs edytor tekstu z problemami

Ubuntu Touch następny raz

GNU Guix System po raz trzeci