Używam teraz Emacsa 23 z trybem wizualnego line-mode do edycji tekstu, ale nadal uderzam Mq z przyzwyczajenia (co dodaje twarde końcówki linii ...) . Zastanawiam się, czy istnieje sposób dodania warunkowego wyłączenia wypełnienia akapitu (lub usunięcia powiązania z Mq) dla trybów, w których włączony jest tryb linii wizualnej, ale ponownego włączenia go dla tych, w których nadal jestem używając trybu automatycznego napełniania? Dzięki!emacs: wizualny tryb liniowy i wypełnienie-akapit
Odpowiedz
(defun maybe-fill-paragraph (&optional justify region)
"Fill paragraph at or after point (see `fill-paragraph').
Does nothing if `visual-line-mode' is on."
(interactive (progn
(barf-if-buffer-read-only)
(list (if current-prefix-arg 'full) t)))
(or visual-line-mode
(fill-paragraph justify region)))
;; Replace M-q with new binding:
(global-set-key "\M-q" 'maybe-fill-paragraph)
Zamiast global-set-key
, można również ponownie powiązać M-q
tylko w określonych trybach. (Lub, możesz zmienić globalne powiązanie, a następnie powrócić do M-q
z powrotem do M-q
z powrotem do fill-paragraph
w określonym trybie.) Zauważ, że wiele trybów jest ładowanych automatycznie, więc ich mapa klawiszy może nie zostać zdefiniowana, dopóki tryb nie zostanie aktywowany. Aby ustawić tryb specyficzne wiązania, zazwyczaj użyć funkcji takich jak to: (. Na remove-hook
nie jest to bezwzględnie konieczne, ale funkcja wymaga jedynie, aby uruchomić jeden raz)
(add-hook 'text-mode-hook
(defun cjm-fix-text-mode()
(define-key text-mode-map "\M-q" 'maybe-fill-paragraph)
(remove-hook 'text-mode-hook 'cjm-fix-text-mode)))
można użyć doradzaj w tym.
Dla .emacs:
(defadvice fill-paragraph (around disable-for-visual-line-mode activate)
(unless visual-line-mode
ad-do-it))
to zmieni wypełnienia akapitu nic nie robić, kiedy linia tryb wizualny jest włączony. Jeśli wolisz, możesz też dodać błąd.
Zauważ, że to całkowicie wyłącza' fill-paragraph' gdy włączony jest visual-line-mode, nawet jeśli jest on wywoływany z funkcji elisp. Prawdopodobnie nie chcesz być tak drastyczny. – cjm
Zgadzam się, bardzo ładne ... ale cjm ma punkt ... chociaż nie wiem, jak często wypełnianie akapitu wywoływane jest z funkcji elips. – hatmatrix
(Uwielbiam defadvice chociaż można go również wyłączyć bez ponownego uruchamiania emacsa) – hatmatrix
Tryb linii wizualnej ma własną mapę klawiszy: visual-line-mode-map
. Polecam ponowne wiązanie M-q tylko w tej mapie klawiszy.
Mapa jest zdefiniowana jako część uruchamiania, więc nie potrzebujesz eval-after-load. Po prostu wyłącz powiązanie w tym trybie:
(define-key visual-line-mode-map [remap fill-paragraph] 'ignore)
- 1. Sprawdź tryb wizualny
- 2. Tryb emacs - zadania zależne
- 3. Szybki tryb powłoki emacs?
- 4. Tryb sznurów w Emacs
- 5. Tryb Emacs C++: podświetlanie rzutów i rozmiarów
- 6. Tryb Tuareg i tryb Caml
- 7. Główny tryb Javascript w Emacs
- 8. Kolejny tryb emacs między ramkami
- 9. Kodowanie zen zaktualizowano tryb emacs
- 10. Emacs 24: Tryb-Line Style
- 11. Tryb emacs Erlanga - ustawienie outdir
- 12. Emacs tryb org eksportu eksportu
- 13. Emacs, tryb org, tryb zły - klawisz TAB nie działa
- 14. Tryb Emacs-upiększa-tryb symboli działa na nie oddzielonych znakach.
- 15. Jak wyłączyć automatyczny tryb napełniania w emacs?
- 16. Jak zainstalować tryb MATLAB w GNU Emacs?
- 17. emacs: wymusić tryb ido, aby zapomnieć historię
- 18. Tryb Emacs JS dla stylu npm
- 19. emacs seplenienie, jak uzyskać tryb główny bufora?
- 20. tryb Emacs/funkcja, która owija operatorów spacjami
- 21. Czy jest tryb Emacs dla Rscript?
- 22. Tryb Emacs Org: Wykonywanie prostego kodu Pythona
- 23. Cotygodniowe powtarzanie zadań emacs tryb-org
- 24. Jak zmienić szerokość wcięcia w emacs tryb
- 25. Emacs: Używanie i inicjowanie CEDETA
- 26. emacs dired i openwith
- 27. Grupowanie wybór wizualny VIM
- 28. Jak filtrować wybór wizualny?
- 29. Preferowany tryb JavaScript dla emacs? Czy jest to tryb js2 od Yegge?
- 30. wizualny edytor WADL
globalnie ustawienie 'M-q' jest złe, ponieważ wpływa na wszystkie tryby. jeśli musisz to zrobić, użyj 'substitute-key-definition' (lub użyj defadvice lub fset zamiast tego) – mihi
Ale to był cały sens. M-q jest już globalnym wiązaniem. Chciał, żeby się odbił do funkcji sprawdzającej wizualny tryb linii. – cjm
Hmmm ... także świetna opcja ... Globalne ustawienie M-q może być niebezpieczne, ale funkcja jest wystarczająco prosta (i elegancka), że jej konsekwencje są przewidywalne? – hatmatrix