Chciałbym otworzyć plik foo.bar
dwa razy (lub więcej) w emacsie, aby móc jednocześnie edytować dwie różne części. Czy to możliwe? Prawdopodobnie lepszym pytaniem jest, jak to zrobić? Czy istnieje sposób otwarcia każdej instancji we własnym buforze / ramce?
28
Odpowiedzi:
Możesz otworzyć ten sam bufor w więcej niż jednym oknie (które można rozdzielić między różne ramki), ale nie jest to zbyt wygodne. Każde okno ma swój punkt, ale wszystkie mają wspólny znak, tryb pliku, zwężenie i inne cechy, ponieważ poza punktem prawie wszystkie cechy są powiązane z buforem. Ponadto, jeśli zdarzy ci się odwiedzić inny bufor w jednym oknie, stracisz swoje miejsce w pliku.
Możesz utworzyć bufor pośredni, który ma swój własny punkt, znak, tryby i tak dalej, ale taką samą zawartość jak oryginalny bufor (i zapisywanie jednego z buforów zapisuje w tym samym pliku). Aby utworzyć drugi bufor, który jest klonem bieżącego bufora, uruchom
M-x clone-indirect-buffer RET
. Aby otworzyć ten drugi bufor w innym oknie, możesz wpisaćC-x 4 c
.źródło
C-x 4 c
działaclone-indirect-buffer-other-window
, więc byłoby to użyte zamiastclone-indirect-buffer
, nie wykonując tego polecenia. Jednak w moim systemie oba te polecenia wydają się robić to samo.C-x 4
jest prefiksem dla systemu Windows,c
jest dla klonowania . Jeśli chcesz, możesz zdefiniować inne powiązania.C-x c
nie jest używany w domyślnej konfiguracji, możesz go użyć, jeśli nie boisz sięC-x C-c
zamiast tego przypadkowo uderzyć . DefiniujęC-x 5 c
klonowanie w nowej ramce w moim pliku init.Tryb podzielonego ekranu: gdzie ctrl+ xoznacza naciśnij i przytrzymaj klawisz Ctrl i wpisz x. Następnie wpisz następujący numer.
ctrl+ x2 (podział poziomy)
lub
ctrl+ x3 (podział pionowy)
Następnie możesz przewijać je niezależnie w tym samym pliku lub otworzyć inny bufor, jeśli chcesz w jednym z nich.
Aby powrócić do jednego typu widoku
ctrl+ x1
Jeśli chcesz, możesz podzielić każdy ekran (sekcję) tyle razy, ile potrzeba. Wybierz najpierw ekran, który chcesz podzielić, a następnie wykonaj na nim podział poziomy lub pionowy.
źródło
C-x o
biegnieother-window
i przechodzi przez widoczne „okna” w każdej „ramce”. (Korzystanie z konfiguracji emacsa, w której okna menedżera okien nazywane są ramkami, a oddzielne panele w nich nazywane są oknami (wiem, wiem, ale nie jestem za to odpowiedzialny).)Emacs jest tendencyjny do paneli (okien), a nie ramek. Często pożądane jest otwarcie tego samego bufora w innej ramce, a nie tylko innego okna w tej samej ramce. Ale
C-x 5 c
domyślnie nie jest związany. Ten kod definiuje brakującąclone-indirect-buffer-other-frame
funkcję:źródło