Gdybym przypadkowo zamknął zarysowania bufor w Emacsa, jak mogę utworzyć nowy zarysowania bufor?
Domyślne powiązania GNU Emacsa:
C-xb
*scratch*
RET
lub bardziej dosłownie
M-x
switch-to-buffer *scratch*
RET
*scratch*
Bufor jest wybrany podczas ładowania, bufor, i jest główną trybu Lisp interakcji . Uwaga: tryb *scratch*
bufora jest kontrolowany przez zmienną initial-major-mode
.
Ogólnie rzecz biorąc, możesz utworzyć dowolną liczbę buforów „scratch” i nadać im dowolne nazwy.
C-xb
NAME
RET
przełącza się na bufor NAME
, tworząc go, jeśli nie istnieje. Nowy bufor nie jest powiązany z plikiem na dysku, dopóki nie użyjesz C-xC-w(lub M-x write-file
RET) do wybrania pliku, w którym ma zostać zapisany.
M-x
text-mode
RET
zmienia tryb główny bieżącego bufora na tryb tekstowy. Aby znaleźć wszystkie dostępne tryby (to znaczy nie wymagając żadnych nowych pakietów), możesz uzyskać listę, wpisując:
M-x
apropos-command -mode$
RET
.emacs
zdefiniujesz inny domyślny tryb scratchowania , ten będzie trybem dla nowego scratchowania, a nie trybem interakcji z listą.Dodaję w moim .emacs:
Jeśli nie chcesz widzieć zadrapanie bufor naciśnięciu Cx Ck, ale nie zabić, po prostu miejsce na końcu listy bufora, więc to muszę to następnym razem nie trzeba tworzyć nowego.
źródło
Na tej stronie EmacsWiki znajduje się cała masa wskazówek .
Oto pierwszy:
źródło
Cx b
*scratch*
RET y RET z włączonym trybem iswitchb.W
*scratch*
przeciwnym razie po prostu Cx b RET.źródło
initial-major-mode
zmiennej (LISP-interakcja trybu domyślnie).Znalazłem to lata temu, kiedy zacząłem używać emacsa; Nie mam pojęcia, gdzie teraz, ale zawsze miał miejsce w moich osobistych plikach .el. Pojawia się w wyszukiwaniach Google.
źródło
Kiedyś korzystałem z rozwiązania dwj i byłem z niego całkiem zadowolony, aż do dnia, w którym zdałem sobie sprawę, że zawiodło, kiedy faktycznie zmieniasz nazwę bufora magazynującego (na przykład zapisując go).
Potem przyjąłem to, co dobrze mi pasuje:
źródło
Mam
scratch
jako interaktywną komendę do otwierania nowego bufora na zarysowania (lubię mieć kilka):zaczerpnięte z: http://everything2.com/index.pl?node_id=1038451
źródło
bufname
RET)?ido-mode
i zwykle mam kilka otwartych buforów. Tworzenie nowego bufora przy użyciuC-x b
byłoby naprawdę żmudne. Musiałbym wymyślić unikalną nazwę, która nie pasuje do żadnego z obecnie obecnych buforów.To nie tylko szybko przełączy się na
*scratch*
bufor (ponieważ robię to często), ale ponownie utworzę*scratch*
bufor i włączy sięlisp-interaction-mode
automatycznie, jeśli zabijesz go przypadkowo. Zmień wiązanie, jak chcesz.źródło
Wystarczy zauważyć, że pakiet emacsa
unkillable-scratch
w MELPIE zrobi to. Jest też to,scratch-persist
że automatycznie zapisuje i przywraca bufor między sesjami.źródło
Jak mówi dokumentacja, ta funkcja:
Spowoduje to podniesienie nowego bufora magazynującego, który wygląda jak początkowy bufor magazynujący.
źródło
Tego właśnie używam - mam to związane z wygodnym naciśnięciem klawisza. Wysyła cię do
*scratch*
bufora, niezależnie od tego, czy już istnieje, i ustawia go nalisp-interaction-mode
źródło
Wolę, aby mój bufor magazynujący był rzeczywistym plikiem, który jest automatycznie zapisywany, a ponowne otwarcie jest tak proste, jak otwarcie pliku. Podczas uruchamiania zabijam domyślne i znajduję własne w ten sposób.
Mam niestandardową funkcję zabijania bufora, która zasadniczo robi to samo - ponownie otwiera mój osobisty zapisany plik z zadrapaniami i zabija domyślną zarysowanie, jeśli zabiłem ostatni widoczny bufor.
Dostosowałem kilka
desktop.el
funkcji do wczytywania później(kill-buffer "*scratch*")
i(find-file "/Users/HOME/Desktop/.scratch")
tak, aby plik ostatnio widoczny po wyjściu z Emacsa nie został zakopany przez domyślne zadrapanie lub przez moje niestandardowe zadrapanie podczas uruchamiania Emacsa.Lubię używać
auto-save-buffers-enhanced
, który automatycznie zapisuje każde rozszerzenie pliku, które nie jest wyraźnie wykluczone:https://github.com/kentaro/auto-save-buffers-enhanced/blob/master/auto-save-buffers-enhanced.el
Używam niewielkiej odmiany funkcji @paprika, gdy chcę utworzyć bufor odwiedzający bez plików:
źródło
Zgłoszone do tej pory rozwiązania połączyłem w jedną funkcję:
Aby zastosować tę funkcję w swoim .emacs, użyj:
To spowoduje, że bufor magazynowania będzie niezniszczalny, a jeśli zostanie zapisany, zostanie odtworzony. Dodatkowo możemy użyć funkcji skrótu,
scratch
aby szybko wywołać bufor:W przeszłości przydatna była znajomość oryginalnego katalogu startowego, z którego został uruchomiony Emacs. To jest wartość
desktop-dirname
lubdefault-directory
zmienna lokalna bufora magazynującego:Tak więc --startup-directory zawsze zwróci katalog podstawowy twojego makefile, pliku TODO itp. W przypadku braku pulpitu ( --no-desktop commandline-switch lub brak pliku desktop)
--scratch-directory
zmienna będzie przechowywać katalog, w którym kiedyś był Emacs zaczął pod.źródło
znajdź odpowiedź w EmacsWiki: http://www.emacswiki.org/emacs/RecreateScratchBuffer
źródło
Aby dodać do zaakceptowanej odpowiedzi, jeśli masz włączony tryb ILO (i jest on automatycznie uzupełniany po C-x b, więc nie pozwala ci pisać
*scratch*
), spróbuj:C-x b C-b *scratch* RET
źródło
aby utworzyć nowy bufor, który jest również w trybie interakcji Lisp.
źródło