كيف يمكنني الوصول إلى محتويات المنطقة الحالية في إيماكس اللثغة؟

StackOverflow https://stackoverflow.com/questions/605846

  •  03-07-2019
  •  | 
  •  

سؤال

وأريد أن الوصول إلى محتويات المنطقة الحالية كسلسلة داخل دالة. على سبيل المثال:

(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 .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top