Urxvt মধ্যে tmux মধ্যে ভিম দূরে দূরে ক্লিক করুন


3

আমি urxvt এর ভিতরে tmux এর ভিতরে ভিম ব্যবহার করি এবং মাউসটি ডানদিকে খুব বেশি ক্লিক করতে চাইলে কেবল পাঠ্য ক্লিক এবং নির্বাচন করার জন্য পুরোপুরি ভাল কাজ করে।

মনে হচ্ছে বাম দিক থেকে কলামের সংখ্যা দূরত্বের সাথে সম্পর্কিত। আমি কলাম ~ 200 অতিক্রম করে যখন (সঠিক সংখ্যা সম্পর্কে নিশ্চিত না), ক্লিক করে কেবল কিছুই না।

মনে রাখবেন যে এটি একটি ভিম উইন্ডো সম্পর্কিত নয়: দুটি ভিম উইন্ডোজ প্রতিটি ~ 150 কলাম গ্রহণ করে, দ্বিতীয় উইন্ডোতে ~ 50 তম কলামের পরে ক্লিক করবে না। এটা সম্পূর্ণ ভিম অধিবেশন সম্পর্কিত।

এছাড়াও একটি বড় tmux ফলক (> 200 কলাম) দূরে দূরে ক্লিক করুন নোট পুরোপুরি কাজ করে।

আমার মধ্যে .tmux.conf আমি এই লাইন আছে:

set -g default-terminal "screen-256color"

এবং আমার .vimrc আমার আছে এটা:

if &term =~ "^screen"
    autocmd VimEnter * silent !echo -ne "\033Ptmux;\033\033]12;7\007\033\\"
    let &t_SI = "\<Esc>Ptmux;\<Esc>\<Esc>]12;5\x7\<Esc>\\"
    let &t_EI = "\<Esc>Ptmux;\<Esc>\<Esc>]12;7\x7\<Esc>\\"
    autocmd VimLeave * silent !echo -ne "\033Ptmux;\033\033]12;14\007\033\\"
end

এটি ভিমের সম্পাদনা মোডের উপর নির্ভর করে কার্সারের রঙ পরিবর্তন করে এবং এটি কাজ করে, যার মানে টিএমক্স সত্যিই সেট করে $TERM "পর্দা -256 রঙের" - কিন্তু আমার মাউস সমস্যাটির সাথে এর কোন প্রাসঙ্গিকতা আছে কিনা তা আমি জানি না।

আমি উবুন্টু 12.04 চালাচ্ছি, ভিম 7.3 টি, এমএমএস 1.6 এবং আরএক্সভিটি-ইউনিকোড 9.14।

যে কেউ এই সমস্যা কি কারণে একটি ধারণা আছে? ধন্যবাদ।

হালনাগাদ: আমি এখন xterm ব্যবহার এবং এটি কাজ করে। আমি ইউনিকোড সমর্থন ইউনিকোড সমর্থনের জন্য প্রয়োজন ছিল, কিন্তু এটা বিশ্বাস করি না, xterm ইউনিকোড সমর্থন আছে।


শুধু আমার +1 মধ্যে নিক্ষেপ; আমি, খুব, এই সমস্যা অভিজ্ঞতা। এটি শুধুমাত্র একটি ভিম ভিতরে প্রদর্শিত হয় যে একটি tmux ভিতরে হয়; এবং এটি সংশ্লিষ্ট কনফিগারেশন ফাইল নির্বিশেষে manifestifests। (আমার জন্য, এটি একেবারে কলাম 223 প্রতিটি সময়।)
ELLIOTTCABLE

আমি আঘাত করেছি tmux মেইলিং-লিস্ট; আমরা যদি এটি একটি বাগ দেখতে হবে। sourceforge.net/p/tmux/mailman/message/34074071
ELLIOTTCABLE

আমি xterm এ স্যুইচ করে সমস্যার সমাধান করেছি বলে প্রশ্নটি আপডেট করেছি। আমি জানি এটি সেরা সমাধান নয় তবে এটি কাজ করে।
paps

উত্তর:


3

তাই, ধন্যবাদ Screwtape , আমি পেয়েছি একটি উত্তর এই জন্য। নীচের উত্পাদিত:


মূল xterm মাউস প্রোটোকল শুধুমাত্র 223 কলাম সমর্থন করে এবং লাইন। প্রোটোকলের পরবর্তী সংস্করণগুলি ইউটিএফ -8 এনকোডিং ব্যবহার করে, যা পরিণত হয় একটি ভয়ানক ধারণা হতে আউট, এবং আরো আধুনিক টার্মিনাল সমর্থন একটি সম্পূর্ণ ভিন্ন প্রোটোকল এসজিআর অব্যাহতি ক্রম উপর ভিত্তি করে যে অনেক বেশি বোকা।

