ব্যাশে vi মোড ইঙ্গিত করতে কার্সারের আকার (বা রঙ) পরিবর্তন করুন


30

স্পষ্ট করার জন্য: টার্মিনালের মধ্যে ভিআইএম ব্যবহার করার সময় আমি কার্সারটি কীভাবে পরিবর্তন করব তা জিজ্ঞাসা করছি না । বাশের ভিআই-মোডের মধ্যে ইনপুট এবং কমান্ড মোডের মধ্যে স্যুইচ করার সময় আমি কার্সারটি পরিবর্তন করতে চাই:

set -o vi <CR> type some text <ESC> (the cursor changes shape/color)
i (cursor change back) etc... 

আমি এমন একটি স্ক্রিপ্ট পেয়েছি যা মোডে কার্সারের রঙ পরিবর্তন করে zsh এ সম্ভব করে তোলে , তবে আমি কেবলমাত্র এই বৈশিষ্ট্যের জন্য শেল পরিবর্তন করতে চাই না।

বাশ কমান্ড লাইনে কমান্ড এবং সন্নিবেশ মোডের মধ্যে স্যুইচ করার সময় gvim এর মতো (বা এমনকি কেবল রঙ) কার্সারটি আকৃতি পরিবর্তন করার কোনও উপায় আছে কি?


