Tmux এবং ক্লিপবোর্ডের মধ্যে পাঠ্য নির্বাচনের অনুলিপি / অনুলিপি করুন


15

আমি tmux (গিট সংগ্রহস্থল থেকে) এবং এক্সক্লিপ (0.12) এর সর্বশেষ সংস্করণটি চালাচ্ছি, এবং আমি ক্লিপবোর্ডে টেক্সট copy-mode, অনুলিপি ( M-w) নির্বাচনগুলি ঘুরতে ইম্যাক্স-এর মতো কীবোর্ড বাইন্ডিংগুলি ব্যবহার করতে সক্ষম হতে চাই এবং C-yক্লিপবোর্ডে অনুলিপি বাফার থেকে /) পেস্ট করুন ।

এখনও অবধি আমি পাঠ্যটি পেস্ট করতে সক্ষম হয়েছি C-yএবং copy-modeইমাস-এর মতো কীবোর্ডের বাইন্ডিংগুলির সাথে ঘুরতে পেরেছি , তবে আমি এখনও টিএমউক্স বাফার থেকে পাঠ্য অনুলিপি করতে অক্ষম (যেমন copy-mode:)

ক্লিপবোর্ডে (এবং বিপরীতে) পুরো বাফারটি অনুলিপি করার জন্য আমি এই থ্রেডটি পেয়েছি , তবে এটি আমার পক্ষে কাজ করছে বলে মনে হয় না।

এছাড়াও, tmux-usersমেল তালিকায় আমাকে জানানো হয়েছিল যে tmux এর সাম্প্রতিক সংস্করণগুলি (কেবল গিট রেপোতে) একটি কমান্ড সরবরাহ করে copy-pipe। ম্যান পেজ এই আদেশটি সম্পর্কে নিম্নরূপ বলে:

একটি কমান্ড একটি যুক্তি, অনুলিপি-পাইপ গ্রহণ করে, যা নির্বাচনটি অনুলিপি করে এবং একটি কমান্ডে পাইপ করে। উদাহরণস্বরূপ নীচেরগুলি সিটি / টিএমপি পাশাপাশি পেস্ট বাফারটিতে নির্বাচনটি অনুলিপি করতে 'সি-কিউ' বাঁধবে:

       bind-key -temacs-copy C-q copy-pipe "cat >/tmp/out"

দেখে মনে হচ্ছে copy-pipeএটি অন্য কমান্ডে সিলেকশনটি পাইপ করার জন্য কিছু অংশ ব্যবহার করা হয়েছিল। এই বিবরণে এবং কমান্ডটিতে কিছু টাইপও রয়েছে বলে মনে হচ্ছে (কী temacs-copy?)

যেভাবেই হোক, আমি যা করতে চাই তা হ'ল:

অনুলিপি করা হচ্ছে:

  1. অনুলিপি মোড প্রবেশ করুন
  2. টেক্সট আমি গিয়ে Emacs গৌণ কমান্ড ব্যবহার (অর্থাত অনুলিপি করতে চান সরান C-f, C-b, M-f, M-b, C-a, C-eইত্যাদি কার্সার সরানোর জন্য)। এগুলির কোনওটির জন্য কোনও উপসর্গ নেই
  3. ক্লিপবোর্ডে নির্বাচিত পাঠ্যটি এর সাথে অনুলিপি করুন: M-w( কোনও উপসর্গ নেই )

আটকানো হচ্ছে:

  1. টার্মিনালে পাঠ্য আটকানোর জন্য আমি টাইপ করতে C-y( প্রবেশ না করেই copy-mode) টাইপ করতে সক্ষম হতে চাই ( কোনও উপসর্গও নেই )

ভাগ্য ছাড়া অনুলিপি করার জন্য আমি নিম্নলিখিতটি চেষ্টা করেছি:

bind-key -n M-w run "tmux save-buffer - | xclip -i -selection clipboard" 

তবে, পেস্টিং দুর্দান্ত কাজ করে:

bind-key -n C-y run "xclip -o | tmux load-buffer - ; tmux paste-buffer"

অদ্ভুত বিষয়টি আমি জানি যে xclip -i -selection clipboardউপরের কপি কমান্ডের " " অংশটি ভাল কাজ করে, যেহেতু আমি কমান্ড লাইনের ক্লিপবোর্ডে জিনিসগুলি অনুলিপি করতে পারি , যেমন:

echo "Hello world. How are you?" | xclip -i -selection clipboard