tmux স্বয়ংক্রিয়ভাবে মূল প্রোটোকল এবং SGR প্রোটোকল সমর্থন করে উভয় উপায়ে (টার্মিনালে এটি ভিতরে চলমান হয়, এবং অ্যাপ্লিকেশন এটি ভিতরে চলমান।) কিন্তু এটি শুধুমাত্র থেকে UTF-8 মোড অনুরোধ কনফিগারেশন ফাইলে 'মাউস-utf8' সক্রিয় থাকলে বাইরের টার্মিনাল।

আপনি ব্যবহার করতে পারেন vttest বিভিন্ন মাউস প্রোটোকল সঙ্গে পরীক্ষা করার জন্য টুল ভিতরে এবং বাইরে tmux কি হচ্ছে যাচ্ছে একটি ভাল ধারণা পেতে।

ভিম এর জন্য ডকুমেন্টেশন অনুযায়ী 'ttymouse' বিকল্প, এটা জিজ্ঞাসা করবে মূল-xterm- প্রোটোকল সমর্থনের জন্য টার্মিনাল যদি $TERM একটি বৈকল্পিক এর xterm, mlterm অথবা screen (এবং tmux হিসাবে নিজেকে রিপোর্ট screen, তাই যে ঠিক আছে). যদি টার্মিনাল সমর্থন করে "RV" নির্ধারিত সময়সীমা বৈশিষ্ট্য xterm সংস্করণ নম্বর, ভিম স্বয়ংক্রিয়ভাবে আপগ্রেড করার জন্য ব্যবহার করবে 'xterm2' অথবা 'sgr' মাউস প্রোটোকল ... কিন্তু সাধারণত শুধুমাত্র xterm বিজ্ঞাপন গুলো "RV" সমর্থন, তাই tmux স্বয়ংক্রিয় আপগ্রেড প্রক্রিয়া বাকি আছে।

আমার মধ্যে ~/.vimrc আমি শালীন মাউস সমর্থন সক্রিয় করতে নিম্নলিখিত কোড আছে, ভিমের অটোমেটিকেশন নির্ভর করার পরিবর্তে:

" Screen/tmux can also handle xterm mousiness, but Vim doesn't
" detect it by default.
if &term == "screen"
set ttymouse=xterm2
endif

if v:version >= 704 && &term =~ "^screen"
" Odds are good that this is a modern tmux, so let's pick the
" best mouse-handling mode.
set ttymouse=sgr
endif

(নোট, দী set ttymouse=sgr প্রকৃত ফিক্স এখানে, হয়; আমার পরামর্শ এটা আপনার যোগ করা .vimrc হিসাবে টিম করেনি।)


1
তুমি ব্যবহার করতে পার has("mouse_sgr") পরীক্ষার পরিবর্তে v:version >= 704
piec

ব্যবহার set ttymouse=sgr অথবা set ttymouse=xterm2 urxvt মধ্যে tmux কাজ করে না। আপনি এখনও 223 কলাম অতীত ক্লিক করতে পারবেন না।
paps

এইচএম, @ প্যাপস, আমার পরীক্ষা করার জন্য একটি urxvt অ্যাক্সেস নেই। আপনি অন্যান্য ttymouse মান চেক করতে পারেন? এবং সক্ষম ⌃b :তারপর, set mouse-utf8 onটিমক্সে, আপনি কি আমার সাথে টেস্টিং করছেন?
ELLIOTTCABLE

1

এটি টার্মিনালে মাউস রিপোর্টিং প্রোটোকলের সীমাবদ্ধতার কারণে: " আসল এক্স 10 মাউস প্রোটোকলটি সিএক্স এবং সি ওয়ার্ক অর্ডিনেটসকে 223 (= 255 - 32) সীমাবদ্ধ করে। "দেখুন এই লিঙ্ক


এই ক্ষেত্রে না (ভাল, আমি বলতে চাচ্ছি, যদি তাই হয়, এটা কারণে tmux অথবা vim এই সম্পর্কে ধারনা তৈরীর; টার্মিনাল বাস্তবায়ন কারণে না); tmux প্যানেলগুলি OS X, এবং আমার টার্মিনাল.এপমে কলাম 223 এর বাইরে ম্যানিপুলযোগ্য vim উইন্ডোজ ভাল হিসাবে আছে; এটি কেবল তখনই হয় যখন অন্য কোনও সমস্যা থাকে।
ELLIOTTCABLE

নিশ্চিত: এই স্পষ্টভাবে একটি tmux সমস্যা. nano --mouse হিসাবে একই সীমাবদ্ধতা দেখায় vim, কিন্তু শুধুমাত্র ভিতরে tmux
ELLIOTTCABLE

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