Emacs içindeki otomatik yorum eşleşen ayraçlar


1

Buna benzer kodu otomatik olarak yorumlayacak bir emacs komutu bulmaya çalışıyorum:

Komutundan önce

if(condition){
        do ...
}

Komutundan sonra

if(condition){
        do ...
} //Matches if(condition){

Parantezler arasındaki kod bloğu geçerli sayfaya sığmayacak kadar büyük olduğunda, kapanış ayracını yerleştirdiğimde bana "Eşleşirse (koşul)" kısmını göstereceğini biliyorum. Bununla birlikte, bir kod bloğu seçmek ve bu komutu emacs'de çalıştırmak istiyorum, böylece o yorumu benim için orada koyacak. Bir şey belirsiz ise ve belirtmekten memnuniyet duyarım, lütfen bana bildirin. Bu sorunun daha önce sorulmuş olup olmadığını da özür dilerim, ancak baktım ve bulamadım. Eğer öyleyse, lütfen bu soruyu bana yönlendir.

Şimdiden teşekkürler.

Yanıtlar:


0

Bunu ~/.emacsdosyanızın altına ekleyin ve Emacs'ı yeniden başlatın. Klavyeyi seçtiğiniz herhangi bir tuş dizisine değiştirin:

(defun my-add-end-block-comment ()
  "Documentation goes here ..."
  (interactive)
  (let (start text)
    (save-excursion
      (backward-sexp 3)
      (setq start (point))
      (end-of-line)
      (setq text (buffer-substring start (point))))
    (insert (concat "  // " text))))

(global-set-key (kbd "C-z /") 'my-add-end-block-comment)

Ardından imleci kapat ayracının ( }) üzerine getirin ve tuşuna basın C-z /. Bu da çalışmalı whileve fordöngüler olmalıdır.


Başka cümlecikleri olan if-ifadelerinde başarısız olabileceğini düşünüyorum . Çaresizce ihtiyacınız varsa, bana bildirin ve bu davayla ilgili bir şeyi kodlayabilirim.
Fran

0

İf bloğunu aramak için C'leri (ileri arama) kullanabilirsiniz, bölgeyi seçin ve M-; (comment-dwim) bölgeye yorum yapmak.

Şüphe duyduğunuzda, Mx apropos <RET> <arama teriminiz burada> <RET> kullanın.


0

Yorum için sonunda başka bir alana sahip olan YASnippet gibi bazı pasaj aracını kullanabilirsiniz . İstediğiniz şekilde aynı davranış olmayacak, ancak günün sonunda aşağı yukarı aynı şeyi yapacak.

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.