Tmux বা স্ক্রিন ব্যবহার করে ভিমে মোডগুলি স্যুইচ করার সময় অল্প বিলম্ব


68

আমি tmux ব্যবহার করার কারণে ভিমে সন্নিবেশ মোডে এবং থেকে স্যুইচ করা আর তাত্ক্ষণিক নয়। Escসন্নিবেশ মোডে টিপানোর পরে , সন্নিবেশ মোড থেকে প্রকৃতপক্ষে বেরিয়ে আসার জন্য এটি একটি লক্ষ্যণীয় পরিমাণ সময় নেয়। টিপুন Escএবং অন্য কোনও কী পরে তারপরে স্যুইচটি তাত্ক্ষণিক হয় এবং তারপরে কী চাপার জন্য কমান্ডটি Escকার্যকর করা হয়। কোন ধারণা কি কারণ হতে পারে?

ভিএম কনফিগারেশন সমস্যা হয় না কারণ আমি যখন ভিএমটি বাইরে tmux চালনা করি তখন দেরি হয় না, সুতরাং এটি সম্ভবত কোনওভাবে tmux এর সাথে সম্পর্কিত। আমি জিনোম টার্মিনাল বিটিডব্লু ব্যবহার করি।

লক্ষ্য করার মতো বিষয়, মনে হচ্ছে আমি টিএমউক্সে কী বাইন্ডিংগুলি সংজ্ঞায়িত করতে পারি না Esc, আমার পরিকল্পনাটি এইটিকে আবদ্ধ Escকরার ছিল:

