এক tmux ফলক থেকে অন্যটিতে টেক্সট অনুলিপি করুন (ভিএম ব্যবহার করে)


132

আমার দুটি ফাইল ভিমে খোলা আছে, প্রতিটি একটি টিএমউक्स ফলকে। আমি অনুলিপি করতে চাই একটি ফাইল থেকে অন্য ফাইল থেকে 10 লাইন বলতে।

মাউসের Copy-> ব্যবহার না করে আমি কীভাবে এটি সম্পাদন করতে পারি Paste?


2
আপনি tmux জড়িত থাকতে পারে , তবে সাধারণত সহজ উপায় আছে। উভয়ই কি একই (স্থানীয়?) মেশিনে ভিম দৃষ্টান্ত রয়েছে? সাধারণত, আমি কেবলমাত্র এটির জন্য একটি অস্থায়ী ফাইল ব্যবহার করব (উদাহরণস্বরূপ লাইনগুলি নির্বাচন করুন :w /tmp/lines, তারপরে :r /tmp/linesঅন্য ক্ষেত্রে)। অথবা, যদি আপনার ভিম আপনার সিস্টেম ক্লিপবোর্ডে কীভাবে কথা বলতে জানেন তবে অস্থায়ী ফাইলটি এড়াতে আপনি +বা *রেজিস্টারগুলি ব্যবহার করতে পারেন ।
ক্রিস জনসেন

উত্তর:


192

আপনাকে tmux শর্টকাট ব্যবহার করতে হবে। আপনার tmux কমান্ড শর্টকাট ধরে নেওয়া ডিফল্ট: Ctrl+ b, তারপরে:

  1. Ctrl+ b, [অনুলিপি (?) মোড লিখুন।

  2. হাইলাইট করতে পাঠ্যের শুরু / শেষের দিকে সরান।

  3. Ctrlspace

    পাঠ্য হাইলাইট করা শুরু করুন (আর্চ লিনাক্সে)। আমি যখন ওএসএক্স এবং অন্যান্য লিনাক্সের উত্স থেকে tmux সংকলন করেছি, কেবল Spaceতার নিজের কাজ করে সাধারণত। নির্বাচিত পাঠ্য রং পরিবর্তন করে, তাই আপনি জানতে পারবেন যে কমান্ডটি কাজ করেছে কিনা।

  4. অনুলিপি করতে পাঠ্যের বিপরীত প্রান্তে যান।

  5. Alt+ + wTmux ক্লিপবোর্ড মধ্যে পাঠ্য নির্বাচিত কপি। (ম্যাক ব্যবহারে Esc+ w।)

  6. বিপরীত tmux ফলক, বা সম্পূর্ণ পৃথক tmux উইন্ডোতে কার্সার সরান। আপনি স্রেফ অনুলিপিযুক্ত পাঠ্যটি যেখানে আটকাতে চান সেখানে কার্সারটি রাখুন।

  7. Ctrl+ b, ]Tmux ক্লিপবোর্ড থেকে অনুলিপি করা পাঠ্য আটকে দিন।

tmux কাস্টম কীবোর্ড শর্টকাটগুলি ম্যাপিং কমান্ডে বেশ ভাল।

দেখুন Ctrl+ + b, ?সেট কীবোর্ড শর্টকাট সম্পূর্ণ তালিকা জন্য।


4
ধন্যবাদ। কেবলমাত্র একটি সিডনোড: আল্ট + ডাব্লু ম্যাকের জন্য কাজ করে নি। অল্টকে ডিফল্টরূপে এসএসকে ম্যাপ করা হয়েছিল। সুতরাং এটি Esc + ডাব্লু।
করণ

11
আপনি যদি screenশর্টকাট ব্যবহার করেন : Ctrl + A [(অনুলিপি-মোড প্রবেশ করুন), Space(হাইলাইট করা শুরু করুন), Enter(শেষ হাইলাইটিং), Ctrl + A ](পেস্ট)।
jfs

11
"এন্টার" আমার পক্ষে কাজ করে, যদিও ওয়েল + ডাব্লু ব্যবহার করে না।
এলিজা লিন

