এটি আমার বরং দীর্ঘ উত্তর যা দূরবর্তী (এসএসএস) টিএমউक्स সেশন থেকে বাফারটি অনুলিপি করতে এক্সক্লিপ ব্যবহার করে দুটি বড় সমস্যার সমাধান করতে হবে:
1. দায়িত্বহীন এক্সক্লিপ
আমার জন্য @ Grauwolf এর উত্তর দিয়ে xclip
কাজ করে নি (সম্পূর্ণই প্রতিক্রিয়াহীন ফলক tmux উপস্থাপনা)। আর্ক উইকির টিমাক্স পৃষ্ঠায় আমি জানতে পেরেছিলাম :
এক্সস্লিপও সে উদ্দেশ্যে ব্যবহার করা যেতে পারে, এক্সসেলের বিপরীতে এটি বর্তমান লোকেলের সাথে মানানসই কাঁচা বিটস্ট্রিম প্রিন্ট করার ক্ষেত্রে আরও ভাল কাজ করে। তবুও, এক্সক্লিপের পরিবর্তে এক্সসেল ব্যবহার করা আরও পরিষ্কার, কারণ টিএমউক্সের বাফারটি পড়ার পরে এক্সক্লিপ এসটিডিওটি বন্ধ করে না। যেমনটি, টেমাক্স জানে না যে অনুলিপিটি টাস্কটি সম্পন্ন হয়েছে, এবং এক্সক্লিপের সমাপ্তির জন্য অপেক্ষা করতে থাকে, যার ফলে tmux প্রতিক্রিয়াবিহীন করে। একটি কাজের ভিত্তি হল এক্সক্লিপের STDOUT কে / dev / নালটিতে পুনর্নির্দেশ করা
তাই বাধ্যতামূলক হওয়া উচিত:
bind-key C-y run "tmux save-buffer - | xclip -i -sel clip > /dev/null"
এখন, যদি আপনার টিএমএক্স সেশন স্থানীয় হয় তবে এটি কাজ করবে।
2. এক্সক্লিপ এক্স সাথে সংযোগ করতে অক্ষম
আপনি যদি ssh -X ওপরে tmux ব্যবহার করেন তবে এটির সরাসরি কাজ করবে না এমন বড় সম্ভাবনা রয়েছে ।
এটি কারণ শেল ভেরিয়েবলটি $DISPLAY
সঠিকভাবে সেট করা দরকার।
সম্পূর্ণ সমাধান
সুতরাং আমার জন্য, সম্পূর্ণ কার্যনির্বাহী সমাধানটি আমার মধ্যে নিম্নলিখিত লাইনগুলি রাখা ~/.tmux.conf
:
set-option -g update-environment "DISPLAY"
bind-key C-y run "export DISPLAY=`tmux show-env | sed -n 's/^DISPLAY=//p'`; tmux save-buffer - | xclip -i -selection clipboard >/dev/null"
# Or more concise:
bind-key C-y run "tmux save-buffer - | xclip -i -selection clipboard -d `tmux show-env | sed -n 's/^DISPLAY=//p'` >/dev/null
প্রাথমিক থেকে আটকানোর জন্য:
bind-key C-p run "xclip -d `tmux show-env | sed -n s/^DISPLAY=//p` -o | tmux load-buffer - && tmux paste-buffer"
$DISPLAY
সোরিংয়ের সময় কেন সঠিকভাবে সেট করা হয় না তা আমি পুরোপুরি বুঝতে পারি না .tmux.conf
, সুতরাং এ কারণেই আমাকে এটি tmux show-env
এবং দিয়ে বের করতে হবে sed
।
আপনার যদি tmux> = 1.8 থাকে তবে আপনি এই আদেশটি এর সাথে মানিয়ে নিতে পারেন copy-pipe
:
bind-key -t vi-copy y copy-pipe 'xclip -in -selection clipboard -d `tmux show-env | sed -n s/^DISPLAY=//p` >/dev/null'