bind Escape send-keys ^[

হায়, Esctmux কাজ করে না বলে মনে হচ্ছে এটি যে কোনও কিছুকে বাধ্যতামূলক । পর্দায় একই সমস্যা দেখা দেয়।

উত্তর:


122

ম্যান পৃষ্ঠাগুলি দিয়ে লাঙল দেওয়ার পরে দেখা যাচ্ছে tmux এর জন্য একটি বিকল্প রয়েছে। নিম্নলিখিত ক্ষেত্রে ~/.tmux.confবিলম্ব সমস্যা সমাধান করা হয়েছে:

 set -sg escape-time 0

এটি কার্যকর হওয়ার জন্য আপনাকে আপনার টিএমক্স সার্ভার পুনরায় চালু করতে হবে বা আপনার কনফিগারেশনটি পুনরায় লোড করতে হবে। এটি করতে source-file ~/.tmux.conftmux প্রম্পট থেকে ইস্যু করুন ।


2
আপনি এটি কোথায় পেলেন? আমি কোনও জায়গাতেই পালানোর সময় খুঁজে পাচ্ছি না man tmuxএবং কমান্ডটি আমার পক্ষে কাজ করে না।
djeikyb

আমার সন্দেহ হয় এটি কেবলমাত্র উন্নয়ন সংস্করণে উপলব্ধ। আপনি এটি এখানে পেতে পারেন: github.com/ThomasAdam/tmux
টন ভ্যান ডেন হিউভেল

4
এই সেটিংটি আমার পক্ষে কাজ করার আগে আমাকে tmux কিল-সার্ভার ব্যবহার করতে হয়েছিল। ধন্যবাদ!
স্যাম

1
এটি আমার ইচ্ছে করে যে আমি আপনাকে 10 টি উপস্থাপনা দিতে পারি। ভিমে লড়াইয়ের সময় শেষ হওয়ার এক ঘন্টা পরে এটি পাওয়া গেছে। ধন্যবাদ!
মালভিম

1
@ মিশেলব্রাউন, আমিও তাই করি এবং এখনও এই সমস্যাটিকে আঘাত করছি। এটি আসলে গুরুত্বপূর্ণ নয়, কারণ আপনি পালাতে চাপলেন বা ^ [নির্বিশেষে একই কী কোডটি টার্মিনাল এমুলেটরে প্রেরণ করা হয়। [
টন ভ্যান ড্যান হিউভেল

4

আমার এই পৃষ্ঠার সন্ধানের সময় আমি সমাধান করার চেষ্টা করছি এমন একটি ভিন্ন তবে অনুরূপ সমস্যা ছিল, সুতরাং আমি এই পোস্টটি এখানে পোস্ট করব যাতে এই উত্তরের সন্ধানে থাকা এবং এই পৃষ্ঠাটিকে একইভাবে খুঁজে পাওয়া যায় এমন ক্ষেত্রে এটি সহায়ক হয় helpful

সমস্যা: সন্নিবেশ মোড থেকে কমান্ড মোডে স্যুইচ করার সময় ব্যাশের মধ্যে vi মোডে বিলম্ব হয়

সমাধান: আপনার ~/.inputrcফাইলে, set keyseq-timeout nযেখানে 500 মিমি থেকে ডিফল্ট n0 এর চেয়ে কিছু কম মান রয়েছে সেখানে nএটি বিলম্বের কারণ হয়। ডকুমেন্টেশন এখানে দেখুন ।

এছাড়াও, আপনি যদি কোন মোডে রয়েছেন তা বলতে সক্ষম হতে চান তবে ডিলান কালের কাঁচের কাঁটাচাটি পরীক্ষা করে দেখুন ।


এটি খুব সহায়ক, আমি এটি সেট করেছি 0.01এবং এখন এর মনোরমভাবে আরও অনেক দ্রুত। ধন্যবাদ!

এটি /etc/inputrcএটি সমস্ত ব্যবহারকারীর জন্য উপলব্ধ করার জন্য যুক্ত করা যেতে পারে।

1

মনে হচ্ছে আপনি ম্যাপিং ব্যবহার করছেন যা শুরু হয় ESC। আপনি যখন ESCটিপেন, ভিমকে ম্যাপিংয়ের জন্য পরবর্তী কীটি কিনা তা দেখতে অপেক্ষা করতে হবে। যদি তা না হয় তবে তা অবিলম্বে চালিয়ে যেতে পারে।

ভিআইএম কনফিগারেশনটি টার্মিনাল নির্ভর হতে পারে, সুতরাং এটি যে tmux এর বাইরে ঘটে না সেটির অর্থ খুব বেশি নয়। ভিম $TERMপরিবেশের পরিবর্তনশীলটিকে জিজ্ঞাসা করতে পারে এবং এর মানের উপর নির্ভর করে বিভিন্ন কনফিগারেশন চয়ন করতে পারে।

যেহেতু জিনোম-টার্মিনাল ব্যবহার করে, AFAIK, ভেরিয়েবলের xtermমান হিসাবে $TERM, এবং tmux ব্যবহার করে screen, আমি আপনার সমস্ত ভিআইএম কনফিগারেশন ফাইলগুলি কেবলমাত্র সেটিংসের জন্য ব্যবহার করব যা $TERMভেরিয়েবলের সমান screen। আমার ধারণাটি হ'ল আপনার সিস্টেমে কিছু ভিআইএম কনফিগারেশন ফাইল ESCটার্মিনাল হওয়ার সময় তীর কীগুলি (যারা অক্ষরের সাথে শুরু করে ) হ্যান্ডলিংয়ের জন্য ম্যাপিংস সেট করে screen

আপনি $TERMভিএমটি শুরু করার আগে অস্থায়ীভাবে tmux এ ভেরিয়েবল পরিবর্তন করে এটি পরীক্ষা করতে পারেন । যদি আপনার শেল বাশ হয়, তবে ভিমকে কল করুন

TERM=xterm vim

tmux এ এবং দেখুন সমস্যাটি বজায় রয়েছে কিনা। আপনি এটি একটি স্থির হিসাবে ব্যবহার করবেন না, যদিও, যেহেতু tmux এবং xterm এর টার্মিনাল ক্ষমতাগুলির মধ্যে পার্থক্য থাকতে পারে এবং আপনি কিছু সমস্যার সম্মুখীন হতে পারেন।


কিছু ভাল পয়েন্টার এখানে। আমি ব্যাশ ব্যবহার করি, তবে দুর্ভাগ্যক্রমে TERM=xterm vimসমস্যাটি সমাধান হয়নি। আমাকে আরও গভীর খনন করতে হবে।
টন ভ্যান ড্যান হিউভেল

1

শিরোনামে স্ক্রিনের উল্লেখ হিসাবে, জিএনইউ স্ক্রিনের মধ্যে এস্কেপ কীর আচরণ ঠিক করার সমাধান এখানে। ( এখান থেকে নেওয়া হয়েছে ।)

যোগ

maptimeout 5

থেকে .screenrcফাইল কনফিগ।

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