আমারও এই সমস্যা হচ্ছে, যা এখনও মেন্ডেলি-তে স্থির হয়নি। কুই কি-র দুর্দান্ত পরামর্শের ভিত্তিতে, আমি ইম্যাক্স ব্যবহার করে আমার সমস্যাটি সমাধান করেছি, তবে ব্যাচ মোডে, আমাকে শেল স্ক্রিপ্টে সমাধানটি খুব ভালভাবে মোড়ানোর অনুমতি দেয়।
প্রথমে, আমি নীচের ইমাস লিস্প স্ক্রিপ্ট তৈরি করেছি (আসুন একে বিবসোর্ট.এল বলি):
( defun bibsort()
( bibtex-sort-buffer )
( save-buffer )
)
এটি কী নামে কোনও বিবেটেক্স ফাইল বাছাই করে তারপরে সংরক্ষণ করে। কমান্ড লাইন থেকে আপনি স্ক্রিপ্টটি ব্যাচ মোডে কল করতে পারেন। "গিট ডিফ ফাইল নাম " থেকে রিটার্ন কোডটি পরীক্ষা করে মেন্ডেলি প্রতিটি বিবটেক্স ফাইলের জন্য এটি কল করতে শেল স্ক্রিপ্ট লেখার জন্য আরও এগিয়ে গিয়েছিলাম (এটি অকারণে লিসপ কোডটি চালা না করে সময় সাশ্রয় করে) যে ফাইলগুলি পরিবর্তন হয়নি)।
এখানে শেল স্ক্রিপ্টটি রয়েছে (যাক কল্পনাপ্রসূতভাবে একে বিবসোর্ট.শ বলি), যা ধরে নিয়েছে যে বিবটেক্স ফাইল এবং লিসপ স্ক্রিপ্ট উভয়ই বর্তমান ডিরেক্টরিতে রয়েছে:
#!/bin/bash
bibliobasher() {
IFS=$( echo -en "\n" )
BIBFILES=*.bib
for bibfile in $BIBFILES
do
git diff --quiet "$bibfile" 2> /dev/null
if [ $? = 1 ]; then
emacs --batch -l bibsort.el "$bibfile" -f bibsort
fi
done
}
bibliobasher
প্রতিটি গিট কমিট করার আগে কেবল এটি চালান (প্রয়োজনে ফাইল অনুমতি সেট করার পরে):
chmod a+x bibsort.sh
./bibsort.sh
git commit ...
এটি মেন্ডেলি দ্বারা যুক্ত অতিরিক্ত নন-বিবেটেক্স লাইনগুলিকে স্পর্শ করবে না এবং ইমাস সহ কোনও ইউনিক্স / লিনাক্স ইনস্টলেশনতে কাজ করা উচিত। এটি উইন্ডোজের জিআইটি কনসোলেও (যা আমি ব্যবহার করছি) কাজ করে, তবে আপনাকে আলাদাভাবে ইমাকের এমিংডাব্লু বিল্ড ইনস্টল করতে হবে।
আমার জন্য, গিট কমিটস এখন মার্জিত এবং অর্থনৈতিকভাবে কাজ করে। আশাকরি এটা সাহায্য করবে ...