3
যেমন awhan.wordpress.com/2010/06/20/copy-paste-in-tmux এ উল্লিখিত হয়েছে , আপনার যদি vi কী বাইন্ডিং থাকে তবে 5 ধাপে Enterকী দিয়ে প্রতিস্থাপন করা উচিত ।
ইং শাওনগ

2
আমার যদি কোনও পাঠ্য সম্পাদককে অনুলিপি এবং কপি করতে হবে? কিছু কারণে পাঠ্যটি নির্বাচনের পরে 'এন্টার' চাপ দেওয়ার পরেও নির্বাচিত পাঠ্যটি উঠেছে বলে মনে হয় না।
উদয়

33

দুর্ভাগ্যক্রমে, আমি এখনও অ্যালেক্স লেচের উত্তরে কোনও মন্তব্য যোগ করতে পারি না তাই ম্যাক ওএস এক্স ব্যবহারকারীদের জন্য আমি এখানে একটি সংযোজন অন্তর্ভুক্ত করতে যাচ্ছি:

  1. Enter নির্বাচিত পাঠ্যটি অনুলিপি করে

1
ধন্যবাদ! আমি উবুন্টু জেনিয়ালে আছি, সমস্ত ডিফল্ট সেটিংস ব্যবহার করে byobu/ ব্যবহার করে tmux, এটি কাজ করে, Alt + w করেনি।
আন্দ্রে জোনকা

1
এটি tmux 2.0 দিয়ে ওএস এক্স
ইওসোমাইটে কাজ

উইন্ডোতেও জোক টার্মিনালটি ব্যবহার করে আমার জন্য কাজ করে।
jdhao

15

আপনি যদি ম্যাকোজে ভিএম এবং টিএমউক্স ব্যবহার করছেন (ম্যাকোস 10.12.2, tmux 2.3 এ পরীক্ষিত):

(ধরুন tmux- এর প্রিফিক্স কী সংমিশ্রণটি রয়েছে prefix। উপসর্গটি ডিফল্টে ctrl+ bহয়)

  • অনুলিপি করুন:
    1. অনুলিপি মোডে প্রবেশ করতে prefix+ টিপুন [
    2. পাঠ্য নির্বাচনের শুরু / শেষে যেতে তীর কীগুলি ব্যবহার করুন।
    3. ctrl+ টিপুন space(যদি আপনি উপসর্গ হিসাবে ctrl+ সেট করে থাকেন তবে পরিবর্তে + + spaceটিপুন )ctrlspacespace
    4. নির্বাচনের অন্য দিকে যেতে তীর কী ব্যবহার করুন।
    5. চাপুন ctrl+ w
  • আটকান:
    1. সন্নিবেশ মোডে prefix+ টিপুন ]

8

আমি ZOC টার্মিনাল ssh ক্লায়েন্ট ব্যবহার করে একটি উইন্ডোজ মেশিনে আমার CentOS সার্ভারের সাথে সংযোগ করছি । আমার জন্য যা কাজ করে তা এখানে:

  • অনুলিপি মোড লিখুন: <prefix>+[
  • অনুলিপি শুরু করুন: <Space>
  • টেক্সট কপি করুন: <Enter>
  • টেক্সট আটকান: <prefix>+]

2

আপনি সাধারণ y এবং p এর পরিবর্তে "* y y" "পি দিয়ে সিস্টেম ক্লিপ বোর্ড ব্যবহার করতে পারেন।


1
সিস্টেম ক্লিপবোর্ডটি ব্যবহার করতে আপনাকে ব্যবহার করতে হবে "+2yy- এক্স 11 ক্লিপবোর্ডে দুটি লাইন অনুলিপি করুন - এক্স 11 ক্লিপবোর্ডে "+ddলাইনটি কাটুন "+p- এক্স 11 ক্লিপবোর্ড পেস্ট করুন
প্যাট্রিক 9:53

এই কমান্ডগুলি ব্যবহার করার আগে আমাকে কি কিছু টাইপ করতে হবে?
টমাস আহলে

