Jak wyłączyć zawijanie linii w Spacemacs?

19

Mam ograniczone doświadczenie emacsa. Próbowałem znaleźć rozwiązanie, aby wyłączyć zawijanie linii w Spacemacs, ale nie mogłem go znaleźć.

Rozwiązaniem tego problemu w Vimie jest wykonanie set nowrap. Ale to nie działa w Spacemacs.

Każde rozwiązanie byłoby bardzo mile widziane.

Vamsee
źródło
Nigdy wcześniej nie widziałem Spacemaców, ale wygląda na to, że chcesz je wyłączyć auto-fill-mode. Spróbuj M-x auto-fill-mode(co będzie włączać i wyłączać), a jeśli to działa i masz na myśli to, możesz wyłączyć to automatycznie w pliku init.
Dan
3
Wypróbuj następujące C-h v truncate-linespo uruchomieniu Spacemacs. Dzięki temu dowiesz się, co jest ustawione podczas uruchamiania.
Jonathan Leech-Pepin
@ JonathanLeech-Pepin Dzięki Twoja wskazówka pomogła mi debugować problem.
Vamsee,

Odpowiedzi:

9

Dodaj to do swojej ~/.spacemacsfunkcji konfiguracji:

(add-hook 'hack-local-variables-hook (lambda () (setq truncate-lines t)))
syl20bnr
źródło
1
Z szacunkiem nie zgadzam się z tą odpowiedzią, ponieważ w zasadzie trymuje ona (zastępuje) poprzednie ustawienia (jeśli są sprzeczne) i działa w tym przypadku, ponieważ hack-local-variables-hookjest ona wywoływana później w procesie ładowania bufora. Lepszym rozwiązaniem byłoby dostosowanie go do trybu głównego lub zaprojektowanie lepszego globalnego rozwiązania, które nie korzysta z hack-local-variables-hook.
prawnik
@lawlist Zgadzam się, że to hack, ale AFAIK nie ma trybu dla obcinanych linii. Jeśli chcesz tego na całym świecie, może to być trudne dzięki zaczepom w trybie głównym i nie będzie to lepsze niż to. Zamiast tego lepiej jest użyć funkcji przełączania, ale nie oferuje ona wymuszenia aktywacji linii obcięcia.
syl20bnr
29

23 listopada syl20bnr dodał nowy przełącznik o nazwie spacemacs/toggle-truncate-lines, dostępny w dniu SPC t l. Kolejnym przełącznikiem, który może Ci się przydać, jest spacemacs/toggle-visual-line-navigationdostępny na SPC t L. Zobacz Github commit .

Oto jak dotspacemacs/user-configmożesz wyglądać, aby włączyć oba przełączniki:

(defun dotspacemacs/user-config ()
  "Configuration function for user code.
This function is called at the very end of Spacemacs initialization after
layers configuration. You are free to put any user code."
  (spacemacs/toggle-truncate-lines-on)
  ;; Visual line navigation for textual modes
  (add-hook 'text-mode-hook 'spacemacs/toggle-visual-line-navigation-on)
)

Jeśli nie wiesz, gdzie dotspacemacs/user-configjest, jest w twoim .spacemacspliku, dostępny po naciśnięciu SPC f e d.

Haczyk na spacemacs/toggle-visual-line-navigation-onto, ponieważ nie działa globalnie inaczej.

Mirzhan Irkegulov
źródło
Od wieków szukałem haka do tego trybu! Dzięki!
hoosierEE
2
Jest to odpowiednik :set nowrap. Dzięki!
shakerlxxv
1
SPC t Ldla łatwej wygranej.
sjas
8

M-x toggle-truncate-lines RET jest odpowiednikiem Vima dla Emacsa :set wrap!

niania
źródło
I programowo:(setq truncate-lines t)
prawnik
@nanny Dzięki, sugestia działa w celu wyłączenia zawijania linii po uruchomieniu znaków spacji. Ale @lawlistowa sugestia dodawania (setq truncate-lines t)do ~ / .spacemacs nie działa.
Vamsee,
@Vamsee - Ten wiersz kodu, który zasugerowałem, powinien być używany programowo - np. Podczas pisania funkcji. Można go użyć na żądanie, wpisując: M-x eval-expression RET (setq truncate-lines t) RET
lawlist
2
@Vamsee - truncate-linesjest zmienną lokalną dla bufora, co oznacza, że ​​kod musi zostać wykonany, gdy fokus znajduje się w buforze docelowym. Biblioteka, którą zacytowałeś, jest zbiorem miliona i jednego z góry wybranych dostosowań użytkownika, w tym niektórych wyborów opartych na różnych głównych trybach. Aby naprawdę wyśledzić swój problem, musisz określić, jakiego trybu głównego używasz - wtedy konieczne będzie sprawdzenie wszystkich haków trybu głównego używanych przez daną bibliotekę, a nawet wtedy możliwe jest, że masz gdzieś to ustawienie jeszcze. Na przykład visual-line-modeumożliwia zawijanie
lista prawników
1
@lawlist Wreszcie działa. Musiałem ustawić zmienną niestandardową wewnątrz funkcji, custom-set-variablesa nie w dotspacemacs/configfunkcji. Dzięki za pomoc.
Vamsee,
2

Dodałem to do mojego pliku init wewnątrz, dotspacemacs/user-configaby wyłączyć automatyczne dzielenie linii:

(spacemacs/toggle-auto-fill-mode-off)

Domyślnie możesz włączać / wyłączać za pomocą SPC t F.

Guy Gur-Ari
źródło
0

Skomentowałbym, ale nie mam wystarczającej reputacji, więc po prostu napiszę tutaj.

Pierwsze wyrażenie Mirzhana Irkegulowa działało, ale drugie nie działało (add-hook 'text-mode-hook 'spacemacs/toggle-visual-line-navigation-on)

Zamiast tego musiałem użyć (global-visual-mode t)

TEN UŻYTKOWNIK POTRZEBUJE POMOCY
źródło