আমি লিনুম.এল থেকে কিছু এলিস্প কোডটি পরিবর্তন করছি:
(custom-set-variables '(linum-format 'dynamic))
(defadvice linum-update-window (around linum-dynamic activate)
(let* ((w (length (number-to-string
(+ (count-lines (point-min) (point-max)) 1))))
(linum-format (concat " %" (number-to-string w) "d ")))
ad-do-it))
আমি একটি বাগ ঠিক করতে সক্ষম হয়েছি যেখানে সংশোধন (count-lines (point-min) (point-max))
করে একের পর এক ইনডেন্টেশন ছিল (+ (count-lines (point-min) (point-max)) 1)
। এটা সহজ.
তবে এখন আমি এটি সংশোধন করতে চাই যাতে একটি শর্তসাপেক্ষ যোগ করে সর্বনিম্ন প্রস্থটি 2 হয় যেখানে (concat " %" (number-to-string w) "2d ")
লাইন নম্বর গণনা <10 হয়।
এটি সহজ হতে হবে! একটি শর্তযুক্ত যোগ করুন এবং কঙ্কটটি অনুলিপি / আটকান। কেকের টুকরো, তাই না? আমি বলতে চাচ্ছি, আমি জানি আমি কি করছি অনুমিত না কিন্তু আমি খুব কমই elisp স্পর্শ করুন এবং আমি সবসময় ক্যাপ্টেনকে করছি যখন আমি প্রথম বন্ধনী প্রচুর সঙ্গে কিছু পরিবর্তন করতে হবে।
"সঠিক" শৈলী, যা আমি বুঝতে পেরেছি তা হ'ল ইনডেন্টেশনের উপর ভিত্তি করে কোডটি গঠন করা এবং তার নিজের পরিবর্তে লাইনের শেষে ট্রেইলিং প্রথম বন্ধনী আবদ্ধ করা। অন্যান্য 'সি' শৈলীর ভাষা থেকে আসা, আমি এইভাবে পড়া এবং লেখার কোড উভয়ের সাথেই সংগ্রাম করি। সুতরাং আমার প্রশ্ন: আমি কী ভুল করছি? আমি কীভাবে এলিসপ সম্পাদনা করব এবং কোডটির চারপাশে এমনভাবে নেভিগেট করব যে আমাকে সেখানে বসে প্রতিটি প্যারেন্যাসিস গণনা করতে হবে না?
আমি যখন এলিস্পে এমন কিছু নিয়ে কাজ করি যা খুব গভীর হয়ে যায় তখন আমাকে আমার দরজাটি বন্ধ করতে হবে, ব্লাইন্ডগুলি টানতে হবে, এবং বন্ধুত্বের কে & আর-স্টাইলের অবস্থান শুরু করতে হবে যাতে আমি কেবল পড়তে পারি না তবে বিন্যাস ছাড়াই ডার্ন জিনিসটি পরিবর্তন করতে পারি।
অবশ্যই আমি এই সব ভুল করছি। আমি কীভাবে নির্ভয়ে এইভাবে ছুঁতে পারি?
দয়া করে মনে রাখবেন যে আমার প্রশ্নটি কীভাবে এলিজাপে নেভিগেট এবং সম্পাদনা করতে হবে তা শৈলীতে প্রশ্ন হিসাবে নয়। আমি নীচে ইতিমধ্যে একটি স্টাইল গাইড হিসাবে ব্যবহার করছি: https://github.com/bbatsov/emacs-lisp-style-guide
আপডেট:
Emacs.stackexchange এ নিজেকে এমপ্রেস করার আগে কীভাবে এলিসপকে সঠিকভাবে ফর্ম্যাট করবেন:
আপনার elisp চিহ্নিত করুন এবং সঞ্চালন M-x indent-region
।
সমস্যার সমাধান:
নূন্যতম দুই প্রস্থের সাথে লিনামের জন্য কীভাবে ন্যায়সঙ্গত আচরণ করতে হয় তা জানতে আগ্রহীদের জন্য, সমাধানটি এখানে দেওয়া হল:
(defadvice linum-update-window (around linum-dynamic activate)
(let* ((w (length (number-to-string
(+ (count-lines (point-min) (point-max)) 1))))
(linum-format (if (> w 1)
(concat " %" (number-to-string w) "d ")
" %2d ")))
ad-do-it))
%2d
কারণ একবার প্রস্থটি 3 বা ততোধিক অক্ষরগুলিতে গড়িয়ে পরে এটি ডান-ন্যায়সঙ্গত থেকে বাম-ন্যায়সঙ্গত থেকে নিয়ে আসে।
highlight-parentheses
,; rainbow-delimiters
; ইত্যাদি Here এখানে আমার নিজস্ব সরলিকৃত সংস্করণ highlight-parentheses
যা শেষ বর্ণের রঙিন বন্ধনীগুলি সরিয়ে ছাড়াই স্ক্রোলিংয়ের অনুমতি দেয়: stackoverflow.com/a/23998965/2112489 ভবিষ্যতে, গ্রাহক / থ্রেডের প্রতি এটি একটি প্রশ্ন।