Tmux- এ একটি ক্লিপবোর্ডে নির্বাচন অনুলিপি করুন


24

আমি যদি ম্যাকোজে আইটিার্ম 2 তে টিএমউক্সে একটি মাউসের সাহায্যে পাঠ্যটি নির্বাচন করি তবে আমি নির্বাচিত পাঠ্যটি আমার ক্লিপবোর্ডে অনুলিপি করব। আমাকে কোনও অতিরিক্ত বাটন ক্লিক করতে হবে না - কেবল আপনি যে পাঠ্যটি চান তা নির্বাচন করুন এবং আপনি শেষ করেছেন।

আমি ম্যাকোজে টার্মিনাল.এপটিতে tmux পরীক্ষা করেছি কিন্তু এটি সেখানে কাজ করে না - yআমার ক্লিপবোর্ডে নির্বাচনটি অনুলিপি করতে আমাকে আঘাত করতে হবে।

আমি ভেবেছিলাম একটি মাউস বাঁধাই (ভালো কিছু নেই MouseOnSelectionঅনুরূপ MouseDown1Pane) কিন্তু আমি কিছুই ওয়েব এবং এর দরকারী খুঁজে পাইনি man tmux

আমি অবাক হয়ে দেখি যে উবুন্টু 16.10-তেও অনুরূপ আচরণ করার কোনও উপায় আছে - পছন্দমতো জিনোম টার্মিনালে।

আমার tmux ডটফাইলগুলি এখানে উপলব্ধ (লিঙ্ক)

উত্তর:


46

Vi কপি মোড বাইন্ডিং এবং এক্সক্লিপ সহ Tmux 2.4+ :

set-option -g mouse on
set-option -s set-clipboard off
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -se c -i"

পুরানো টিএমউक्स সংস্করণগুলির জন্য, ইমাস কপি মোড বাইন্ডিংগুলি (ডিফল্ট), বা নন-এক্স প্ল্যাটফর্মগুলি (অর্থাত্ কোনও এক্সক্লিপ নেই), নীচের ব্যাখ্যাটি দেখুন।


ব্যাখ্যা: প্রথমে আমাদের মাউস বিকল্পটি সক্ষম করতে হবে যাতে tmux মাউসটি ক্যাপচার করবে এবং আমাদের মাউস ইভেন্টগুলি আবদ্ধ করবে:

set-option -g mouse on

জিনোম-টার্মিনাল এক্সটার্ম এস্কেপ সিকোয়েন্সগুলি ব্যবহার করে ক্লিপবোর্ড সেট করা সমর্থন করে না তাই আমাদের set-clipboardবিকল্পটি বন্ধ রয়েছে তা নিশ্চিত করা উচিত :

set-option -s set-clipboard off

এই বিকল্পটি আইটার্ম 2 এ ডিফল্টরূপে সমর্থিত এবং সক্ষম হতে পারে (টিএমউ set-clipboardक्स ম্যানুয়ালটিতে দেখুন), যা সেখানে আচরণের ব্যাখ্যা দেয়।

তারপরে আমরা অনুলিপি মোডের MouseDragEnd1Pane"কী" আবদ্ধ করতে পারি , অর্থাত্, যখন একটি ফলকে ক্লিক করে এবং টেনে টেনে নেওয়ার পরে প্রথম মাউস বোতামটি প্রকাশ করা হয়, একটি টিএমউक्स কমান্ডে যা বর্তমান কপি মোড নির্বাচন (যার জন্য ডিফল্ট বাইন্ডিং দ্বারা তৈরি করা হয় MouseDrag1Pane) নেয় এবং পাইপ দেয় একটি শেল কমান্ড। এই tmux কমান্ডটি copy-pipetmux 2.4 এর আগে ছিল এবং এর পরে পরিবর্তিত হয়েছে send-keys -X copy-pipe[-and-cancel]। শেল কমান্ডের জন্য, আমাদের কেবল এমন কিছু দরকার যা সিস্টেম ক্লিপবোর্ডের বিষয়বস্তুগুলিকে সেট করে যা এতে পাইপ দেওয়া থাকে; এক্সক্লিপ নিম্নলিখিত কমান্ডগুলিতে এটি করতে ব্যবহৃত হয়। "xclip -selection clipboard -i"নন-এক্স প্ল্যাটফর্মগুলিতে নীচের জন্য কিছু সমতুল্য প্রতিস্থাপনগুলি হ'ল "wl-copy"(ওয়েল্যান্ড), "pbcopy"(ম্যাকোএস), "clip.exe"(উইন্ডোজ, ডাব্লুএসএল), এবং "cat /dev/clipboard"(সাইগউইন, মিনজিডাব্লু)।

Tmux 2.4+:

# For vi copy mode bindings
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
# For emacs copy mode bindings
bind-key -T copy-mode MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"

Tmux 2.2 থেকে 2.4:

# For vi copy mode bindings
bind-key -t vi-copy MouseDragEnd1Pane copy-pipe "xclip -selection clipboard -i"
# For emacs copy mode bindings
bind-key -t emacs-copy MouseDragEnd1Pane copy-pipe "xclip -selection clipboard -i"

Tmux 2.2 এর আগে:

