كيف يمكنني الوصول إلى محتويات المنطقة الحالية في إيماكس اللثغة؟
سؤال
وأريد أن الوصول إلى محتويات المنطقة الحالية كسلسلة داخل دالة. على سبيل المثال:
(concat "stringa" (get-region-as-string) "stringb")
والشكر
وإد
المحلول
buffer-substring
جنبا إلى جنب مع region-beginning
وregion-end
تستطيع أن تفعل ذلك.
نصائح أخرى
وكما يقول starblue، (buffer-substring (mark) (point))
إرجاع محتويات المنطقة، إذا تم تعيين علامة. إذا كنت لا تريد خصائص السلسلة ، يمكنك استخدام 'buffer-substring-no-properties
البديل.
ولكن، إذا كنت كتابة <م> التفاعلية م> الأمر، وهناك طريقة أفضل للحصول على نقاط النهاية في المنطقة، وذلك باستخدام النموذج (interactive "r")
. وإليك مثالا من simple.el
:
(defun count-lines-region (start end) "Print number of lines and characters in the region." (interactive "r") (message "Region has %d lines, %d characters" (count-lines start end) (- end start)))
عند استدعائه من كود ليسب، يتم تجاهل شكل (interactive ...)
، بحيث يمكنك استخدام هذه الوظيفة لحساب خطوط في أي م> جزء من المنطقة العازلة، وليس فقط في المنطقة، عن طريق تمرير الحجج المناسبة: مثال ل، (count-lines-region (point-min) (point-max))
لحساب خطوط في الجزء الضيق من المخزن المؤقت. ولكن عندما دعا تفاعلي، يتم تقييم شكل (interactive ...)
، ورمز "r"
وازم نقطة وعلامة، واثنين من الوسائط الرقمية وأصغر أولا.
وانظر دليل إيماكس اللثغة، الأقسام <لأ href = "http://www.gnu.org/software/emacs/manual/html_node/elisp/Using-Interactive.html#Using-Interactive" يختلط = "noreferrer" > 21.2.1 عن طريق التفاعلية و <لأ href = "http://www.gnu.org/software/emacs/manual/html_node/elisp/Interactive-Codes.html#Interactive-Codes" يختلط = "noreferrer "> 21.2.2 أحرف مدونة تفاعلية.
إذا كنت تريد نسخ المحتوى المنطقة في مدونة يسب إلى بنية بيانات للمستخدم الوصول إليها مثل قتل الدائري، X الحافظة أو التسجيل، يوصي دليل إيماكس اللثغة استخدام <لأ href = "HTTP: //www.gnu. غزاله / البرمجيات / ايماكس / دليل / html_node / elisp / العازلة-Contents.html # مؤشر filter_002dbuffer_002dsubstring-2827 "يختلط =" noreferrer "> filter-buffer-substring
بدلا من مجرد buffer-substring
. قبل النسخ، وينطبق على وظيفة وظائف تصفية من قائمة متغير يسمى <لأ href = "http://www.gnu.org/software/emacs/manual/html_node/elisp/Buffer-Contents.html#index-filter_002dbuffer_002dsubstring_002dfunctions-2828" يختلط = "noreferrer"> filter-buffer-substring-functions
. وظيفة تم أضاف في الإصدار 22.3 .