আমি কীভাবে কোনও টেমাক্স শেলের আউটপুট বাফারের মধ্যে অনুসন্ধান করতে পারি?


180

আমি এটি কাজ করতে পারি না। আমি কীভাবে টিএমএক্স শেলের বাফারটি অনুসন্ধান করতে পারি?


1
tmux( tmux -V) এর কোন সংস্করণ ? আমি বিশ্বাস করি এটি 0.9 সংস্করণে যুক্ত হয়েছিল।
ডেনিস উইলিয়ামসন

@ ডেনিস এটি 1.3-1
এনইএস

1
tmux -Vকেবল পরবর্তী সংস্করণগুলিতে কাজ করে সংস্করণটি সন্ধান করা । উবুন্টু / ডেবিয়ানে আপনি এটি করতে পারেন: dpkg -l | grep tmux
নীলস বম

উত্তর:


275

মোড অনুসন্ধান অনুলিপি

অনুসন্ধান করার জন্য tmuxবর্তমান উইন্ডোটি, প্রেস ইতিহাস বাফার Ctrl- b [প্রবেশ করার copy mode

আপনি যদি ইমাস কী কী বাইন্ডিং ব্যবহার করছেন (ডিফল্ট), টিপুন Ctrl- sতারপরে অনুসন্ধানের জন্য স্ট্রিংটি টাইপ করুন এবং টিপুন Enternআবার একই স্ট্রিংটির জন্য অনুসন্ধান করতে টিপুন । বিপরীত অনুসন্ধানের জন্য Shift- টিপুন nEscapeপ্রস্থান করতে দুবার টিপুন copy mode। বিপরীত দিক অনুসন্ধান করতে আপনি Ctrl- ব্যবহার করতে পারেন r। মনে রাখবেন যে, যেহেতু tmuxকীবোর্ড নিয়ন্ত্রণ হয় copy mode, Ctrl- sনির্বিশেষে কাজ করে stty ixonসেটিং (যা আমি যেমন করে দিন stty -ixonব্যাশ অনুসন্ধানগুলির এগিয়ে সক্ষম করতে)।

আপনি যদি vi কী বাইন্ডিং ব্যবহার করে ( Ctrl- b:set-window-option -g mode-keys vi), টিপুন এবং /তারপরে অনুসন্ধানের জন্য স্ট্রিংটি টাইপ করুন এবং টিপুন Enternআবার একই স্ট্রিংটির জন্য অনুসন্ধান করতে টিপুন । ইমাস মোডের মতো বিপরীত অনুসন্ধানের জন্য Shift- টিপুন nqপ্রস্থান করতে দুবার টিপুন copy mode। আপনি ?বিপরীত দিক অনুসন্ধান করতে ব্যবহার করতে পারেন ।

এটি উইন্ডো

যদি আপনি কোনও উইন্ডোতে প্রদর্শিত কোনও কিছুর উপর ভিত্তি করে স্যুইচ করতে চান (এটিতে উইন্ডোর নাম এবং শিরোনাম রয়েছে তবে ইতিহাস নয়), (একাধিক উইন্ডো খোলা দিয়ে শুরু করে) টিপুন Ctrl- b fতারপরে অনুসন্ধানের জন্য স্ট্রিংটি টাইপ করুন এবং টিপুন Enter। যদি সেই পাঠ্যটি পাওয়া যায় তবে আপনাকে একটি উইন্ডোতে স্যুইচ করা হবে। যদি একাধিক উইন্ডো মেলে, আপনি নির্বাচন করতে একটি তালিকা দেখতে পাবেন।


3
আমি কীভাবে বাধ্যতামূলক স্টাইল সেট করতে পারি? (ইমাস বনাম vi)
ড্যানিয়েল কুই

2
@ ড্যানিয়েলকিউ: tmux ম্যান পৃষ্ঠাটি দেখুন এবং "মোড-কী" এবং "স্থিতি-কীগুলি" অনুসন্ধান করুন। এগুলি সাব-কমান্ড যা আপনাকে বাইন্ডিং স্টাইল সেট করতে দেয়। অন্যথায়, শুরু করার আগে আপনি যে স্টাইলটি চান তা পরিবেশের পরিবর্তনশীল ( EDITORবা VISUAL) সেট করা সহজ হতে পারে tmux
ডেনিস উইলিয়ামসন

6
ধন্যবাদ, আমি এটি set-window-option -g mode-keys viআমার সাথে কাজ করতে পেরেছি .tmux.conf। কিন্তু পরিবেশের পরিবর্তনশীল বিকল্প সম্পর্কে আমি কৌতূহল ছিল এবং এটি কাজ করতে পারিনি। এটি কি শেল এনভায়রনমেন্ট ভেরিয়েবল, নাকি কনফ ফাইলের মধ্যে একটি টিএমউক্স এনভায়রনমেন্ট ভেরিয়েবল সেট করতে হবে?
ড্যানিয়েল কুই

2
@ ড্যানিয়েলকিউ: একটি শেল এনভায়রনমেন্ট ভেরিয়েবল। এটি রফতানি বা tmux এর envrionment এইভাবে স্থাপন করা প্রয়োজন:VISUAL=vi tmux
ডেনিস উইলিয়ামসন

1
এছাড়াও মনে রাখবেন যে এখনও কোনও রেইজেক্স অনুসন্ধান নেই, এখানে এটির একটি উন্মুক্ত ইস্যু সোর্সফোরেজ.এন.পি
লিন

7

অনুলিপি মোড লিখুন এবং একবারে অনুসন্ধান শুরু করুন

bind-key / copy-mode \; send-key ?

আপনাকে ঠিক করতে দেয়:

 Ctrl + B /

এবং অনুসন্ধান শব্দটি লিখতে শুরু করুন।

একটি ফাইল ডাম্প এবং ভিএম ব্যবহার করুন

যখন বিষয়গুলি আরও জড়িত হয়, আমি কেবলমাত্র একটি উপযুক্ত সম্পাদক ব্যবহার করতে চাই: https://unix.stackexchange.com/questions/26548/write-all-tmux-scrolback-to-a-file

bind-key P 'capture-pane' \; capture-pane -S - \; save-buffer /tmp/tmux \; delete-buffer

এখন Pএকটি ফাইলের জন্য বাফার ডাম্প করে, এবং তারপরে আমি ঠিক:

vim /tmp/tmux

Tmux 2.6 এ পরীক্ষিত।


আমি ফাইলনামের জন্য এই প্রম্পটটি কীভাবে করব (যাতে আমাকে হার্ডকোড করতে হবে না /tmp/tmux)?
পিয়ুষ কুশওয়াহা

@ পীযূষকুশওয়াহা দুঃখিত, তবে আমার টিমুक्स ফু খুব ভাল নয়, আমাকে গুগল করতে হবে, আপনি যদি এটি খুঁজে পান তবে আমাকে জানান।
সিরো সান্তিলি 事件 改造 中心 法轮功 六四 事件

1

আপনি স্ক্রিন লগটি দেখতে / সম্পাদনা / অনুসন্ধান / সংরক্ষণ করতে, প্রতি ব্যাশ প্রম্পটে লগটি ভাঁজ করতে ভিএম ব্যবহার করতে পারেন:

tmux capture-pane -pS -1000000 |
  vim +":setl fen fdm=expr fde=getline(v:lnum)=~'^\\\\S\\+\\\\$\\\\s'?'>1':1"  -  

আপনার প্রম্পট অনুযায়ী রেজেক্স সামঞ্জস্য করুন, রেগেক্সে প্রতিটি ব্যাকস্ল্যাশের জন্য চারটি ব্যাকস্ল্যাশ ব্যবহার করুন।

অথবা im / .vimrc এ ভিম ফাংশন রাখুন:

command!           MoshFoldTmuxLog :setl fen fdm=expr
  \   fde=getline(v:lnum)=~'^\\S\\+\\$\\s'?'>1':1 

এবং b / .bashrc এ প্রম্পটে তারিখ যুক্ত করুন, যদি আপনার কাছে অনুসন্ধানের জন্য প্রচুর লগ থাকে। যেমন

PS1='\u@\h:\w:\D{%F-%T}$?:\$ ' # user-host-pwd-date-time-errno 
alias tmux-log='tmux capture-pane -pS -1000000 | vi +MoshFoldTmuxLog -'         

0

এখানে আমি একটি সমাধান পেয়েছি।

আপনি লক্ষ্যের পথ এবং ফাইলের নামটিও সংশোধন করতে পারেন:

# Save screen content to file
bind p command-prompt -p 'Save history to:' -I '~/tmux.history' 'capture-pane -S -32768 ; save-buffer %1 ; delete-buffer'

Tmux কনফিগারেশন ফাইলটি পুনরায় লোড করার পরে prefix pআপনি আমার ক্ষেত্রে টিপতে Ctrl+a p পারেন bind pআপনি নিজের পছন্দসই কী সংমিশ্রণে পরিবর্তন করতে পারেন ।

প্রথম আমার কাজ করছিল না কারণ আমি bind pঅন্য লাইনে ওভাররাইট করছিলাম তাই আমি কেবল এটি মন্তব্য করেছিলাম।

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