İşaret halkasını etkili bir şekilde kullanma


29

Tampon bölgelerini seçmek için işareti kullandım. Örneğin, dizinin C-<space> C-s foogeçerli nokta ile bir aramadan sonraki nokta arasındaki tüm metni seçmek için kullanılabileceğini biliyorum foo.

Kısa süre önce işaret halkasının varlığını keşfettim, böylece C-<space> C-<space>bir işaret bırakabilir, noktayı tamponda hareket ettirebilir ve sonra C-u C-<space>geri atlayabilirim.

İşaret halkasını kullanarak etkin biçimde gezinmek için herhangi bir öneri, kılavuz veya ipucu var mı?


2
Soruyu sorduğunuz için teşekkürler. Başıma gelen bir düşünce, örneğin "bir işaret eklemek" için daha hızlı bir bağ oluşturmaktır (global-set-key (kbd "s-m") '(lambda () (interactive) (push-mark))).
Joe Corneli

Yanıtlar:


22

Dümen hem yerel hem de küresel mark-halkaları göz atmak için bir arayüze sahiptir: helm-all-mark-rings.

Kısa bir açıklama ve ekran görüntüsü için mini kılavuza bakın .

Ve eğer Ivy / Swiper / Counsel'ı tercih edersen , bak counsel-mark-ring.


Muhteşem. Bunu iyileştirebilecek bir şey markayı işaret halkasından çıkarmak için yapılan bir eylemdir ...
Joe Corneli

12

Eğer ayarladığınızda set-mark-command-repeat-popiçin tüzeri

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

işaret halkasında kayıtlı önceki konumlara atlamak için C-SPCilk çağrıdan sonra basmaya devam edebilirsiniz C-u C-SPC.


10

Konumları işaretlemek için kayıtları kullanmayı daha kolay buluyorum: C-x r <space>ve sonra işaretlemek için C-x r jbir harf ve geri atlamak için bir harf. Birden fazla arabellek arasında geçiş yaparken çok yararlı olan birkaç işaret tutabilirim


2
Her zaman
sicilimi

@nispio bir süre önce git@github.com uzantısını kullandım: atykhonov / iregister.el.git Fikirlerden biri şuydu: kullanmak için hangi kararın atlanmasına izin verilmişti. Bu uzantı sizin için faydalı olmayacak, ancak özel komut dosyanızın yalnızca herhangi bir ücretsiz kayıt kullanabileceği fikrini ödünç alabilir ve daha sonra kullanılmış kayıt defterlerine göz atıp geri yüklemek için izin verir.
Andriy Tykhonov

9

C-x C-xiçin exchange-mark-and-pointbenzer kullanımı vardır C-u C-space. Bir nokta ile son işaret arasında sıçrama yapmanızı sağlar. Markayı transient-mark-modeharekete geçirip bölgeyi seçtiği için zıplamak biraz garip .


C-x C-xgeçici-işaret modu ile, seçtiğiniz en son olanı seçmek için mükemmeldir.
Rune Kaagaard,

8

Buradaki diğer ipuçlarının yanı sıra, sizin C-siçin işareti belirlediğinden bahsetmem gerektiğini düşündüm , bu yüzden açıkça yapmanız gerekmez. Ayrıca, “potansiyel olarak uzun bir yoldan hareket eden” ( beginning-of-bufferve end-of-bufferörneğin) birçok komut da başladığınız yeri belirler. Mark ile çalışmanın diğer yolları (pop, exchange point ve mark, vb.) İle birlikte, nasıl çalıştığını anladıktan sonra bir tamponla çalışmak için oldukça güçlü bir yoldur. Ayrıca, metni bir arabellek içine yerleştirirseniz, işaretlenen ve işaretlenen işaretli metni çevreleyen not edin.


5

(Sorunuz oldukça açık uçlu olduğundan, öncelikle görüşe dayalı olduğu için kapanabilir.)

Kullandığım Ne: Icicles çoklu komut icicle-goto-marker (bağlı C-- C-SPC) (herhangi bir tampon içerisinde işaretleri etrafında çelme mark-ring) ve icicle-goto-global-marker( C-- C-x C-SPC() küresel işaretleri arasında yolculuk global-mark-ring).

İşaretçilerin bulunduğu metin satırları tamamlama adayı olarak kullanılır. Adayları eşleşen çizgilerle daraltmak için bazı metinler (örneğin, alt dize, regexp) yazabilirsiniz. İstediğiniz herhangi birini ziyaret ederek eşleşen satırlar arasında geçiş yapabilirsiniz. Kütüphane kullanıyorsanız crosshairs.el, ziyaret ettiğiniz işaretçinin konumu geçici olarak artı işaretleriyle vurgulanır, böylece nerede olduğunu hızlı bir şekilde görebilirsiniz.

İşte için doktor dizesinin bir kısmı 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.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.