Tmux কনফিগারেশনের পুনরায় লোড আন-বাইন্ডিং কীগুলি নয় (বাইন্ড-কীটি সংযোজিত)


33

আমি বিভিন্ন tmux কী-বাইন্ডিং সেটিংস নিয়ে পরীক্ষা-নিরীক্ষা করেছি এবং আমি নিম্নলিখিতটি লক্ষ্য করেছি:

আমি যদি আমার tmux কনফিগারেশনটি পুনরায় লোড করি (টিএমউক্সের মধ্যে থেকে) আমি একবার যে কী-বাইন্ডিংগুলি লোড করেছিলাম সেগুলি লোড থাকবে। এটিকে পরিষ্কার করার একমাত্র উপায় হ'ল সমস্ত tmux সেশন ছেড়ে দিয়ে পুনরায় আরম্ভ করা। সুতরাং দেখে মনে হচ্ছে tmux সমস্ত লোড হওয়া কী-বাইন্ডিংগুলি মনে রাখে এবং কেবল তা নতুনভাবে শুরু করতে বা স্পষ্টভাবে আবদ্ধ করে এগুলি সরিয়ে ফেলবে।

এটি পুনরায় তৈরি করতে:

  • একটি টার্মিনাল খুলুন (এ)
  • tmux শুরু করুন
  • কী-বাইন্ডিংটি একটি ঘড়ি দেখায় কিনা তা পরীক্ষা করে দেখুন (টিপুন PREFIX C-t)
  • PREFIX ?তালিকার কী-বাইন্ডিং দেখতে টিপুন
  • সম্পাদন করা ~/.tmux.conf
  • একটি কী-বাইন্ডিং যুক্ত করুন ( bind C-t display "Keybinding C-t")
  • পুনরায় লোড করুন tmux কনফিগারেশন ( PREFIX : source-file ~/.tmux.conf)
  • কী-বাইন্ডিং কাজ করে কিনা তা পরীক্ষা করুন (টিপুন PREFIX C-t)
  • PREFIX ?তালিকায় নতুন কী-বাইন্ডিং দেখতে টিপুন
  • ~/.tmux.confআবার সম্পাদনা করুন
  • কী-বাইন্ডিং সরান (তাই অপসারণ bind C-t display "Keybinding C-t")
  • পুনরায় লোড করুন tmux কনফিগারেশন ( PREFIX : source-file ~/.tmux.conf)
  • কী-বাইন্ডিংটি (টিপুন PREFIX C-t) কাজ করে কিনা তা পরীক্ষা করে দেখুন , এটি এখনও "কী-বাইন্ডিং সিটি" প্রদর্শন করে
  • PREFIX ?নতুন কী-বাইন্ডিং এখনও তালিকায় রয়েছে তা দেখতে টিপুন
  • প্রস্থান tmux
  • tmux লিখুন
  • মূল কী-বাইন্ডিং আবার কাজ করে কিনা তা পরীক্ষা করুন (টিপুন PREFIX C-t), এটি এখন আবার একটি ঘড়ি প্রদর্শন করা উচিত
  • PREFIX ?নতুন কী-বাইন্ডিংটি তালিকা থেকে সরানো হয়েছে তা দেখতে টিপুন

আমার প্রশ্ন: tmux কে সমস্ত লোড করা কনফিগারেশন "ভুলে" যেতে নির্দেশ দেওয়ার কোনও উপায় আছে এবং তার পরে লোড .tmux.conf?

উত্তর:


19

tmux(1)ম্যান পেজ অনুসারে , unbind-key -aআপনি যা খুঁজছেন তা হচ্ছে।

নোট করুন যে tmuxএকটি সার্ভার চালায় যা কেবলমাত্র সমস্ত সেশন বন্ধ হয়ে যাওয়ার পরে প্রস্থান করবে এবং কী-বাইন্ডিংগুলি প্রতি সার্ভারে রয়েছে। সুতরাং আপনি একবার একটি বাঁধাই তৈরি করার পরে, এটি সমস্ত ক্লায়েন্ট বিচ্ছিন্ন উপর স্থির থাকবে।

