অন্য টিএমএক্স সেশনের মধ্যে টিএমউक्स সেশন খোলার সময় কমান্ড কীভাবে প্রেরণ করা যায়?


136

একটি সাধারণ পরিস্থিতি হতে পারে:

$ tmux
  [0] $ ssh example.com
      $ tmux attach
        [0] $ 

আমি একটি টিএমউक्स সেশনটি খুলি, তারপরে একটি সার্ভারে প্রবেশ করিয়ে একটি বিদ্যমান টিএমউक्स সেশনে সংযুক্ত করি। এই মুহুর্তে আমার অন্য টিমের একটি সেশন রয়েছে। আমি কীভাবে অভ্যন্তরীণ tmux সেশনে আদেশ পাঠাব?

দ্রষ্টব্য: উভয় tmux সেশনের একই কী বাইন্ডিং রয়েছে।


4
প্রোগ্রামিং প্রশ্ন নয়। দয়া করে superuser.com চেষ্টা করুন । শুভকামনা।
শেল্টার

1
আমি প্রশ্নটি স্থানান্তরিত হওয়ার জন্য জিজ্ঞাসা করতে পেরে খুশি, তবে প্রসঙ্গে আমি টিএমউক্সের অভ্যন্তরে ভিএম ব্যবহার করি কোডে এবং অবশ্যই প্রায়শই অন্যান্য সার্ভারগুলিতে এসএসএস করতে হয় যেখানে এই সমস্যাটি দেখা দেয়।
ক্রিস

উত্তর:


207

send-prefixকমান্ড আপনার উপসর্গ কীস্ট্রোক (প্রক্রিয়া চলমান) সক্রিয় ফলকে পাঠাতে ব্যবহার করা যেতে পারে। ডিফল্টরূপে, উপসর্গটি সিবি এবং সিবিতে আবদ্ধ হয় send-prefix(যাতে এটি দুটি বার আঘাত করা সক্রিয় ফলকে একটি একক সিবি প্রেরণ করে )। অভ্যন্তরীণ tmux উদাহরণের বাইন্ডিংগুলি অ্যাক্সেস করার জন্য আমাদের এটি প্রয়োজন ।

প্রথম সিবিটিকে তার উপসর্গ কী হিসাবে "বহিরাগত" টিএমউक्स দৃষ্টান্ত দ্বারা ক্যাপচার করা হয়েছে । দ্বিতীয়টি "বাহ্যিক" টিএমউक्स দৃষ্টান্তের মাধ্যমে ধরা পড়ে এবং এটির সিবি বাইন্ডিং ( send-prefix) ট্রিগার করে । এটি বাইরের উদাহরণের সক্রিয় ফলকে একটি সিবি প্রেরণ করে । এই ফলকের মধ্যে চলমান প্রক্রিয়াটি (শেষ পর্যন্ত, কোনও ssh উদাহরণের মাধ্যমে ) "অভ্যন্তরীণ" tmux উদাহরণ। এটি সিবিটিকে এর উপসর্গ কী হিসাবে ক্যাপচার করে । এখন আপনার পরবর্তী কীস্ট্রোক বাইরের টিএমউक्स দৃষ্টান্তের মধ্য দিয়ে যাবে এবং একটি বাইন্ডিং ট্রিগার করতে অভ্যন্তরীণ দ্বারা ক্যাপচার করবে।

Tmux এর দ্বিতীয় স্তরের দৃষ্টান্তে সি বাইন্ডিং ( new-window) কে ট্রিগার করতে আপনি সিবি সিবি সি লিখবেন । Tmux এর তৃতীয় স্তরের উদাহরণের জন্য আপনি সিবি সিবি সিবি সিবি সি লিখবেন ।

প্রতিটি স্তরের জন্য এই দ্বিগুণ করা বিরক্তিকর হতে পারে যদি আপনি সাধারণত টিএমউক্সের একাধিক স্তর নিয়ে কাজ করে থাকেন । আপনি যদি অন্য কিছু কী বাঁচাতে পারেন, আপনি জিনিস (সম্ভবত) টাইপ করা সহজ করার জন্য একটি প্রাক-প্রিক্সড বাইন্ডিং তৈরি করতে পারেন:

bind-key -n C-\ send-prefix
bind-key -n C-^ send-prefix \; send-prefix

