नीचे दिए गए कोड c-mode
बफर में मेरे संक्षिप्त परीक्षण से ठीक काम करते हैं :
- बाद टाइपिंग
/*
, मारा M-j
, डिफ़ॉल्ट के लिए बाध्यकारी indent-new-comment-line
(और डिफ़ॉल्ट के लिए बाध्यकारी c-indent-new-comment-line
में c-mode
)। यदि यह पहली टिप्पणी लाइन है तो समापन समापन वर्ण */
ऑटो-सम्मिलित होंगे।
- उपसर्ग के
M-j
साथ अधिक टिप्पणी लाइनें डालने के साथ अधिक बार हिट करना *
। यह इन- फ़ंक्शन c-indent-new-comment-line
/ इन-बिल्ट व्यवहार है indent-new-comment-line
। टिप्पणियों के दस्तावेज़ों की एकाधिक पंक्तियों की जाँच करें ।
- नीचे दिए गए कोड में एक अतिरिक्त डला यह सुनिश्चित करता है कि
*
प्रत्येक टिप्पणी लाइन और टिप्पणी के बीच कम से कम एक स्थान हो ।
(defun my-prettify-c-block-comment (orig-fun &rest args)
(let* ((first-comment-line (looking-back "/\\*\\s-*.*"))
(star-col-num (when first-comment-line
(save-excursion
(re-search-backward "/\\*")
(1+ (current-column))))))
(apply orig-fun args)
(when first-comment-line
(save-excursion
(newline)
(dotimes (cnt star-col-num)
(insert " "))
(move-to-column star-col-num)
(insert "*/"))
(move-to-column star-col-num) ; comment this line if using bsd style
(insert "*") ; comment this line if using bsd style
))
;; Ensure one space between the asterisk and the comment
(when (not (looking-back " "))
(insert " ")))
(advice-add 'c-indent-new-comment-line :around #'my-prettify-c-block-comment)
;; (advice-remove 'c-indent-new-comment-line #'my-prettify-c-block-comment)
उदाहरण के लिए, उपरोक्त कोड का मूल्यांकन करने के बाद, मुझे नीचे टाइपिंग आती है /*
M-j
First comment line
M-j
Second comment line
:। टाइपिंग के अंत में at कर्सर स्थान को इंगित करता है।
/*
* First comment line
* Second comment line▮
*/
परीक्षण ऑफसेट टिप्पणी ब्लॉक ..
अर्धविराम के बाद कर्सर के साथ, टाइपिंग: /*
M-j
Test offset comment
नीचे देता है। टाइपिंग के अंत में at कर्सर स्थान को इंगित करता है।
#include<stdio.h>
main() {
printf("Hello World"); /*
* Test offset comment▮
*/
}