কীভাবে একটি নতুন উইন্ডো বিভক্ত করবেন এবং এই নতুন উইন্ডোতে tmux ব্যবহার করে একটি কমান্ড চালাবেন?


28

আমি চেষ্টা করেছি

tmux -c "shell command" split-window

তবে এটি কাজ করে বলে মনে হয় না।

ব্যবহার করে tmux split-window, একটি নতুন উইন্ডো বিভক্ত করতে পারেন।

আপডেট :

ব্যবহার tmux split-window 'exec ping g.cn'করে পিং কমান্ডটি চালানো যেতে পারে, তবে বন্ধ হয়ে গেলে নতুন উইন্ডোটি বন্ধ হয়ে যাবে।


4
man tmux | less -p remain-on-exit...
জেসনওয়ারিয়ান

উত্তর:


38

ব্যবহার করুন:

tmux split-window "shell command"

split-windowকমান্ড অনুসরণ সিনট্যাক্স রয়েছে:

 split-window [-dhvP] [-c start-directory] [-l size | -p percentage] [-t
         target-pane] [shell-command] [-F format]

(বিভাগ থেকে man tmux"উইন্ডোজ এবং প্যানস") অর্ডারটি গুরুত্বপূর্ণ বলে নোট করুন - কমান্ডটি পূর্ববর্তী বিকল্পগুলির মধ্যে যে কোনও একটির পরে উপস্থিত হতে হবে এবং এটি একটি একক যুক্তি হতে হবে, তাই আপনার যদি ফাঁকা স্থান থাকে তবে আপনাকে এটিকে উদ্ধৃত করতে হবে।


এই জাতীয় কমান্ডগুলির জন্য ping -cদ্রুত সমাপ্তির জন্য, আপনি remain-on-exitপ্রথমে বিকল্পটি সেট করতে পারেন :

tmux set-option remain-on-exit on
tmux split-window 'ping -c 3 127.0.0.1'

ফলকটি pingসমাপ্ত হওয়ার পরে খোলা থাকবে , তবে আপনি এটি ম্যানুয়ালি বন্ধ না করা পর্যন্ত "মৃত" হিসাবে চিহ্নিত হবেন।

আপনি যদি সামগ্রিক বিকল্পগুলি পরিবর্তন করতে না চান তবে অন্য একটি পদ্ধতিও রয়েছে। কমান্ডটি চালিত হয়েছে sh -c, এবং উইন্ডোটি শেষদিকে বাঁচিয়ে রাখতে আপনি এটি কাজে লাগাতে পারেন:

tmux split-window 'ping -c 3 127.0.0.1 ; read'

এখানে আপনি শেল readকমান্ডটি ব্যবহার করে প্রধান কমান্ডটি শেষ হওয়ার পরে ব্যবহারকারী-ইনপুট নিউলাইনটির জন্য অপেক্ষা করতে পারেন । এই ক্ষেত্রে, কমান্ড আউটপুট Enterআপনার ফলকে চাপ না দেওয়া অবধি থাকবে এবং তারপরে এটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে।


ধন্যবাদ ম্যাকওয়াল হোমার :-)। আমি এটি খুব এখনই পেয়েছি /। তবে কীভাবে নতুন উইন্ডো বন্ধ থাকবে?
অটুপাল

@ অটুপাল: সম্পাদনা দেখুন - হয় সেট করুন remain-on-exitবা ব্যবহার করুন cmd ; read
মাইকেল হোমার

2

bash --rcfile

এই কৌশলটি একটি নতুন শেল খোলে, কমান্ডগুলি চালায় এবং কমান্ডগুলি শেষ করার পরে আপনাকে সেখানে ছেড়ে দেয়:

tmux-split-cmd() ( tmux split-window -dh -t $TMUX_PANE "bash --rcfile <(echo '. ~/.bashrc;$*')" )
tmux-split-cmd 'cd; pwd; ping google.com'

অথবা যদি কমান্ডের মতো বিশেষ টার্মিনাল অক্ষর নেই ;ঠিক:

tmux-split-cmd ping google.com

এটি ব্যবহার করে:

আর একটি আকর্ষণীয় রূপটি হ'ল:

tmux-split-cmd-uniq() (
  if [ "$(tmux list-panes | wc -l | cut -d' ' -f1)" -ne 1 ]; then
    tmux kill-pane -t 1
  fi
  tms "$@"
)

যা পূর্ববর্তী বিভাজনটি ইতিমধ্যে উপস্থিত থাকলে তা মেরে ফেলে এবং সর্বদা কেবলমাত্র একটি অতিরিক্ত বিভাজন রাখতে সহায়তা করে।

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