উত্তর:
তুমি পার না. tmux
শুধুমাত্র একক কী বাইন্ডিং (একা হয়, ব্যবহার করে) bind-key -n
, অথবা উপসর্গ কী অনুসরণ)।
যাইহোক, আপনি একটি ভান করার জন্য "v" বাঁধাই চেষ্টা করতে পারে command-prompt
:
bind-key v command-prompt "tmux-vim.bash %%"
কোথায় tmux-vim.bash
ভালো কিছু দেখায়
if [ $1 = "G" ]; then
tmux split-window "vim +$"
fi
তারপর, কমান্ড প্রম্পট পেতে v টাইপ করার পরে, আপনি "G" টাইপ করুন এবং Enter টিপুন। "জি" যুক্তি হিসাবে পাস করা হবে tmux-vim.bash
, এবং যে স্ক্রিপ্ট নির্বাহ যত্ন নিতে হবে tmux
কমান্ড আপনি (মূলত) "vg" সঙ্গে যুক্ত করতে চেয়েছিলেন।
@ কেপনার বলেছেন, আপনি এটা করতে পারবেন না সরাসরি । আপনি কি করতে পারেন বাঁধাই করা হয় v
জন্য একটি বাঁধাই তৈরি করতে G
যে আপনি কি চান এবং তারপর নিজেই unbinds।
bind-key v bind-key -n G split-window "vim +$" \\; unbind -n G
এই পদ্ধতির সাথে নোট করার কয়েকটি গুরুত্বপূর্ণ বিষয় রয়েছে:
G
); আপনি কিছু আবদ্ধ করতে চান G
এবং অন্য কিছু আবদ্ধ vG
আপনার unbinding পদক্ষেপ মূল বাঁধাই পুনরুদ্ধার করতে হবে। tmux
যদি আপনার segfault হবে .tmux.conf
একটি অন্তর্ভুক্ত bind-key
বিবৃতি যে খুব দীর্ঘ। যদি এটি একটি সমস্যা হয়ে থাকে, তবে আপনি আপনার প্রসঙ্গ বিচ স্ক্রিপ্টে স্যুইচিংয়ের দ্বারা এটির চারপাশে কাজ করতে পারেন এবং তারপর সেই স্ক্রিপ্টগুলিকে চালানোর জন্য একটি কী বাঁধেন। আরো জড়িত উদাহরণের জন্য দেখুন এই জিস্ট ।
পরলোক command-prompt
অন্য উত্তরগুলিতে প্রস্তাবিত পদ্ধতিতে, আপনার একটি পৃথক উপসর্গ ব্যবহার করে ম্যাপিংয়ের দ্বিতীয় সেট থাকতে পারে:
prefix key
Set the key accepted as a prefix key.
prefix2 key
Set a secondary key accepted as a prefix key.
সুতরাং আপনি নিম্নলিখিত কাজ করতে পারে:
set -g prefix C-v
bind-key G split-window "vim +$"
মানচিত্র যাও c-v g
পরিবর্তে c-b vG
। নেতিবাচক দিকটি যে এটি কোনও ডিফল্ট ম্যাপিং ছায়া ফেলবে, কারণ এটিও অ্যাক্সেসযোগ্য হবে c-b g
।
এটির জন্য একমাত্র সঠিক সমাধান রয়েছে:
# you can use "vim +$" as well, but I don't think that +$ prefix have any sense without the file path argument...
bind -T multiKeyBindings G split-window "vim"
bind v switch-client -T multiKeyBindings
আপনি যদি কাস্টম আর্গুমেন্টগুলি পাস করার সম্ভাবনাটি চান তবে আপনাকে পরিবর্তে এটি ব্যবহার করতে হবে:
bind -T multiKeyBindings G command-prompt 'split-window "vim %%"'
bind v switch-client -T multiKeyBindings
আরো উদাহরণ:
# Toggle maximizing of current pane by typing PREFIX mm
bind -T multiKeyBindings m resize-pane -Z
bind m switch-client -T multiKeyBindings
# or without PREFIX
bind -T multiKeyBindings m resize-pane -Z
bind -n m switch-client -T multiKeyBindings
# rename current window by typing PREFIX mr
bind -T multiKeyBindings r command-prompt 'rename-window %%'
bind -n m switch-client -T multiKeyBindings
প্রতিটি মাল্টি কীবিন্ডিংয়ের জন্য আপনাকে একটি অনন্য কী ট্যাবলেটের নাম ব্যবহার করা উচিত। উদাহরণ:
bind -T multiKeyBinding1 G split-window "vim"
bind v switch-client -T multiKeyBinding1
bind -T multiKeyBinding2 m resize-pane -Z
bind -n m switch-client -T multiKeyBinding2
bind -c
+ +command -c