Vim + tmux এর অধীনে কার্সার আকার


14

সাইগউইনের অধীনে টেমাক্সের ভিতরে ভিএম চালানোর সময় আমি কীভাবে বিভিন্ন কার্সার আকার পেতে পারি?

Tmux ছাড়া এই লাইনগুলি আমি যা চাই তা অর্জন করার জন্য যথেষ্ট হবে:

let &t_SI = "\e[5 q"
let &t_EI = "\e[2 q"

তবে কোনওরকমভাবে আমার টিএমউक्स এটি ভেঙে দেয় - আমি যে কোনও ভিএম মোডেই থাকি না কেন কার্সারের ব্লক শেপ থাকে।

আমার চশমা:

  • উইন্ডোজ 7 এক্স 64
  • সাইগউইন x86
  • TMUX 1.9a
  • Vim 7.4.726 (+ কার্সারশপের সাথে সংকলিত)
  • টার্মিনাল এমুলেটর: পুদিনা 1.1.3
  • সাইগউইন টার্মিনাল বা সিএমডারে ব্যবহৃত (কোনওভাবেই, কার্সার শেপগুলি কেবল টিএমইউএক্স ছাড়াই কাজ করে)
  • echo $TERMআমাকে দেয় screen-256color(টিএমইউক্সে এবং এর বাইরেও, কারণ export TERM=screen-256colorআমার মধ্যে রয়েছে.bashrc
  • .tmux.conf রয়েছে:
    set -g default-terminal "screen-256color" setw -g xterm-keys on

সাফল্য ছাড়াই আমি ইতিমধ্যে যা চেষ্টা করেছি :

  • export TERM=xterm
  • export TERM=vt100
  • "বারে রাইটক্লিক> বিকল্পগুলি> চেহারা> কার্সার" (এটি স্থায়ীভাবে কার্সারকে পরিবর্তন করে, ভিম মোডগুলি এখনও এটি পরিবর্তন করে না)

'+ কার্সার শেপ' বৈশিষ্ট্যটির সাথে সংকলিত ভিম?
অ্যালেক্স ক্রোল

টার্মিনাল সেটিংস পরীক্ষা করুন। এবং এই প্রশ্নটি দেখতে অনুরূপ সুপারইউজার.
com/উকশনস /

আপনি কোন টার্মিনাল এমুলেটর ব্যবহার করছেন? আপনি ভালো কিছু চেষ্টা let &t_SI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=1;BlinkingCursorEnabled=1\x7\<Esc>\\"এবং let &t_EI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=0;BlinkingCursorEnabled=0\x7\<Esc>\\"?
j jaderberg 20

@ জাজারবার্গ আইটর্মের পালানোর ক্রম? কিছু সতর্কতা সহ কেবলমাত্র আইটার্মে কাজ করে: আইটার্ম ডক > আইটার্ম 2 বেশ কয়েকটি অ-মানক এস্কেপ কোড সমর্থন করে। এগুলি tmux বা স্ক্রিনে সঠিকভাবে কাজ না করতে পারে এবং অন্যান্য টার্মিনাল এমুলেটরগুলিতে অজানা প্রভাব থাকতে পারে। সাবধানতার সাথে এগিয়ে যান.
অ্যালেক্স ক্রোল

1
আমি আরও একবার আমার নরম পরীক্ষা করেছি এবং সমস্ত সংস্করণ আপনার সাথে একই তবে m পুদিনা বিকল্পগুলির মধ্যে TERM টিএমউক্সের xterm-256colorঅভ্যন্তরে screen-256color। tmux এর সংস্করণ 1.9 (এবং আপনার 1.9a হয়)। আমি tmux এর ভিতরে vim প্রবর্তন করেছি vim -u NULL(- NUL এর অর্থ কোনও কনফিগার নেই)। কার্সার শেপটি যে কোনও মোডে ব্লক, তবে যখন আমি ব্লক (স্বাভাবিক মোড) থেকে প্রত্যাশা অনুযায়ী (সন্নিবেশ মোড) স্যুইচ করি t_SIএবং t_EIশেপ করি I। আপনি কি কোনও রঙিন চেমস এবং প্লাগইন ছাড়াই খালি .vimrc দিয়ে ভিএম চালু করার চেষ্টা করতে পারেন?
অ্যালেক্স ক্রোল

উত্তর:


11

সমস্যাটি মনে হচ্ছে tmux আপনার কার্সার-পরিবর্তনকারী পালানোর কোডগুলি টার্মিনাল এমুলেটরে প্রেরণ করে না। আপনাকে আপনার কাঙ্ক্ষিত এস্কেপ কোডগুলি একটি বিশেষ ক্রমে মুড়িয়ে ফেলতে হবে যা tmux কে বলে যে এটি এটিকে বাইরের টার্মিনালে প্রেরণ করা উচিত।

আপনার অব্যাহতি ক্রমটি মোড়ানোর জন্য আপনার যে ক্রমটি দরকার তা হ'ল \<Esc>Ptmux;\<Esc> ... \<Esc>\\( উত্স )। ...আপনার পালাবার ক্রম।

সুতরাং, আপনার মধ্যে এ জাতীয় কিছু করার চেষ্টা করুন .vimrc:

if exists('$TMUX')
    let &t_SI = "\<Esc>Ptmux;\<Esc>\e[5 q\<Esc>\\"
    let &t_EI = "\<Esc>Ptmux;\<Esc>\e[2 q\<Esc>\\"
else
    let &t_SI = "\e[5 q"
    let &t_EI = "\e[2 q"
endif

আমি আপনার টার্মিনাল এমুলেটর বা সাইগউইন ব্যবহার করি না, তাই আমি এই কোডটি পরীক্ষা করতে পারিনি। তবে পদ্ধতিটি আমার পক্ষে কাজ করেছে (আমি কেবলমাত্র আমার টার্মিনালের সাথে সঙ্গতিপূর্ণ অন্যান্য এস্কেপ কোডগুলি আবৃত করেছি)।


এটি আরও ভাল - আমার পরিবর্তন না করে কাজ করে .bashrc। ধন্যবাদ.
কোসাক

3

$TERMপরিবেশের ভেরিয়েবলের সঠিক মান খুব গুরুত্বপূর্ণ। এটির চেয়ে আলাদা কিনা তা নিশ্চিত করুন screen-256colorxterm-256colorউদাহরণস্বরূপ এটি সেট করুন ।

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