“Takas-ve-işaretle” nin faydası nedir?


16

exchange-point-and-markKomut bağlıdır C-x C-x, ama böyle önemli bağlanmasının hak yapacak herhangi kullanım durumları düşünemiyorum.

exchange-point-and-markDüzenleme tekniğimi geliştirmek için nasıl kullanabilirim ?

Yanıtlar:


19

Düşünebileceğim iki durum var: bölgeyi yeniden etkinleştirmek ve bölgenin boyutunu ayarlamak.

Çoğu zaman bu bağlayıcıyı, devre dışı bırakan bir komut gerçekleştirdikten sonra veya bölgeyi etkinleştirmeden işaret ve hamle ayarlayan bir şey yaptıktan sonra bölgeyi yeniden etkinleştirmek için kullanırım.

Örneğin, bir C yapın ve bir şey arayın. Aramadan çıkmak için RET tuşuna, ardından aramayı başlattığınız yerden her şeyi işaretlemek için Cx Cx tuşuna basın.

Bir StackExchange cevap bazı örnek elisp dahil etmek istediğinizde ben çok yapmak başka bir örnek:

  1. Kopyalamak istediğim kodun bitini işaretleyin.
  2. Kodu 4 boşluk girintilemek için Cu Cx SEKME tuşuna basın. Bu şekilde sitede kod olarak işlenir. Bu adım bölgeyi devre dışı bırakır.
  3. Bölgeyi yeniden etkinleştirmek için Cx Cx tuşuna basın, ardından StackWchange yanıtımda yapıştırabilmek için panoya kopyalamak için Mw'ye basın.

Diğer durum, bir bölgeyi işaretlediğinizde ve onu genişletmek / daraltmak istediğiniz zamandır. Bu durumda, bölgenin "diğer ucuna" atlamak, onu hareket ettirmek, sonra geri atlamak uygundur. Bölge zaten aktifse, Cx Cx tuşuna basıldığında bölge aktif kalır ve her iki ucu da hareket ettirebilirsiniz.


17

Emacs'a sor: C-h r i exchange-point-and-mark RETya da daha iyisi C-h r i C-x C-x RET. Bu sizi aşağıda gösterilen bilgilere götürür.

Düğüm Ayar İşareti sorunuza yanıt olarak Emacs kılavuzunun söylediği şeydir :

C-x C-xnoktanın konumundan memnun olduğunuzda, ancak bölgenin diğer ucunu (işaretin olduğu yerde) taşımak istediğinizde yararlıdır . C-x C-xGerekirse ikinci kez kullanmak , işareti orijinal konumuna geri gelecek şekilde yeni konuma yerleştirir. Normalde, işaret etkin değilse, bu komut bölgenin işaretli bırakıldığından emin olmak için önce işaretin en son ayarlandığı yeri yeniden etkinleştirir. Ancak, bir önek argümanı ile çağırırsanız, işaret etkin değil ve bölge vurgulanmamış olarak kalır; Eğer yapabilirsiniz işaretine atlamak için kullanabilir benzer bir şekilde C-u C-<SPC>.

Ve Devre Dışı Geçici İşaret düğümünde bunun hakkında söylediği şey :

[ transient-mark-mode] Kapatıldığında Emacs alternatif bir çalışma moduna geçer:

  • İşaretinin C-<SPC>veya gibi komutlarla ayarlanması C-x C-xbölgeyi vurgulamaz. Bu nedenle, işaretin bulunduğu yere bakarak söyleyemezsiniz; Hatırlamak zorundasın.

    Bu sorunun olağan çözümü, işareti ayarlamak ve daha sonra nerede olduğunu unutmadan önce kullanmaktır. Ayrıca , noktanın ve işaretin konumlarını değiştiren işaretin nerede olduğunuC-x C-x da kontrol edebilirsiniz - bkz. Ayar İşareti .

Geçici İşaretleme modu kapalıyken, C-<SPC> C-<SPC>veya tuşunu kullanarak geçici olarak etkinleştirebilirsiniz C-u C-x C-x.

ve:

C-u C-x C-x Nokta ve işareti değiştirin, işareti etkinleştirin ve işaret bir sonraki devre dışı bırakılana kadar Geçici İşaret modunu geçici olarak etkinleştirin. (Bu, bir önek bağımsız değişkenine sahip C-x C-xkomuttur exchange-point-and-mark.)


8

Bunu kaldıran bir işlem nedeniyle bir seçimi kaybettiğimde kullanıyorum ve seçimi geri yüklemek istiyorum. Böyle bir senaryo şöyle olur:

  1. Dikdörtgeni seçin.
  2. Öldür.
  3. Öldüren dikdörtgeni geri al.
  4. C-x C-x seçimi dikdörtgene geri yüklemek için.

Bu, seçilen bir alanın ad hoc yedeklemesini yapmak ve kopya üzerinde denemek istediğimde olur, örneğin, bazı bul ve değiştir yapmak istiyorum, ancak bunu yapmanın bir yolunu düşünemiyorum kalması gereken bazı metinleri yok etmeyecek şekilde, bu yüzden daha sonra kopyadan geri döndürürdüm.


8

Diğer cevaplar C-x C-xne zaman transient-mark-modeaktif olduğunun faydasına odaklanır . Ancak C-x C-xöncedir transient-mark-modeve bağımsız olarak yararlıdır.

Ana rolü C-x C-xnokta ve işaret takas etmektir. Bu, tek bir arabellekte iki noktayı düzenlerken faydalıdır ve bazı nedenlerden dolayı geçerli pencereyi bölmek istemez. Biraz düzenleme yapın, işaretleyin, arabellekteki başka bir noktaya geçin, biraz düzenleme yapın, C-x C-xeski yerde C-x C-xbiraz düzenleme yapın, biraz daha düzenleme yapın ve bu şekilde çalışın. (İkinci noktaya geri dönmeyi planlamıyorsanız, C-u C-SPCdaha sezgisel olabilir. Emacs kılavuzundaki işaret halkasına bakın .)

Ne zaman transient-mark-modedevre dışıdır, C-x C-xbir başka önemli amacı vardır: o bölgenin nerede olduğunu öğrenmek için izin verir. C-x C-x, C-x C-xyine noktaya hızlı bir bakış .

(Ve merak ediyorsanız - evet, bazılarımız hala Emacs'ı transient-mark-modeengelli kullanmayı tercih ediyoruz .)

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.