@ থমাস অহলে, না .. এর আক্ষরিক অর্থে ডাবল কোট ("), এর পরে প্লাস (+) এর পরে 2Y (y) হবে। আপনি স্বাভাবিক মোডে রয়েছেন তা নিশ্চিত করুন you আপনি যদি স্বাভাবিক মোডে থাকেন তবে আপনার এটি ব্যবহার h,j,k,lকরতে সক্ষম হওয়া উচিত ।। সরাতে এছাড়াও আমি আমার উবুন্টু VM- র,, "+" খাতা, vanishes অজানা কারণে উপর মাঝে মাঝে দেখা যায় যাচাই করতে আছে +রেজিস্টার, আপনি টাইপ করতে পারেন :regএবং চেক স্ট্রিং আছে কিনা "+প্রথম কলামে।
alpha_989

হ্যাঁ, এটি এটি, এটি উত্তর। প্রস্তাবিত অন্যান্যগুলির চেয়ে অনেক সহজ (tmux অনুলিপি / পেস্ট ব্যবহার করে) এবং এটি লাইন নম্বরগুলিকে গোলমাল করে না। এই কোনো সমস্যা কারণ হবে যদি আপনি মান remapped yএবং pকরতে "+yএবং "+p?
রায়ান

1

আপনার যদি vimখোলা থাকে তবে টেক্সট অনুলিপি করতে ভিএম কপি পেস্ট ব্যবহার করা ভাল।

Tmux কপি পেস্ট কাজ করবে, তবে বিভিন্ন অসুবিধা রয়েছে।

প্রথমত, পাঠ্যের একাধিক লাইন অনুলিপি করার সময়, আপনাকে একাধিক লাইন নির্বাচন করতে হবে। টিএমাক্স অনুলিপি পেস্ট সাধারণত বুঝতে পারে না যে vimলাইন নম্বর রয়েছে বা ভিএম গটারে চিহ্ন রয়েছে (যেমন আপেক্ষিক সংখ্যা / পরম সংখ্যা)। ফলস্বরূপ, এটি সেগুলিও অনুলিপি করবে।

দ্বিতীয়ত, আমি দেখতে পেয়েছি যে পাঠ্যটিতে যদি নির্দিষ্ট ভাষার নির্দিষ্ট বিন্যাস থাকে এবং আপনি সরাসরি tmux ব্যবহার করে vim করতে পেস্টটি অনুলিপি করার চেষ্টা করেন তবে এটি বিন্যাসকে বিশৃঙ্খলা করবে। এটি ব্যবহার করে এড়ানো যায় set paste!। তবে এর জন্য আরও অনেক বেশি কাজ দরকার।

"+yঅনুলিপি এবং "+pপেস্ট করতে ব্যবহার করুন

Vimনেটিভ, তেজ বাফার এবং সিস্টেম ক্লিপবোর্ডে মধ্যে পেস্ট কপি করতে একটি পদ্ধতি প্রদান করে ব্যবহার হয় "+yবা "*y। তারপরে "+pবা ব্যবহার করে আটকানো "*p। এটি গিটার বা অন্যান্য এলোমেলো চিহ্নগুলিতে যা ভিমের সাথে প্রাসঙ্গিক নয় সেগুলি সম্পর্কিত অনুলিপি করা এড়াবে


0

Tmux শর্টকাট ক্রমটি যেহেতু কিছুটা লম্বা এবং ভীম ব্যবহারের জন্য বেশ কয়েকটি বিকল্প রয়েছে তা মনে রাখা আমার পক্ষে কঠিন

উপরের উত্তরগুলির মতো বলেছে আপনি ব্যবহার করতে পারেন "+yএবং "*yঅনুলিপি করতে পারেন এবং তারপরে "+pএবং "*pযথাক্রমে পেস্ট করতে। আপনি যদি ডিভিডি দ্বারা ভিএম ক্লিপবোর্ডটি ব্যবহার করতে চান তবে আপনি কেবল y/pতখনই সরাসরি ব্যবহার করতে পারেন ।

set clipboard=unamed "sets the default copy register to be *
set clipboard=unamedplus "sets the default copy register to be +

ক্লিপবোর্ড কমান্ডের উত্স: https://vi.stackexchange.com/questions/84/how-can-i-copy-text-to-the-system-clipboard-from-vim

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