এই সমস্ত কিছুর পরে, আমি কীভাবে একটি অনুলিপি মোড থেকে ক্লিপবোর্ডে একটি নির্বাচন কপি করতে পারি?

উত্তর:


19

Tmux (1.8+) এর নতুন সংস্করণগুলির tmux.confসাথে নিম্নলিখিতটি ব্যবহার করুন copy-pipe:

set -g mouse on
# To copy:
bind-key -n -t emacs-copy M-w copy-pipe "xclip -i -sel p -f | xclip -i -sel c "

# To paste:
bind-key -n C-y run "xclip -o | tmux load-buffer - ; tmux paste-buffer"
  1. prefix+[ কপি মোডে
  2. মাউসের সাহায্যে সামগ্রী নির্বাচন করুন (ধরে রাখুন)
  3. M-w সিস্টেম ক্লিপবোর্ডে সেই অংশটি অনুলিপি করতে
  4. C-yএটি C-vওয়েব ব্রাউজারের মতো অন্যান্য নিয়মিত অ্যাপ্লিকেশনটিতে আটকানোর জন্য এটি টিএমউক্সের ভিতরে পেস্ট করুন।

এই উত্তরটি আরও উন্নয়নের দাবিদার, এটি লিনাক্স-ভিত্তিক সেটআপগুলির জন্য সেরা।
লুই কোটম্যান

run-shellrun
Tmux

@ লুইসকোটম্যান: কেন শুধু লিনাক্স ভিত্তিক?
স্কাইবা

আমি অন্যান্য সিস্টেমে মন্তব্য করতে পারি না, তবে আমি বিশ্বাস করি যে ম্যাক সাধারণত এক্সক্লিপের পরিবর্তে বাসপাস্ট ব্যবহার করে
লুই কোটম্যান

Tmux 2.8-এ আমাকে এগুলিতে পরিবর্তন করতে হয়েছিল bind -Tcopy-mode M-w send-keys -X copy-pipe "xclip -i -sel p -f | xclip -i -sel c "স্টারফাই দ্বারা প্রস্তাবিত এই প্রতিশ্রুতিbind-key -n C-y run-shell "xclip -o | tmux load-buffer - ; tmux paste-buffer" অনুসারে
আজমস

6

দয়া করে মনে রাখবেন যে, টিএমউक्स ২.৪ সহ ( এই প্রতিশ্রুতিবদ্ধ হওয়ার সাথে ), বাধ্যতামূলক বাক্য গঠনটি পরিবর্তিত হয়েছে। পরিবর্তনের সংক্ষিপ্তসার সংক্ষিপ্ত করতে আমি এই গিথুব মন্তব্যটিকে প্যারাফ্রেস করছি :

  1. -tসঙ্গে প্রতিস্থাপন-T
  2. vi-<name>সঙ্গে প্রতিস্থাপন<name>-mode-vi
  3. কমান্ডটির সাথে প্রিফিক্স করুন send-keys -X

আমার ছিল:

bind-key -n -t vi-copy Enter copy-pipe 'xclip -i -sel p -f | xclip -i -sel c'
bind-key -n -t vi-copy MouseDragEnd1Pane copy-pipe 'xclip -i -sel p -f | xclip -i -sel c'

যা আমি পরিবর্তন করতে হবে:

bind-key -n -T copy-mode-vi Enter send-keys -X copy-pipe 'xclip -i -sel p -f | xclip -i -sel c'
bind-key -n -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe 'xclip -i -sel p -f | xclip -i -sel c'

চেঞ্জলগ থেকে :

মূল সারণীগুলিতে বড় ধরনের পরিবর্তন হয়েছে। মোড কী টেবিলগুলি এখন আর মূল কী টেবিল থেকে পৃথক নয়। বাইন্ড-কী এবং আনবাইন্ড-কী-টি পতাকা সহ একত্রে সমস্ত মোড কী সারণী সরিয়ে ফেলা হয়েছে।

Emacs- সম্পাদনা, vi- সম্পাদনা, emacs- চয়ন এবং vi- চয়ন টেবিলগুলি কমান্ড প্রম্পটে স্থির কী বাইন্ডিংগুলি দ্বারা প্রতিস্থাপন করা হয়েছে এবং মোডগুলি চয়ন করুন। মোড-কী এবং স্থিতি-কী বিকল্পগুলি রয়ে গেছে।

ইমাকস-অনুলিপি এবং vi-অনুলিপি সারণীগুলি অনুলিপি-মোড এবং অনুলিপি-মোড-vi সারণী দ্বারা প্রতিস্থাপিত হয়েছে। কমান্ডগুলি -X এবং -N পতাকা ব্যবহার করে প্রেরণ-কীগুলি প্রেরণ করা হয়। সুতরাং নিম্নলিখিত:

bind -temacs-copy C-Up scroll-up
bind -temacs-copy -R5 WheelUpPane scroll-up

হয়ে:

bind -Tcopy-mode C-Up send -X scroll-up
bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up

এই পরিবর্তনগুলি সম্পূর্ণ কমান্ড পার্সার (কমান্ড সিকোয়েন্স সহ) এবং কমান্ড সেট ব্যবহার করার অনুমতি দেয় - উদাহরণস্বরূপ, সম্পাদনা এবং ইতিহাস সহ সাধারণ কমান্ড প্রম্পট এখন অনুসন্ধানের জন্য, জাম্পিং, এবং এর জন্য কাস্টমের পরিবর্তে ব্যবহৃত হয়। ডিফল্ট সিআর বাঁধাই এখন:

bind -Tcopy-mode C-r command-prompt -p'search up' "send -X search-backward-incremental '%%'"

প্রেরণ-এক্স সহ কিছু নতুন কম্যান্ডসও পাওয়া যায় যেমন কপি-পাইপ-এবং-বাতিল।


2

-temacs-copyএকটি ত্রুটি লক্ষ্য নয়। শীর্ষস্থানীয় ড্যাশ মানে হ'ল এটি bind-keysকমান্ডের একটি বিকল্প (বিকল্পের জন্য আর্গুমেন্ট সহ)। এটি সমতুল্য -t emacs-copy, যদি আপনি এটি আরও ভাল পছন্দ করেন।

কপি মোড বাইন্ডিং একটি ভিন্ন সেট ব্যবহার করে এবং কমান্ড 1 "স্বাভাবিক মোড" নয়। copy-pipeকমান্ড বিকল্প "মোড" বাইন্ডিং সারণিতে শুধুমাত্র উপলব্ধ। যখন mode-keysহয় emacs, কপি মোড ব্যবহার করবে emacs-copyটেবিল, তাই আপনি MW, বাঁধাই করার প্রয়োজন copy-pipeটেবিলের মধ্যে।

bind-key -temacs-copy M-w copy-pipe "xclip -i -selection clipboard"

খুব বেশি "প্রিফিক্স" বাইন্ডিং তৈরি করতে সাবধান হন। তারা tmux এর অভ্যন্তরে চলমান একটি প্রোগ্রামে এই আবদ্ধ কীগুলি টাইপ করা কঠিন করে তুলবে (উদাহরণস্বরূপ, যখন আপনি tmux এর অভ্যন্তরে ইম্যাক্সের চলমান একটি টাইটি-মোডে টাইপ করতে চান )। আপনি সর্বদা (উপসর্গ) কিছু কী বাঁধাই করতে পারেন যা কিছু করে তবে এটি আপনাকে আরও পর্যাপ্ত প্রয়োজন হলে এটি টাইপ করা আরও জটিল করে তুলতে পারে।send-keys C-y


1 কেবল চলন এবং সম্পাদনা কমান্ড উপলব্ধ। ব্যতিক্রম ছাড়া copy-pipe, এই আদেশগুলি কোনও যুক্তি গ্রহণ করে না (এটির সাথে ম্যান পেজটি বোঝায় যে "একটি আদেশ একটি যুক্তি স্বীকার করে"; "ইন" সম্ভবত টাইপো বা সম্পাদনা ভুল)।


2

অন্য উত্তরগুলি সাহায্য করতে পারে, আমি কীভাবে একইভাবে করব তা এখানে:

  • শিফট + কার্সার দিয়ে পাঠ্য নির্বাচন করুন।
  • ক্লিপবোর্ডে পাঠ্যটি অনুলিপি করতে Ctrl + Shift + C।

এটি একটি যথাযথ উত্তর তবে সমস্যাগুলি শুরু হয় যখন আপনি দুটি বা ততোধিক প্যানগুলি অনুভূমিকভাবে সাজিয়ে তোলেন।
সিজউভিন 25'19

আমি দেখতে পাচ্ছি, আপনি যদি এর জন্য দরকারী কিছু খুঁজে পান তবে আমাকে জানান।
habষভ অগ্রহরি

prefix+ zনির্বাচিত ফলকে জুম বাড়ায় যাতে টিএমউक्स অনুলিপিটি ধরে রেখে ধরে রেখে অনুভূমিক বিভাজনগুলি কোনও সমস্যা না হয় shift
joelostblom
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.