Jest to podobne do edytowania plików z jednym zdaniem na wiersz (zarówno pod względem funkcji, jak i motywu), ale chcę mieć pełny, płynny akapit zamiast wizualnych przerw w każdym zdaniu.
Chciałbym mieć mniejszy tryb, który, gdy jest aktywny, wizualnie łączy linie z tego samego akapitu (nie oddzielone przez \n\n
lub paragraph-separate
lub ...), a następnie aktywuje zachowanie (być może wyprowadzone z visual-line-mode
), które zawinie linię bez faktycznego wstawiania \n
.
Czy taki tryb istnieje? Jeśli nie, jak powinienem przejść przez proces zmiany właściwości wyświetlania akapitu, aby osiągnąć wynik? (W końcu jest to sedno takiego trybu i można go rozwinąć z fragmentu).
fill-paragraph
line-break
display
Sean Allred
źródło
źródło
\n
(jeśli jest obecna), czy też chcesz, aby faktycznie usunęła nowe wiersze, aby zapewnić 1 akapit na wiersz?buffer-display-table
aby nowe wiersze\n
wyglądały jak spacje lub coś - zobacz następujący przykład w łączu: stackoverflow.com/a/24842771/2112489 Zaletą tego jest to, że tekst w dokument nie jest modyfikowany. Nowa linia może obejmować prawie wszystko - np. Uśmiechniętą twarz, spacje, symbol pilcrowa itp. Efektem wizualnym jest to, że nastąpi zawijanie.Odpowiedzi:
Jak powiedział Tom, umieszczenie właściwości wyświetlania w nowej linii będzie rodzajem pracy.
Problem polega na ustaleniu, które linie należy zawijać.
Oto przykład na początek:
Spowoduje to „usunięcie” nowych linii, jeśli jest poprzedzone znakami graficznymi, a następny wiersz nie jest wcięty ani pusty. Będziesz musiał eksperymentować, aby znaleźć coś, co działa dla Ciebie.
Kilka dodatkowych wyjaśnień:
font-lock-add-keywords
dodaje listę reguł do blokowania czcionek (więc blokada czcionek musi być włączona. Pierwszym argumentem może być tryb (np.text-mode
); w naszym przypadku jest to zero, co oznacza dodanie reguły tylko dla bieżącego bufora.(,eol-regexp 1 '(face default display " "))
. Pierwszym elementem jest wyrażenie regularne, które zbudowaliśmy wcześniej; drugi to podwyrażenie, którym jesteśmy zainteresowani; trzeci to „twarz”, którą chcemy zastosować.font-lock-remove-keywords
.display
dofont-lock-extra-managed-props
(nie próbowałem tego).źródło
Jeśli dobrze rozumiem problem, oznacza to, że chciałbyś zachować wszystkie znaki nowej linii w buforze w takiej postaci, w jakiej są; ale chcesz wyświetlić niektóre z nich jako spacje. Następnie chcesz zawijać słowa.
Do zawijania słów myślę, że możesz użyć
visual-line-mode
.Do radzenia sobie z nowymi liniami, myślę, że możesz umieścić
display
właściwość" "
(ciąg składający się z pojedynczej spacji) jako wartość w nowej linii, którą chcesz wyświetlać inaczej.źródło