Tmux এ vi-copy মোডে সিস্টেম ক্লিপবোর্ড ব্যবহার করুন


50

আমি tmux 1.6 চালিয়ে যাচ্ছি এবং আমি ইন্টার-ইন্টারেক্টিভ মোডে অনুলিপি করার সময় এটি সিস্টেমটি ক্লিপবোর্ড ব্যবহার করার পাশাপাশি vi-স্টাইলের কী বাইন্ডিংগুলি ব্যবহার করার জন্য কনফিগার করার চেষ্টা করছি:

set-window-option -g mode-keys vi

bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' "copy-selection && run \"tmux save-buffer | xclip -selection clipboard\""

সহজ কথায় বলতে গেলে , আমি C+ করতে সক্ষম হতে চাই [এবং তারপরে vঅনুলিপি করার জন্য পাঠ্য নির্বাচন করা শুরু করি, তারপরে যখন yচাপ দেওয়া হয়, তখন নির্বাচনটি টিএমউक्स নির্বাচনে অনুলিপি করুন এবং তারপরে এটি ব্যবহার করে সিস্টেম ক্লিপবোর্ডে রফতানি করুন xclip

দুর্ভাগ্যক্রমে, যখন আমি এটি করার চেষ্টা করি তখন আমি নিম্নলিখিতগুলি দেখি:

.tmux.conf: 14: unknown command: copy-selection && run "tmux save-buffer | xclip -selection clipboard"

Tmux কনফিগারেশনে এটি করার কোনও উপায় আছে কি?

উত্তর:


86

এটিরও এখানে উত্তর দেওয়া হয়েছিল , তবে কীভাবে এটি ব্যবহার করবেন তা বুঝতে আমার কিছুটা সময় লেগেছে, সুতরাং আমি বিভ্রান্ত অন্য কারও জন্য ব্যাখ্যা করব।

এটি মূলত আপনি যাচ্ছেন সেটিংটি:

(tmux সংস্করণ <2.5 এর জন্য )

bind -t vi-copy y copy-pipe 'xclip -in -selection clipboard'

(tmux সংস্করণগুলির জন্য> = 2.5 )

bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'

তারপরে Ctrl+b [কপি মোডে প্রবেশ করতে চাপুন। তারপরে Spaceএকটি নির্বাচন করতে যে কোনও vi আন্দোলনের কীগুলি অনুসরণ করুন hit তারপরে, আঘাতের পরিবর্তে Enterহিট করুন yএবং নির্বাচনটি ক্লিপবোর্ডে অনুলিপি করা হবে।

দ্রষ্টব্য: এটি ধরে নিয়েছে আপনি vi কীগুলির সাথে tmux এর ডিফল্ট বাইন্ডিং ব্যবহার করছেন।

টিমাক্সের বিভিন্ন মোডের জন্য বিভিন্ন কী বাঁধাই টেবিল রয়েছে। সুতরাং, অনুলিপি মোডে কী bind-key -t vi-copy yজন্য অ্যাকশন সেট করে y। প্রাথমিকভাবে, আমি বিভ্রান্ত হয়ে পড়েছিলাম কারণ Enterএকটি নির্বাচন করার পরে আমার মারার অভ্যাস ছিল । কমান্ডের Enterজন্য আসলে ডিফল্ট কী বাঁধাই হয় copy-selection(যখন অনুলিপি মোডে থাকে)। copy-pipeকমান্ড আমাদের কমান্ড, যা এই ক্ষেত্রে হয় নির্বাচন নল করার জন্য একটি নতুন কী সহিত আবদ্ধ করতে পারবেন xclip

আপনি অনুলিপি মোডের জন্য সমস্ত কী বাইন্ডিং চালিয়ে দেখতে পারেন list-keys -t vi-copy


অনেক ধন্যবাদ, আমাকে tmux 1.9a ডাউনলোড এবং সংকলন করতে হয়েছিল, তবে এটি এতটা কঠিন ছিল না এবং এখন এটি কেবল কার্যকর ™!
নাফতুলি কে

3
যদি এটি কেবলমাত্র xclipআপনার সিস্টেমে ইনস্টল করা আছে যা ডাবল চেক কাজ করে না (এটি উবুন্টুতে ডিফল্টরূপে ইনস্টল করা হয়নি, আপনাকে এটি নেওয়া দরকার sudo apt-get install xclip)
ecerulm

3
জন্য ওএসএক্স, প্রতিস্থাপন xclipসঙ্গে pbcopy। উইন্ডোজে সাইগউইনের জন্য, এটিকে প্রতিস্থাপন করুন putclip( cygutils-extraপ্যাকেজ থেকে )।
স্নোরিংফ্রোগ

5
এই ব্লগ এন্ট্রি থেকে নিম্নলিখিত বাঁধাই টিএমউक्स ২.6-তে খুব দুর্দান্ত কাজ করে এবং অনুলিপি করার সময় স্ক্রিনে আপাতদৃষ্টিতে এলোমেলো অক্ষর রাখার খারাপ দিক নেই:bind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xclip -i -f -selection primary | xclip -i -selection clipboard"
ম্যাথিয়াস ব্রাউন

1
.Tmux.conf: থেকে এই লাইনটি সরিয়ে না দেওয়া পর্যন্ত এটি আমার পক্ষে কাজ করছে না set -g mouse on। এটি "মাউস মোড" সক্ষম করার কথা রয়েছে তবে এটি আমার মাউস সম্পর্কিত সমস্ত কিছু সরিয়ে দেওয়ার পরেও (স্ক্রোল হুইল কাজ করে, মাউস নির্বাচন কাজ করে) ...
nddou

11

বেন ডেভিসের উত্তর আপডেট হয়েছে

tmux 2.4 এর সাথে সামঞ্জস্যপূর্ণ

bind -T copy-mode-vi y send -X copy-pipe "xclip -selection c"

4
আমি এটির copy-pipe-and-cancelচেয়ে কিছুটা ভাল কাজ করে দেখছি copy-pipe। এটি tmux 2.5
wreckgar23

6

আপনি বেশ কয়েকটি প্রযুক্তিগত সমস্যা নিয়ে
চলেছেন : "বিশেষ মোড" বাইন্ডিংগুলি (যেমন vi-copy)…

  1. কমান্ডের একটি আলাদা সেট ব্যবহার করুন (যেমন run-shellওরফে runউপলভ্য নয়), এবং
  2. একাধিক কমান্ড বাঁধানোর ক্ষমতা রাখে না (যা সাধারণত ;শেলের &&কমান্ড বিভাজক দ্বারা উপলব্ধ নয়) separated

tmux 1.8 এর রয়েছে copy-pipe, যা সাহায্য করতে পারে যদিও:

bind-key -t vi-copy y copy-pipe 'xclip -selection clipboard >/dev/null'

(এই তালিকাভুক্ত মত একটি বাঁধাই নেই প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী ।)


1
আমার tmux 1.8 আছে এবং এটি কাজ করে না বলে মনে হচ্ছে। (সম্পাদনা) উঘ, আমি টেক্সারিয়া ইনপুটগুলিকে ঘৃণা করি যা এন্টারে জমা দেয়। যাইহোক, আমি এই কী বাইন্ডিংটি যুক্ত করেছি, তবে যখন আমি <prefix> -y করি এবং [স্পেস] টি চাপি তখন সামগ্রীগুলি ক্লিপবোর্ডে অনুলিপি করা হয় না।
বেন ডেভিস

সবেমাত্র তা বের করে ফেলেছি। কীভাবে "ভিআই-কপি" কী-বাইন্ডিং সারণি কাজ করেছিল তা আমি বুঝতে পারি নি।
বেন ডেভিস

5

Tmux- এর জন্য tmux-yank প্লাগইনটি একবার দেখুন। https://github.com/tmux-plugins/tmux-yank

এটি সিস্টেম ক্লিপবোর্ডে tmux থেকে অনুলিপি / পেস্ট করার জন্য একটি স্বয়ংক্রিয় উপায় সরবরাহ করে। এটি ওএসএক্স / লিনাক্স / সাইগউইন সিস্টেমে কাজ করে।


এটি আমার জন্য দুর্দান্ত কাজ করেছে, লিঙ্কটির জন্য ধন্যবাদ!
ব্রায়ান হেনরি

2

ম্যাকোসের জন্য আপনি এই লাইনটি এতে যুক্ত করতে পারেন .tmux.conf

bind -t vi-copy y copy-pipe 'pbcopy'


ম্যাকোস ব্যবহারকারীগণ, tmux> = 2.5 এর জন্য:bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'pbcopy'
দাই

1

এটিই আমার জন্য tmux 2.2 ব্যবহার করে এবং এক্সক্লিপ ইনস্টল করে কাজ করে। ভিম স্টাইল কপি করার জন্য .tmux.conf এ নিম্নলিখিতগুলি যুক্ত করুন

bind Escape copy-mode
bind -t vi-copy 'v' begin-selection
bind -t vi-copy 'y' copy-selection
# Vim style copy to clipboard
bind-key -t vi-copy y copy-pipe "xclip -selection c > /dev/null"
bind-key p run "xclip -o -sel clip | tmux load-buffer - ; tmux paste-buffer"

এখানে যখন অনুলিপি-মোডে থাকে তখন PREFIX v নির্বাচন শুরু হয় এবং ক্লিপবোর্ডে PREFIX y কপি করে। PREFIX p টার্মিনালে পেস্ট করতে ব্যবহার করা যেতে পারে।

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