এটি বলেছিল, unbind-key -aআপনার কনফিগারেশন ফাইলের একেবারে শীর্ষে রাখুন এবং কনফিগারেশন রিলোডে এটি যা করা উচিত তা করা উচিত - সমস্ত কিছু আনবাইন্ড করুন এবং স্ক্র্যাচ থেকে বাঁধাই শুরু করুন। অথবা - যদি আপনার পরিবর্তনগুলি আরও ছোট হয় - কেবল আপনি যা পরিবর্তন করতে চান তা আনবাইন্ড করুন।


হ্যাঁ এবং আমি ইতিমধ্যে আমার প্রশ্নে তা বলেছি। তবে ম্যানুয়ালি সমস্ত বাঁধা কীগুলি "রিসেট" করার পরিবর্তে আমি চাই চাই tmux একটি "ক্লিন স্লেট" দিয়ে পুনরায় আরম্ভ করুন এবং তারপরে কনফিগার ফাইলটি পুনরায় লোড করুন।
নীলস বোম

@ নিলস বম আপডেট হওয়া উত্তরগুলি পরীক্ষা করে দেখুন
পিটার্ফ

আপনি সঠিক, unbind-key -aসমস্ত কীবাইন্ডিংগুলি সরিয়ে দেয়। আমি আপনার উত্তরটিকে সঠিক হিসাবে চিহ্নিত করব, তবে অন্যান্য দর্শকদের জন্য আমি কোনও সমস্যা সমাধানের জন্য আবেদন করেছি "হ্যাক" যুক্ত করব unbind-key -a
নীলস বোম

আমার সমাধানটির জন্য আমার উত্তর দেখুন।
নীলস বম

16

