Skutecznie wykorzystując pierścień znaku

29

Użyłem znaku, aby wybrać regiony bufora. Na przykład wiem, że sekwencji C-<space> C-s foomożna użyć do zaznaczenia całego tekstu między bieżącym punktem a punktem po wyszukiwaniu foo.

Niedawno odkryłem istnienie pierścienia znaku, więc mogę C-<space> C-<space>zostawić znak, przesunąć punkt w buforze, a następnie C-u C-<space>odskoczyć.

Czy są jakieś sugestie, przewodniki lub wskazówki dotyczące efektywnej nawigacji za pomocą pierścienia?

Patrick Steele
źródło
2
Dzięki za pytanie. Jedna myśl, która przychodzi mi do głowy, to szybsze powiązanie w celu „dodania znaku”, np (global-set-key (kbd "s-m") '(lambda () (interactive) (push-mark))).
Joe Corneli,

Odpowiedzi:

22

Hełm posiada interfejs do przeglądania zarówno lokalnych i globalnych Mark-ringi: helm-all-mark-rings.

Krótki przewodnik i zrzut ekranu zawiera mini-przewodnik .

A jeśli wolisz Ivy / Swiper / Counsel , zobacz counsel-mark-ring.

Davor Cubranic
źródło
Niesamowite. Jedną rzeczą, która mogłaby to poprawić, jest akcja usunięcia znaku z pierścienia znaku ...
Joe Corneli
12

Po ustawieniu set-mark-command-repeat-popsię tpoprzez

(setq set-mark-command-repeat-pop t)

możesz naciskać C-SPCpo pierwszym wywołaniu, C-u C-SPCaby przejść do poprzednich lokalizacji zapisanych w pierścieniu znaczników.

itsjeyd
źródło
10

Łatwiej jest mi używać rejestrów do oznaczania lokalizacji: C-x r <space>a następnie litery do zaznaczenia C-x r ji litery do powrotu. Potrafię zachować wiele znaków, bardzo przydatne przy przełączaniu między wieloma buforami

Alain
źródło
2
Zawsze się zastanawiam, czy wybrać najlepszy list do przypisania mojego rejestru do ...
nispio,
@nispio jakiś czas temu wdrożyłem rozszerzenie [email protected]: atykhonov / iregister.el.git Jednym z pomysłów było: pozwól pominąć decyzję, którego rejestru użyć. Być może rozszerzenie nie będzie dla Ciebie przydatne, ale możesz pożyczyć pomysł, w którym Twój skrypt niestandardowy może po prostu użyć dowolnego bezpłatnego rejestru, a następnie pozwoli przeglądać używane rejestry i przywracać.
Andrij Tychonow
9

C-x C-xdla exchange-mark-and-pointma podobne zastosowanie do C-u C-space. Pozwala odbić się między punktem a ostatnim znakiem. To trochę dziwne z odbijaniem się, transient-mark-modeponieważ aktywuje znak i wybiera region.

zdeterminowany
źródło
C-x C-xz trybem przejściowego znacznika jest doskonały do ​​wybierania ostatniej rzeczy, którą wybrałeś (przydatne w trybie iedit) lub szarpnąłeś.
Rune Kaagaard,
8

Pomijając inne wskazówki, które tu masz, pomyślałem, że powinienem wspomnieć, że C-sto wyznacza dla ciebie znak, więc nie trzeba tego robić wyraźnie. Ponadto wiele poleceń, które „przesuwają potencjalnie długą drogę” ( beginning-of-bufferi end-of-bufferna przykład), również wyznacza punkt początkowy. Wraz z innymi sposobami pracy ze znakiem (pop, punkt wymiany i znak itp.) Jest to dość potężny sposób pracy z buforem, gdy zrozumiesz, jak to działa. Zauważ też, że jeśli przeciągniesz tekst do bufora, wskaż i zaznacz otaczający go tekst.

Mathias Dahl
źródło
5

(Twoje pytanie jest dość otwarte, więc może zostać zamknięte jako oparte głównie na opiniach).

Co mogę użyć: Sople multi-command icicle-goto-marker (zobowiązany C-- C-SPC) do podróży dookoła znaków w każdym buforze ( mark-ring) i icicle-goto-global-marker( C-- C-x C-SPC) w celu wyzwolenia wśród światowych marek ( global-mark-ring).

Wiersze tekstu, w których znajdują się znaczniki, są używane jako kandydaci do uzupełnienia. Możesz wpisać tekst (np. Podłańcuch, wyrażenie regularne), aby zawęzić kandydatów do pasujących wierszy. Możesz przełączać się między pasującymi liniami, odwiedzając dowolne. Jeśli korzystasz również z biblioteki, crosshairs.elwówczas pozycję odwiedzanego znacznika jest tymczasowo podświetlana za pomocą krzyżyka, dzięki czemu możesz szybko zobaczyć, gdzie on jest.

Oto część ciągu dokumentów dla icicle-goto-marker:

Go to a marker in this buffer, choosing it by the line that includes it.
If `crosshairs.el' is loaded, then the target position is highlighted.

By default, candidates are sorted in marker order, that is, with
respect to their buffer positions.  Use `C-M-,' or `C-,' to change the
sort order.

During completion you can use these keys:

`C-RET'   - Goto marker named by current completion candidate
`C-down'  - Goto marker named by next completion candidate
`C-up'    - Goto marker named by previous completion candidate
`C-next'  - Goto marker named by next apropos-completion candidate
`C-prior' - Goto marker named by previous apropos-completion candidate
`C-end'   - Goto marker named by next prefix-completion candidate
`C-home'  - Goto marker named by previous prefix-completion candidate
`<S-delete>' - Delete marker named by current completion candidate

Use `mouse-2', `RET', or `S-RET' to choose a candidate as the final
destination, or `C-g' to quit.
Drew
źródło