দ্বিতীয় স্তরের tmux এ নতুন উইন্ডো তৈরি করুন : C- \ c
তৃতীয় স্তরের tmux এ নতুন উইন্ডো তৈরি করুন : সি- ^ সি (বা সি- \ সি- \ সি )


আপনি যদি নিম্ন-স্তরের tmux উদাহরণগুলিতে (সহজেই) প্রেরণ করতে চান এমন সীমাবদ্ধ সংখ্যক tmux কমান্ড থাকে তবে আপনি তার পরিবর্তে কিছু নির্দিষ্ট বাইন্ডিং তৈরি করতে ব্যবহার করতে পারেন (সম্ভবত আপনার শীর্ষ-স্তরের tmux উদাহরণে):send-keys

bind-key C-c  send-keys C-b c
bind-key C    send-keys C-b C-b c

দ্বিতীয় স্তরের নতুন উইন্ডো তৈরি করুন tmux : Cb কার্বন কপি
তৃতীয় পর্যায়ের নতুন উইন্ডো তৈরি করুন tmux : Cb সি


উপরন্তু আমি মন্তব্য করতে ছিল আমার বর্তমান last-windowবাঁধাই যেমন যখন করছেন বলা হত C-a C-a, যেমন: #bind-key C-a last-window। আমার উপসর্গটি aডিফল্ট নয় নোট করুন b
ক্রিস

1
bind-key -n C-\ send-prefixকাজ করে না. আমার tmux \ কে স্বীকৃতি দিচ্ছে না \ আমি যখন একটি চিঠি ব্যবহার করি, এটি কার্যকর হয়।
darksky

@Darksky: এর কি সংস্করণ tmux আপনি ব্যবহার করছেন? এটি আমার জন্য 1.7, 1.6 এবং 1.5 নিয়ে কাজ করে। আপনি যদি শেল কমান্ড (যেমন tmux bind-key -n 'C-\' send-prefix) থেকে বাঁধাই করে থাকেন তবে আপনাকে অবশ্যই অতিরিক্ত স্তরের উদ্ধৃতি যুক্ত করতে হবে ; যদি আপনার এটি ~/.tmux.conf(বা একটি উপসর্গ :কমান্ড লাইন) থেকে কাজ করতে সমস্যা হয় , তবে আপনি অনুরূপ উদ্ধৃতি (অর্থাত bind-key -n 'C-\' send-prefix) চেষ্টা করতে পারেন ।
ক্রিস জনসন

51

অভ্যন্তরটি অ্যাক্সেস করতে নিয়ন্ত্রণটি ধরে রাখুন এবং বি'কে দুটিবার চাপুন।


7

সম্পাদনা করুন:

আমি না ব্যবহার সুপারিশ C-qএকটি বাঁধাই করা-কী হিসেবে যেমন জন্য একটি ডিফল্ট নিয়ন্ত্রণ কী কমান্ড

স্ক্রীনটি হিমশীতল করে দেয় এবং স্ক্রিন প্রদর্শন চালিয়ে যেতে দেয়

এখানে একটি পরিস্থিতি ঘটে এবং @ প্যাসাচলিস একটি সমাধান সরবরাহ করে:

যদি এটি দুবার দুর্ভাগ্যজনক হয় (উপসর্গ হিসাবে Cq সহ একটি দূরবর্তী tmux সেশন): টাইপ করুন , এবং Cltr-qতারপর :tmux লিখুন:send-keys C-q

এর নীচে উত্তর:


এটিকে সহজ করার জন্য আপনার মধ্যে নীচের লাইনটি যুক্ত করুন ~/.tmux.conf

bind-key -n C-q send-prefix

তারপরে আপনি সরাসরিC-q আপনার দূরবর্তী tmux এর জন্য বাইন্ড-কী হিসাবে ব্যবহার করতে পারেন ।


যদি কেউ বাইরের টিএমাক্সের ডিফল্ট বাইন্ডার কীটি পরিবর্তন করে থাকে তবে উপরের স্নিপেটটি কাজ করার জন্য অভ্যন্তর tmux এ একই ডিফল্ট বাইন্ডার কীটি ব্যবহার করতে হবে!
পাসচালিস ২

আমি আমার স্থানীয় tmux এর উপসর্গটি পরিবর্তন করছি (আমার ক্ষেত্রে Ctrl +]) তাই সার্ভারে থাকা সমস্ত "অভ্যন্তরীণ" টিমুকস-এর উপসর্গের জন্য ডিফল্ট
বন্ডিং রয়েছে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.