আমি এক্স ক্লিপবোর্ডের সাথে Zsh এর কাটা বাফার একীভূত করতে চাইছিলাম। আমি উপরোক্ত http://stchaz.free.fr/mouse.zsh চেষ্টা করেছিলাম কিন্তু আমি দেখতে পেলাম যে আমার সমস্ত Zsh ক্রিয়াকলাপটি ক্লিপবোর্ডে পপুলেশন করা আমার পছন্দ নয়। উদাহরণস্বরূপ, কখনও কখনও আমি কোনও ব্রাউজারে কিছু অনুলিপি করতাম এবং তারপরে একটি শেল গিয়ে কমান্ড লাইনটি সম্পাদনা করে তারপরে পেস্ট করতাম। তবে প্রায়শই কমান্ড লাইন সম্পাদনা করা - উদাহরণস্বরূপ একটি শব্দ মুছে ফেলা - Zsh কাট বাফারকে সংশোধন করে। আরও ভাল বা খারাপ হিসাবে এক্স এর কাছে কেবল একটি কিলিংবোর্ড রয়েছে, কিলের রিংটি নেই, সুতরাং যখন জেডএসডি সম্পাদনা অপারেশন ক্লিপবোর্ডটি ওভাররাইট করে, আমি যে জিনিসটি আটকাতে চেয়েছিলাম সেটি হারিয়ে যায় - আমি (সি মাই) ইয়াঙ্ক-পপ করতে পারি না আমি যেমন পারতাম Zsh বা Emacs এ করুন।
আমি এর পরিবর্তে যা করেছি তা হ'ল zsh এর মাধ্যমে এক্স ক্লিপবোর্ডের সাথে ইন্টারেক্ট করার জন্য নতুন বিশেষ কী-বাইন্ডিং তৈরি করা। "^ এক্সডাব্লু" এবং "^ জাই" দেখা যাচ্ছে ইমাস এবং জেডএস উভয় ক্ষেত্রেই অব্যবহৃত। এইভাবে সম্পাদনার স্বাভাবিক ক্রিয়াকলাপ, কাটবুফার এবং কিল রিংটি একা থাকে। যদি আমি অঞ্চলটি সেট করে দেওয়া ক্লিপবোর্ডে কিছু অনুলিপি করতে চাই এবং "^ এক্সডাব্লু" করি (বা যদি আমি ইতিমধ্যে এটি মেরে ফেলেছি এবং অঞ্চলটি নিষ্ক্রিয় থাকে তবে আমি কাট বাফারটি অনুলিপি করতে কেবল "^ এক্সডাব্লু" করতে পারি)। ক্লিপবোর্ড থেকে আটকানো "^ Xy" দিয়ে সম্পন্ন হয়।
# define commands to copy and paste x clipboard
# ^Xw - copy region, or cut buffer
# ^Xy - paste x clipboard
# in both cases, modifies CUTBUFFER
copy-to-xclip() {
[[ "$REGION_ACTIVE" -ne 0 ]] && zle copy-region-as-kill
print -rn -- $CUTBUFFER | xclip -selection clipboard -i
}
zle -N copy-to-xclip
bindkey "^Xw" copy-to-xclip
paste-xclip() {
killring=("$CUTBUFFER" "${(@)killring[1,-2]}")
CUTBUFFER=$(xclip -selection clipboard -o)
zle yank
}
zle -N paste-xclip
bindkey "^Xy" paste-xclip
kill-region
সঙ্গেvi-delete
এবংyank
সঙ্গেvi-put-after
একইভাবে মোড়ানো ইত্যাদিvi-yank
অন্যদের, এবং। (আমি এটি আরও কেন্দ্রীয়ভাবে করার কোনও উপায় খুঁজে