- পুট্টির, হউক না কেন :( কোন উত্তরের জন্য তাই একই প্রশ্ন stackoverflow.com/questions/2393383/...
studgeek

উত্তর:


5

এই দুটি লাইন ~ / .inputrc এ যুক্ত করুন :

set vi-ins-mode-string \1\e[5 q\2
set vi-cmd-mode-string \1\e[2 q\2

4
এই উত্তরটি আরও বেশি কার্যকর হবে যদি আপনি সেগুলি কী করে তা ব্যাখ্যা করেন এবং কিছু প্রসঙ্গ সরবরাহ করেন, উদাহরণস্বরূপ, সেটিংসের জন্য কি ব্যবহারকারীকে রিডলাইনের একটি বিশেষ সংস্করণ থাকা দরকার।
অ্যান্টনি জি - মনিকার পক্ষে

:) এখানে ম্যানুয়াল এন্ট্রি দেওয়া হয়েছে: gnu.org/software/bash/manual/html_node/…
পবিত্রগ্রন্থীরা

1
এটি কেবলমাত্র টার্মিনাল এবং টার্মিনাল এমুলেটরগুলিতে কাজ করবে যা DECSCUSR বোঝে।
জেডিবিপি

আমি যোগ করতে ছিল set show-mode-in-prompt onমধ্যে ~/.inputrcএই কাজ করতে।
রোনাকগ

4

এখান থেকে অনুলিপি করা হয়েছে - কমান্ড-লাইন সম্পাদনা ভিম স্টাইল

bash৪.৩ এ পাওয়া উচিত - চেঞ্জলগটি দেখুন -

j.  New user-settable variable, show-mode-in-prompt, adds a characters to the
    beginning of the prompt indicating the current editing mode.

bash৪.৩ বর্তমানে rcপর্যায়ে রয়েছে, মূল সংগ্রহস্থল না থাকলেও উত্স থেকে সংকলন না করে বেশিরভাগ ডিস্ট্রোদের প্যাকেজ পেতে সক্ষম হওয়া উচিত। যেমন। উবুন্টু (amd64) এখানে এবং ডিবিয়ান (পরীক্ষামূলক রেপো) এখানে


নোট করুন: প্রম্পটটি আপডেট করা হবে না যদি আপনি একটি কাস্টম PS1 ব্যবহার করেন যা একটি নতুন লাইনের চরিত্র থাকে। এখানে
pgericson

@ পেজরিকসন মনে হয় এটি কাস্টম পিএস 1 এর সাথে আমার পক্ষে বাশ 4.4.12 এ একটি নতুন লাইন রয়েছে with
ডুবিস্টকমিচ

2

আমি আসল সমাধান খুঁজে পাইনি তবে সম্ভবত এটি আপনাকে (বা অন্য কেউ) আরও ভাল সমাধান খুঁজতে সহায়তা করতে পারে।

আপনাকে একটি স্ক্রিপ্ট তৈরি করতে হবে (উদাঃ কিমিস্টেস্ট.শ)

#!/bin/bash
# Script "kmtest.sh"

TEST=`bind -v | awk '/keymap/ {print $NF}'`
if [ "$TEST" = 'vi-insert' ]; then
   echo -ne "\033]12;Green\007"
else
   echo -ne "\033]12;Red\007"
fi

এবং এটি আপনার PS1 এ যুক্ত করার পরে এমন কিছু:

export PS1="\u@\h \$(kmtest.sh)> "

তবে আমি যেমন বলেছি, এটি আপনি যা চান তা নয়, কারণ এটি কেবলমাত্র ক্রিয়ারের পরে কার্সারের রঙ পরিবর্তন করে। শুভকামনা

গিগাবাইট


এটি কি আপনার পক্ষে কাজ করেছিল? এটা আমার জন্য কাজ করে নি; এটি সবেমাত্র কার্সরটিকে লাল করে তুলেছে। আমি মনে করি না প্রতিবার আমি সন্নিবেশ এবং কমান্ড মোডগুলির মধ্যে স্যুইচ করেছি কিমিস্টেস্ট.শ চলমান। দেখে মনে হচ্ছে এটি কেবল প্রম্পট তৈরির জন্য চালানো হবে।
joecan

1

দেখে মনে হচ্ছে হ্যাকিং রিডলাইনের মাধ্যমে এটি করার কোনও উপায় থাকতে পারে। সম্ভবত আমরা এটির মূলধারার জন্য চাপ দিতে পারি?

এখানে এসও https://stackoverflow.com/a/12201092/255961 এ আমার উত্তর যা আমি আরও তথ্য পেলে আপডেট করব।


1

যদিও আপনি যা চান ঠিক তা নয় (গতিশীলভাবে কার্সার পরিবর্তন করে), তবে বশ ৪.৪ / রিডলাইন .0.০ প্রম্পট পরিবর্তন করার জন্য সমর্থন যুক্ত করবে । সন্নিবেশ / কমান্ড মোডগুলির জন্য আপনি কাস্টম মোড সূচকগুলি নির্দিষ্ট করতে সক্ষম হবেন (এটি বর্তমানের show-mode-in-promptবিকল্পের থেকে আলাদা যা ব্যবহার করতে হার্ডকোডযুক্ত +এবং :)।

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

অন্তর্বর্তী আমি ব্যাশ 4.3 / readline 6.3 এর তালি সংস্করণ প্রকাশিত থাকেন GitHub এই কার্যকারিতা সঙ্গে।


0

আমি যখন জিভিম থেকে কনসোল ভিমে স্থানান্তরিত হচ্ছিলাম তখন আস্কউবুন্টুতে কিছুক্ষণ আগে একই প্রশ্নটি জিজ্ঞাসা করি ।

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

আপনি সন্তোষজনক সমাধান পান কিনা তা নিয়ে আমি এখনও আগ্রহী, তবে সময়ের সাথে সাথে আমি কার্সারে মোড স্টেটের তথ্যের অভাবের সাথে সামঞ্জস্য করেছি। সম্ভবত আমি কেবল প্রায়শই বার বার চাপতে পারি (যেমন escআমি কমান্ড-মোডে esc iআছি তা নিশ্চিত করতে ; আমি সন্নিবেশ মোডে আছি তা নিশ্চিত করতে); সম্ভবত আমি পর্দার নীচে প্রদর্শিত রাষ্ট্র তাকান; সম্ভবত আমি কেবল মোডটি অভ্যন্তরীণ করেছি


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