সঠিক সমাধান (পিটার দ্বারা

সুতরাং @ পিটারফ সঠিক উত্তরটি দিয়েছিলেন unbind-key -aযা নিম্নলিখিতটি দেয়: (ম্যান টিএমউक्स )

যদি -a উপস্থিত থাকে, সমস্ত কী বাইন্ডিংগুলি সরানো হবে।

একটি কার্যক্ষম সমাধান

সমস্যা (আমার জন্য) হ'ল "সব" আসলে সমস্ত কিছু বোঝায়। কী-বাইন্ডিং সহ টিএমউক্স আসে । আপনি যদি unbind-key -aকমান্ডটি কার্যকর করেন tmux তাত্ক্ষণিকভাবে কোনও কী-বাইন্ডিং না থাকে তাই আপনি কমান্ড মোডে প্রবেশ করতে পারেন না বা মূলত কিছু করতে পারবেন না।

এর জন্য আমার (বরং কুরুচিপূর্ণ) ফিক্সটি নিম্নলিখিত:

  • এমন একটি তৈরি করুন .tmux.reset.confযা সমস্ত কীবাইন্ডিংগুলি সরিয়ে দেয় এবং তারপরে tmux এর সমস্ত ডিফল্টরূপে পুনরায় ফিরিয়ে দেয়
  • উত্স যা আপনার শীর্ষে পুনরায় সেট করুন .tmux.conf

আমার .tmux.conf:

# always load the reset file first
source-file ~/.tmux.reset.conf

আমার .tmux.reset.conf:

# First remove *all* keybindings
unbind-key -a
# Now reinsert all the regular tmux keys
bind-key C-b send-prefix
bind-key C-o rotate-window
bind-key C-z suspend-client
bind-key Space next-layout
bind-key ! break-pane
bind-key " split-window
bind-key # list-buffers
bind-key $ command-prompt -I #S "rename-session '%%'"
bind-key % split-window -h
bind-key & confirm-before -p "kill-window #W? (y/n)" kill-window
bind-key ' command-prompt -p index "select-window -t ':%%'"
bind-key ( switch-client -p
bind-key ) switch-client -n
bind-key , command-prompt -I #W "rename-window '%%'"
bind-key - delete-buffer
bind-key . command-prompt "move-window -t '%%'"
bind-key 0 select-window -t :0
bind-key 1 select-window -t :1
bind-key 2 select-window -t :2
bind-key 3 select-window -t :3
bind-key 4 select-window -t :4
bind-key 5 select-window -t :5
bind-key 6 select-window -t :6
bind-key 7 select-window -t :7
bind-key 8 select-window -t :8
bind-key 9 select-window -t :9
bind-key : command-prompt
bind-key ; last-pane
bind-key = choose-buffer
bind-key ? list-keys
bind-key D choose-client
bind-key L switch-client -l
bind-key [ copy-mode
bind-key ] paste-buffer
bind-key c new-window
bind-key d detach-client
bind-key f command-prompt "find-window '%%'"
bind-key i display-message
bind-key l last-window
bind-key n next-window
bind-key o select-pane -t :.+
bind-key p previous-window
bind-key q display-panes
bind-key r refresh-client
bind-key s choose-session
bind-key t clock-mode
bind-key w choose-window
bind-key x confirm-before -p "kill-pane #P? (y/n)" kill-pane
bind-key { swap-pane -U
bind-key } swap-pane -D
bind-key ~ show-messages
bind-key PPage copy-mode -u
bind-key -r Up select-pane -U
bind-key -r Down select-pane -D
bind-key -r Left select-pane -L
bind-key -r Right select-pane -R
bind-key -r M-1 select-layout even-horizontal
bind-key -r M-2 select-layout even-vertical
bind-key -r M-3 select-layout main-horizontal
bind-key -r M-4 select-layout main-vertical
bind-key -r M-5 select-layout tiled
bind-key -r M-n next-window -a
bind-key -r M-o rotate-window -D
bind-key -r M-p previous-window -a
bind-key -r M-Up resize-pane -U 5
bind-key -r M-Down resize-pane -D 5
bind-key -r M-Left resize-pane -L 5
bind-key -r M-Right resize-pane -R 5
bind-key -r C-Up resize-pane -U
bind-key -r C-Down resize-pane -D
bind-key -r C-Left resize-pane -L
bind-key -r C-Right resize-pane -R

দেখে মনে হচ্ছে এটি tmux কী-টেবিলগুলির সাথে কাজ করতে পারে (যতদূর আমি বলতে পারি) তবে আপনি নতুন কী-টেবিল যুক্ত করতে পারবেন না।


1
সম্ভবত আপনি "পরিষ্কার" সেশনে .tmux.reset.confচালিয়ে আপনার সমপরিমাণটি দ্রুত তৈরি করতে পারেন tmux list-keys
jw013

2
tmux -f /dev/null -L temp start-server \; list-keysকার্যকরভাবে ডিফল্ট উত্পন্ন করবে (যদিও আপনাকে এটির বাইন্ডিংয়ে অর্ধিকনের আগে একটি ব্যাকস্ল্যাশ যুক্ত করতে হবে)।
ক্রিস জনসেন

@ ক্রিস জোনসেন আপনি কি আলাদা উত্তর দিয়ে স্টার্ট সার্ভারটি বিস্তারিতভাবে বর্ণনা করতে পারবেন?
নীলস বোম

7

কোনও ডিফল্ট ডিভাইসটিতে কোনও কী-এর বাধ্যতামূলক পুনরায় সেট করার সরাসরি কোনও উপায় নেই; ডিফল্ট বাইন্ডিংয়ের সূচনাটি (ইন key_bindings_init()) একবার সম্পন্ন করা হয় যখন tmux সার্ভারটি প্রথম শুরু হয় (ইন server_start()), এবং কোনও কী পুনরায় সেট করার কোনও ব্যবস্থা নেই।

আপনার পছন্দসই দৃশ্যকল্প যেখানে আপনি আপনার কনফিগারেশন ফাইল গুন একটি ডিফল্ট বাঁধাই যা পূর্বে একটি কাস্টম বাঁধাই যে যেহেতু আপনার কনফিগারেশন ফাইল থেকে মুছে ফেলা হয়েছে দ্বারা ওভাররাইড করা হয়েছিল এর পুনঃপ্রতিষ্ঠা আইন চান তাদের জন্য, পদ্ধতি উদ্ভাবন যুক্তিযুক্ত (যদিও দুর্ভাগ্যক্রমে বাগাড়ম্বরপূর্ণ): unbind-key -a, তারপরে সমস্ত "ডিফল্ট" বাইন্ডিং পুনরায় স্থাপন করুন, তারপরে আপনার কাস্টম বাইন্ডিংগুলি প্রতিষ্ঠা করুন (যার মধ্যে কিছুগুলি "ডিফল্ট" বাইন্ডিংকে ওভাররাইড করতে পারে)।

list-keysকমান্ড * দিয়ে সার্ভারের বর্তমান বাইন্ডিংগুলি বের করা যেতে পারে ; এটি আপনার প্রস্তাবিত .tmux.reset.confফাইল উত্পন্ন / বজায় রাখতে সহায়তা করতে পারে তবে আপনার ডিফল্ট বাইন্ডিংগুলি বের করার জন্য একটি উপায় প্রয়োজন , বর্তমানের বাইন্ডিংগুলি নয়।

* কিছু পরিস্থিতি রয়েছে যেখানে আউটপুটটি list-keysবর্তমানে সরাসরি ব্যবহারযোগ্য নয়: সেমিকোলনের জন্য বাঁধাইয়ের টিমিক্স কমান্ড বিভাজক হিসাবে ব্যাখ্যা হওয়া থেকে রোধ করার জন্য তার সেমিকোলনটি একটি ব্যাকস্ল্যাশ দিয়ে পালানো দরকার , এবং যে কোনও বাইন্ডিংয়ের মধ্যে যুক্তি রয়েছে যা একক অভ্যন্তরে ডাবল কোট ব্যবহার করে কোটস (কোনও ডিফল্ট বাইন্ডিং এর মতো নয়) ডাবল কোউটের ভিতরে ডাবল কোট হিসাবে প্রকাশিত হবে।

ডিফল্ট বাইন্ডিংগুলি পেতে আপনার একটি ন্যূনতম কনফিগারেশন সহ অস্থায়ী সার্ভারের প্রয়োজন (যেমন কোনও কাস্টম বাইন্ডিং নেই) যাতে আপনি এর list-keysআউটপুট ক্যাপচার করতে পারেন । আপনি চালাতে পারেন এমন tmux সার্ভারের সংখ্যার কোনও সীমা নেই , তবে প্রত্যেককে অবশ্যই আলাদা আলাদা সকেটের পথের নাম ব্যবহার করতে হবে; -Lএবং -S tmux অপশন একটি সকেট নাম (মধ্যে উল্লেখ করার জন্য ব্যবহার করা যেতে পারে $TMPDIR/tmux-$UID(অথবা শুরু বা পূর্ণ সকেট পথনাম সুতরাং, কথা বলতে) একটি সকেট-এ একটি নতুন সার্ভার নামে। temp, আপনি এই ব্যবহার করবেন:

tmux -L temp …

এটি আপনার ব্যবহার না করে তা নিশ্চিত করার জন্য .tmux.conf, আপনি -fএটি পড়তে বলার জন্য ব্যবহার করুন /dev/null(একটি বিশেষ ফাইল যা সর্বদা খালি থাকে):

tmux -f /dev/null -L temp …

দ্রষ্টব্য : এটি এর প্রসেসিং বাধা দেয় না /etc/tmux.conf, যদি এই জাতীয় কোনও ফাইল উপস্থিত থাকে; এই "সিস্টেম কনফিগারেশন ফাইল" এর পথটি হার্ড-কোডড এবং এটিকে বাইপাস করার কোনও বিকল্প নেই (কোডটি প্যাচিংয়ের সংক্ষিপ্ত)।

সাধারণত, আপনার new-sessionসার্ভারটি শুরু করার জন্য একটি কমান্ডের প্রয়োজন , তবে আমরা কোনও সেশন চাই না, কেবল অনুসন্ধানের জন্য একটি প্রাথমিক সার্ভার। start-serverকমান্ডটি কেবল এটি করে: কোনও সেশন তৈরি না করেই একটি সার্ভার শুরু করে।

tmux -f /dev/null -L temp start-server …

এখন, আমাদের কেবল আমাদের "ক্যোয়ারী" কমান্ডটি যুক্ত করতে হবে ( list-keysএই ক্ষেত্রে):

tmux -f /dev/null -L temp start-server \; list-keys

দ্রষ্টব্য : সেমেলোনটি শেল কমান্ড বিভাজক হিসাবে শেলকে চিকিত্সা করা থেকে বিরত রাখতে সেমিকোলনটিকে এড়ানো বা উদ্ধৃত করা দরকার কারণ আমরা এটি চাই একটি টিএমউক্স কমান্ড বিভাজক হিসাবে।

যেহেতু কোনও সেশন রক্ষণাবেক্ষণের জন্য নেই, তাই list-keysকমান্ডটি চালানো শেষ হওয়ার পরে সার্ভারটি স্বয়ংক্রিয়ভাবে প্রস্থান করবে ।

সুতরাং, আপনি .tmux.reset.confনিজের .tmux.confফাইলটি সাময়িকভাবে অপসারণের বিষয়ে চিন্তা না করে (আপনাকে কেবলমাত্র ডিফল্ট বাইন্ডিং দেখতে দেবেন) এবং বিদ্যমান সার্ভারগুলি বন্ধ না করেই আপনার বেশিরভাগ অংশ তৈরি করতে আপনি এই জাতীয় কমান্ড ব্যবহার করতে পারেন ।


যদি run-shellকমান্ডটি সিঙ্ক্রোনাস হয় আপনি source-fileস্ট্যাটিক ফাইল (আপনার .tmux.reset.conf) এর পরিবর্তে আপনার কনফিগারেশন ফাইলটিতে (এমন একটি অস্থায়ী ফাইলকে ক্যাপচার করতে যাবেন ) যার মাধ্যমে আপনি এই জাতীয় কল এম্বেড করতে পারেন । এটি আপনাকে সর্বদা tmux- র বর্তমান সংস্করণ থেকে ডিফল্ট বাইন্ডিংগুলি ব্যবহার করতে দেয় (ডিফল্ট বাইন্ডিংগুলি মাঝে মাঝে পরিবর্তিত হয়)। হায়, run-shellকমান্ডটির সমাপ্তি পরবর্তী কমান্ডগুলির সাথে সামঞ্জস্য রেখে অবিচ্ছিন্ন (কমান্ডের পরে আসা কমান্ডগুলি run-shellসাধারণত প্রক্রিয়াটি শেষ করার আগেই চালিত হবে run-shell)।


6

এখানে বাশ স্ক্রিপ্টে থাকা সমস্ত উত্তরগুলির রোলআপ যা স্বয়ংক্রিয়ভাবে .tmux.reset.confডিফল্ট কী বাইন্ডিংগুলি থেকে উত্পন্ন হবে :

#!/bin/bash
tmux -f /dev/null -L temp start-server \; list-keys | \
  sed -r \
  -e "s/bind-key(\s+)([\"#~\$])(\s+)/bind-key\1\'\2\'\3/g" \
  -e "s/bind-key(\s+)([\'])(\s+)/bind-key\1\"\2\"\3/g" \
  -e "s/bind-key(\s+)([;])(\s+)/bind-key\1\\\\\2\3/g" \
  -e "s/command-prompt -I #([SW])/command-prompt -I \"#\1\"/g" \
  > ~/.tmux.reset.conf

এম্বেড থাকা sedকমান্ড লাইনটি আউটপুটটির বিভিন্ন অংশ থেকে পালিয়ে যাওয়ার যত্ন নেয় list-keys। আপনার সিস্টেমের সুনির্দিষ্টতার জন্য এটি কিছু টুইট করার প্রয়োজন হতে পারে।

আপনার .tmux.confফাইলে কেবল সমস্ত কীগুলি আনবাইন্ড করুন এবং আপনার নিজস্ব কী বাঁধাই সংজ্ঞা দেওয়ার আগে এই ফাইলটি উত্স করুন:

unbind-key -a
source-file ~/.tmux.reset.conf

4

দয়া করে এখানে অন্যান্য উত্তরগুলিও উল্লেখ করুন, কারণ তারা পরিস্থিতি ব্যাখ্যা করার জন্য একটি ভাল কাজ করে। আমি এখানে আমার tmux 1.8 সামঞ্জস্যপূর্ণ tmux.reset.conf পেয়েছি, যা tmux -f /dev/null -L temp start-server \; list-keysআউটপুট অনুলিপি করার পরে আমাকে বেশ কয়েকটি পরিবর্তন করতে হয়েছিল । বিশেষত, বেশ কয়েকটি বিষয় উদ্ধৃত করতে হয়েছিল।

# First remove *all* keybindings
unbind-key -a
# Now reinsert all the regular tmux keys
bind-key C-b send-prefix
bind-key C-o rotate-window
bind-key C-z suspend-client
bind-key Space next-layout
bind-key ! break-pane
bind-key '"' split-window
bind-key '#' list-buffers
bind-key '$' command-prompt -I "#S" "rename-session '%%'"
bind-key % split-window -h
bind-key & confirm-before -p "kill-window #W? (y/n)" kill-window
bind-key "'" command-prompt -p index "select-window -t ':%%'"
bind-key ( switch-client -p
bind-key ) switch-client -n
bind-key , command-prompt -I "#W" "rename-window '%%'"
bind-key - delete-buffer
bind-key . command-prompt "move-window -t '%%'"
bind-key 0 select-window -t :0
bind-key 1 select-window -t :1
bind-key 2 select-window -t :2
bind-key 3 select-window -t :3
bind-key 4 select-window -t :4
bind-key 5 select-window -t :5
bind-key 6 select-window -t :6
bind-key 7 select-window -t :7
bind-key 8 select-window -t :8
bind-key 9 select-window -t :9
bind-key : command-prompt
bind-key \; last-pane
bind-key = choose-buffer
bind-key ? list-keys
bind-key D choose-client
bind-key L switch-client -l
bind-key [ copy-mode
bind-key ] paste-buffer
bind-key c new-window
bind-key d detach-client
bind-key f command-prompt "find-window '%%'"
bind-key i display-message
bind-key l last-window
bind-key n next-window
bind-key o select-pane -t :.+
bind-key p previous-window
bind-key q display-panes
bind-key r refresh-client
bind-key s choose-tree
bind-key t clock-mode
bind-key w choose-window
bind-key x confirm-before -p "kill-pane #P? (y/n)" kill-pane
bind-key z resize-pane -Z
bind-key { swap-pane -U
bind-key } swap-pane -D
bind-key '~' show-messages
bind-key PPage copy-mode -u
bind-key -r Up select-pane -U
bind-key -r Down select-pane -D
bind-key -r Left select-pane -L
bind-key -r Right select-pane -R
bind-key M-1 select-layout even-horizontal
bind-key M-2 select-layout even-vertical
bind-key M-3 select-layout main-horizontal
bind-key M-4 select-layout main-vertical
bind-key M-5 select-layout tiled
bind-key M-n next-window -a
bind-key M-o rotate-window -D
bind-key M-p previous-window -a
bind-key -r M-Up resize-pane -U 5
bind-key -r M-Down resize-pane -D 5
bind-key -r M-Left resize-pane -L 5
bind-key -r M-Right resize-pane -R 5
bind-key -r C-Up resize-pane -U
bind-key -r C-Down resize-pane -D
bind-key -r C-Left resize-pane -L
bind-key -r C-Right resize-pane -R

4

আমি প্রবাহকে জিজ্ঞাসা করেছি তারা এটি ঠিক করতে রাজি নয় বলে মনে হচ্ছে (যদি না কেউ পিআর জমা দেয়)।

এখানে আমার ম্যানুয়ালি পালানো হয়েছে tmux list-keys, যার সাথে একটি নতুন সার্ভারের উদাহরণ দিয়ে পেয়েছেন

tmux -f /dev/null -L temp start-server \; list-keys

(পূর্ববর্তী উত্তরের জন্য ধন্যবাদ)

## See https://github.com/tmux/tmux/issues/729: How to reset key bindings to default? #729

bind-key    -T prefix C-b              send-prefix
bind-key    -T prefix C-o              rotate-window
bind-key    -T prefix C-z              suspend-client
bind-key    -T prefix Space            next-layout
bind-key    -T prefix !                break-pane
bind-key    -T prefix '"'                split-window
bind-key    -T prefix '#'                list-buffers
bind-key    -T prefix '$'                command-prompt -I '#'S "rename-session '%%'"
bind-key    -T prefix %                split-window -h
bind-key    -T prefix &                confirm-before -p "kill-window #W? (y/n)" kill-window
bind-key    -T prefix "'"                command-prompt -p index "select-window -t ':%%'"
bind-key    -T prefix (                switch-client -p
bind-key    -T prefix )                switch-client -n
bind-key    -T prefix ,                command-prompt -I '#W' "rename-window '%%'"
bind-key    -T prefix -                delete-buffer
bind-key    -T prefix .                command-prompt "move-window -t '%%'"
bind-key    -T prefix 0                select-window -t :=0
bind-key    -T prefix 1                select-window -t :=1
bind-key    -T prefix 2                select-window -t :=2
bind-key    -T prefix 3                select-window -t :=3
bind-key    -T prefix 4                select-window -t :=4
bind-key    -T prefix 5                select-window -t :=5
bind-key    -T prefix 6                select-window -t :=6
bind-key    -T prefix 7                select-window -t :=7
bind-key    -T prefix 8                select-window -t :=8
bind-key    -T prefix 9                select-window -t :=9
bind-key    -T prefix ':'                command-prompt
bind-key    -T prefix \;                last-pane
bind-key    -T prefix =                choose-buffer
bind-key    -T prefix ?                list-keys
bind-key    -T prefix D                choose-client
bind-key    -T prefix L                switch-client -l
bind-key    -T prefix M                select-pane -M
bind-key    -T prefix [                copy-mode
bind-key    -T prefix ]                paste-buffer
bind-key    -T prefix c                new-window
bind-key    -T prefix d                detach-client
bind-key    -T prefix f                command-prompt "find-window '%%'"
bind-key    -T prefix i                display-message
bind-key    -T prefix l                last-window
bind-key    -T prefix m                select-pane -m
bind-key    -T prefix n                next-window
bind-key    -T prefix o                select-pane -t :.+
bind-key    -T prefix p                previous-window
bind-key    -T prefix q                display-panes
bind-key    -T prefix r                refresh-client
bind-key    -T prefix s                choose-tree
bind-key    -T prefix t                clock-mode
bind-key    -T prefix w                choose-window
bind-key    -T prefix x                confirm-before -p "kill-pane #P? (y/n)" kill-pane
bind-key    -T prefix z                resize-pane -Z
bind-key    -T prefix {                swap-pane -U
bind-key    -T prefix }                swap-pane -D
bind-key    -T prefix '~'                show-messages
bind-key    -T prefix PPage            copy-mode -u
bind-key -r -T prefix Up               select-pane -U
bind-key -r -T prefix Down             select-pane -D
bind-key -r -T prefix Left             select-pane -L
bind-key -r -T prefix Right            select-pane -R
bind-key    -T prefix M-1              select-layout even-horizontal
bind-key    -T prefix M-2              select-layout even-vertical
bind-key    -T prefix M-3              select-layout main-horizontal
bind-key    -T prefix M-4              select-layout main-vertical
bind-key    -T prefix M-5              select-layout tiled
bind-key    -T prefix M-n              next-window -a
bind-key    -T prefix M-o              rotate-window -D
bind-key    -T prefix M-p              previous-window -a
bind-key -r -T prefix M-Up             resize-pane -U 5
bind-key -r -T prefix M-Down           resize-pane -D 5
bind-key -r -T prefix M-Left           resize-pane -L 5
bind-key -r -T prefix M-Right          resize-pane -R 5
bind-key -r -T prefix C-Up             resize-pane -U
bind-key -r -T prefix C-Down           resize-pane -D
bind-key -r -T prefix C-Left           resize-pane -L
bind-key -r -T prefix C-Right          resize-pane -R
bind-key    -T root   MouseDown1Pane   select-pane -t = \; send-keys -M
bind-key    -T root   MouseDown1Status select-window -t =
bind-key    -T root   MouseDown3Pane   if-shell -F -t = '#{mouse_any_flag}' "select-pane -t=; send-keys -M" "select-pane -mt="
# Someone also was wondering how to fix here: http://tmux-users.narkive.com/dTFVvLMh/is-it-possible-to-have-a-binding-that-brings-back-mouse-behavior
bind-key    -T root   MouseDrag1Pane   if-shell -F -t = '#{mouse_any_flag}' "if -Ft= '#{pane_in_mode}' 'copy-mode -M' 'send-keys -M' " "copy-mode -M"

bind-key    -T root   MouseDrag1Border resize-pane -M
bind-key    -T root   WheelUpPane      if-shell -F -t = '#{mouse_any_flag}' "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -et=' "
bind-key    -T root   WheelUpStatus    previous-window
bind-key    -T root   WheelDownStatus  next-window

উপরে GitHub হয় যাতে আপনি করতে পারেন:

curl -L https://raw.githubusercontent.com/timotheecour/dinocode/master/tmux_list_keys_escaped.txt > ~/.tmux.reset.conf
unbind-key -a
source-file ~/.tmux.reset.conf

দ্রষ্টব্য: কোনওভাবে রিচার্ড কুকের উত্তর এখনও অব্যাহতিযুক্ত সমস্যা তৈরি করেছে।


ইউনিক্স.এসই তে স্বাগতম! আমরা প্রায়শই সরল লিঙ্কগুলির বিষয়ে সতর্ক থাকি তাই আমি এটি সরাসরি এখানে আটকানো (তবে লিঙ্কটি রেফারেন্সের জন্য রেখেছি)। এটি প্রায় কাছাকাছি উপায়। লিঙ্কগুলি মারা যায় (আমি জানি, এটি গিথুব! তবে তবুও এটি কোনও সময়ে মারা যেতে পারে)। যাইহোক এটি একটি ভাল উত্তর (+1)। আপনি যদি রিচার্ডের সেড কোড দিয়ে সমস্যাটি সমাধান করতে সক্ষম হন তবে আরও ভাল হতে পারে। এটি এক বছরের পুরানো এবং tmux এর 100% পিছনে সামঞ্জস্যপূর্ণ না হওয়ার খারাপ অভ্যাস রয়েছে।
গ্রুচমল

2

Tmux 2.1-এ পালানোর সমস্যাগুলি সমাধান করার জন্য রিচার্ড কুকের উত্তরের একটি টুইট সংস্করণ এখানে রয়েছে

#!/bin/bash
tmux -f /dev/null -L temp start-server \; list-keys | \
    sed -r \
    -e "s/(bind-key.*\s+)([\"#~\$])(\s+)/\1\'\2\'\3/g" \
    -e "s/(bind-key.*\s+)([\'])(\s+)/\1\"\2\"\3/g" \
    -e "s/(bind-key.*\s+)([;])(\s+)/\1\\\\\2\3/g" \
    -e "s/(command-prompt -I )#([SW])/\1\"#\2\"/g" \
    -e "s/(if-shell -F -t = )#([^ ]+)/\1\"#\2\"/g" \
    > ~/.tmux.reset.conf                              

শুরুতে নিম্নলিখিত লাইনগুলি যুক্ত করুন .tmux.conf

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