নতুন mode-mouseবিকল্পটি সেট করার মাধ্যমে মাউস টেনে আনার সহায়তাটি অনুলিপি Tmux 1.3 এ যুক্ত হয়েছিল on। Tmux 2.1 মাউস সমর্থনকে পরিচিত মাউস কী বাইন্ডিংগুলিতে পরিবর্তন করেছে, তবে DragEndবাইন্ডিংগুলি নেই, যা 2.2-এ প্রবর্তিত হয়েছিল। সুতরাং, ২.২ এর আগে আমি বিশ্বাস করি যে মাউস ড্রাগনে সিস্টেম ক্লিপবোর্ড স্থাপনের একমাত্র পদ্ধতিটি ছিল এক্সটার্ম এস্কেপ সিকোয়েন্সগুলি ( set-clipboardবিকল্প) এর অন্তর্নির্মিত ব্যবহারের মাধ্যমে । এর অর্থ এই যে set-clipboardজিনোম টার্মিনাল যেমন সমর্থন করে না এমন টার্মিনালগুলির জন্য ড্রাগ এবং অনুলিপি ব্যবহার করার জন্য কমপক্ষে tmux 2.2 আপডেট করা প্রয়োজন ।


3
এই উচ্চ মানের উত্তরটি হ'ল শেষ পর্যন্ত এটি আমার জন্য সমস্ত ক্লিক করেছে .. ধন্যবাদ!
সিজউভিন

2
যে কেউ ম্যাকের জন্য এটি করার চেষ্টা করছেন কারণ তারা ও টার্মিনাল কার্যকারিতা এবং ওপি দ্বারা বর্ণিত ডিফল্ট পদ্ধতিটি আর কাজ করে না (আমি বায়বুকে ব্যবহার করছি যার নিজস্ব অনুলিপি বাফার রয়েছে): xclip...সরল pbcopyকরে বিবৃতিটি প্রতিস্থাপন করে ্জগ.
ডারেল হোল্ট

এই থ্রেডের কোনও সমাধানই আমার পক্ষে কাজ করে না।
ইয়াঙ্কি

1
হাই জোশ, যখন আমি source / .tmux.conf উত্স-ফাইল করি, তখন দেখা গেল:Unknown key: MouseDragEnd1Pane
Xifeng Li

@ XifengLi আপনি কোন টিএমউक्स সংস্করণ এবং ওএস ব্যবহার করছেন? আমি বিশ্বাস করি DragEndকীগুলির জন্য আপনার কমপক্ষে tmux 2.2 প্রয়োজন ।
জোশ ব্রবস্ট

8

গৃহীত উত্তরের একটি এক্সটেনশন হিসাবে, লোকেরা প্রায়শই মাউস বোতামটি প্রকাশ করার সময় অনুলিপিটি দেখতে পায় অনুলিপি-মোড থেকে বেরিয়ে আসে (এর সাথে এটি ঘটে copy-pipe-and-cancel)। দেখুন: https://github.com/tmux/tmux/issues/140 । অতএব, নতুন টিএমউক্সে (আমি ২.6 ব্যবহার করি) আমরা নির্বাচনের অনুলিপি copy-pipeসহ একসাথে ব্যবহার করতে clear selectionপারি তবে অনুলিপি-মোড থেকে প্রস্থান করি না:

bind-key -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe "xclip -selection clipboard -i" \; send -X clear-selection

2

উইন্ডোজ ক্লিপবোর্ডে এমএসএস 2 থেকে অনুলিপি করতে উভয় উত্তর প্রসারিত করা (এবং নির্বাচন সাফ করুন):

# For vi copy mode bindings
bind -Tcopy-mode-vi MouseDragEnd1Pane send -X copy-pipe "cat > /dev/clipboard" \; send -X clear-selection
# For emacs copy mode bindings
bind -Tcopy-mode MouseDragEnd1Pane send -X copy-pipe "cat > /dev/clipboard" \; send -X clear-selection

ভাল যুক্তি. আমি নিজেই অনুলিপি-মোড ব্যবহার করি (ইমাসিক স্টাইল) এবং তাই পরীক্ষার পরে আমার নিজের কনফিগারটি আটকানো হয়েছিল। আমি গ্রহণযোগ্য উত্তর হিসাবে উভয় অন্তর্ভুক্ত উত্তর আপডেট করেছি।
শন হুভার

0

তবুও অন্য এক্সটেনশানটি Shiftকী ব্যবহার করা সম্পর্কে ।

Shiftমাউস সহ পাঠ্য নির্বাচন করার সময় ধরে থাকুন । এখন আপনি একটি স্ট্যান্ডার্ড রাইট-ক্লিক মেনু পান (ধরে রাখুন বা Shiftআবার টিপুন ) এবং আপনি কপি এবং পেস্ট করতে Ctrl+Shift+Cএবং ব্যবহার করতে পারেন Ctrl+Shift+V। অনুলিপি করা পাঠ্যটি সিস্টেম ক্লিপবোর্ডেও উপলব্ধ ।

উপর পরিক্ষিত Ubuntu 18.04.1সঙ্গে tmux 2.6

সূত্র: https://forum.upcase.com/t/tmux-ctrl-shift-c-and-ctrl-shift-v-bindings/1208

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.