Chcę zaznaczyć lub podświetlić blok w emacsie bez użycia myszy, ale robię to z klawiatury, tak jak w trybie wizualnym vima. Jak najłatwiej to zrobić z klawiatury?
Chcę zaznaczyć lub podświetlić blok w emacsie bez użycia myszy, ale robię to z klawiatury, tak jak w trybie wizualnym vima. Jak najłatwiej to zrobić z klawiatury?
Odpowiedzi:
Spójrz na region-prostokąt w emacs.
Krótko mówiąc, zaczynasz selekcję jak zwykle za pomocą Control- Space, następnie zabijasz region za pomocą Control- x r ki wklejasz (lub szarpniesz ) zabity blok za pomocą Control- x r y.
Jeśli dobrze rozumiem pytanie, pierwotnie nie chodzi o prostokątne obszary.
C-Spc
zaznacza aktualną pozycję.
Gdziekolwiek później znajduje się kursor, tekst między ostatnim znacznikiem a bieżącą pozycją jest „zaznaczony” (możesz to zaznaczyć, aktywując transient-mark-mode
, ale będzie to również oznaczać, że znaki muszą zostać usunięte, jeśli nie chcesz podświetlić).
Możesz operować na tym regionie za pomocą poleceń takich jak:
C-w
. . Zabij region. Powoduje to usunięcie regionu i umieszczenie go w pierścieniu zabijania.
C-y
. . Szarpać. Spowoduje to wstawienie ostatniego fragmentu z pierścienia zabijania.
M-y
. . Pierścień zabijania cyklu. Natychmiast po C-y
tym zastępuje szarpaną część innymi fragmentami w pierścieniu zabijania.
M-w
. . Zapisz region w pierścieniu zabójstw. Podoba C-w
, ale nie usuwa.
To tylko podstawowe użycie. Znaki mają też inne zastosowania. Polecam tutorial ( C-h t
).
C-s
C-r
są one powszechnie używane w tym kontekście, aby znaleźć koniec / początek regionu. (Szczególnie przydatne w makro.)
M-x indent-region
.
indent-region
działa dobrze, ale c-indent-line-or-region
(ten, który jest powiązany z klawiszem tab ) nie. Ta ostatnia funkcja działa nie na zaznaczonych regionach, ale na wybranych , tj. Regionie, który jest podświetlony tak, jakbyś wybrał go myszą.
C-Spc
dwa razy w miejscu, w którym umieścisz znak. To aktywuje tymczasowo tryb znacznika przejściowego (do momentu anulowania (za pomocą C-g
)). Następnie przesuń punkt, aby wyświetlić wybrany region.
Emacs 24.4 ma teraz tryb znacznika prostokąta. Cx spacja, aby go wywołać.
Zobacz artykuł: „Praca z zaznaczeniami prostokątnymi” , zwłaszcza sekcję komentarzy. Zobacz także sekcję dokumentacji trybu CUA zatytułowaną „Obsługa prostokątów CUA”. Jest też fajny film na vimeo .
Mimo że C-SPC
jest to powszechny sposób na rozpoczęcie oznaczania czegoś z dowolnego miejsca, często istnieją szybsze / łatwiejsze sposoby, które nie obejmują jawnego przejścia do punktów początkowych / końcowych ...
M-h
- ważny sposób na oznaczenie akapitu . „Akapit” często oznacza blok kodu.
C-M-h
oraz C-M-@
- odpowiednio do oznaczania seksu i defuns . Działa to w kilku językach, a nie tylko seplenienie.
przytrzymaj Shift - kolejny sprytny sposób na podkreślenie podczas ruchu. Np. M-S-f
Wybiera cały wyraz do przodu. To jest
shift-select-mode
i jest domyślnie włączone w Emacs 24+. Na niektórych klawiaturach (innych niż szykletowe) powinieneś być w stanie przytrzymać C-S-
pojedynczy mały palec.
Możesz naciskać dowolne z nich wielokrotnie, aby zwiększyć wybór.
(UWAGA: używaj C-g
często, aby anulować zaznaczanie podczas eksperymentowania).
Istnieje kilka pakietów dodatków, które usprawniają wybieranie regionów i rzeczy. Wszystko to ładnie się ze sobą gra i pasuje do różnych przypadków użycia. Użyj ich wszystkich!
Expand-Region : Expand region zwiększa wybrany region o jednostki semantyczne. Po prostu naciskaj klawisz, aż wybierze to, co chcesz. C-=
jest dla niego zalecanym wiązaniem. Uderz go kilka razy, aby uzyskać to, czego potrzebujesz.
Easy-Kill : użyjM-w
i mnemonika, aby wybrać różne typy rzeczy, takie jak słowa, seksu, listy itp.
Zop-to-Char : Podobnie jak zap-to-char , ale zapewnia dobry wybór i inne działania oparte na menu.
diff-hl : Podświetl niezatwierdzone zmienione regiony. Użyj,diff-hl-mark-hunk
aby wybrać / oznaczyć kawałek.
... a jeśli używasz Ubuntu i C-spcnie działa dla ciebie: musisz wyczyścić przypisanie klawisza IBus "następna metoda wprowadzania", jak w
uruchom
ibus-setup
i zmień przypisanie klawisza „następnej metody wprowadzania” na coś innego (lub usuń je całkowicie, klikając przycisk „…”, a następnie przycisk „Usuń”).
Cytat zaczerpnięty z odpowiedzi na pytanie SO.
Aby rozszerzyć odpowiedź Edin Salkovic, jeśli używasz trybu CUA, możesz użyć, aby rozpocząć wizualny wybór bloków. Istnieje wiele skrótów do sterowania wyborem bloków opisanych w dokumentacji CUA .
W Emacs 25 po prostu naciśnij C- Spacea następnie przesuń kursor w dowolne miejsce, w którym chcesz zaznaczyć / wybrać interesujący Cię obszar tekstu. Następnie możesz potrzebować tych poleceń:
mark-defun