শেলের মধ্যে কী কীবাইন্ডিংগুলি ব্যবহার করার সময় কীভাবে বর্তমান ভাই মোডটি দেখাবেন?


15

আমি আমার টিসিএস শেলের মধ্যে vi কীবাইন্ডিং ব্যবহার করি।

এখন, আমি জানি না আমি কোন vi মোডে আছি ( insertমোড বা commandমোড), যা হতাশার দিকে নিয়ে যায়।

শেলের বর্তমান ভিআই মোডটি দেখানোর কোনও উপায় কি কেউ জানেন? (প্রম্পট বা কোনও কিছু অন্তর্ভুক্ত করে)

উত্তর:


4

আপনার দৃষ্টিভঙ্গিটি কী মোডে রয়েছে তা নির্ধারণ করার কোনও উপায় আছে বলে আমি বিশ্বাস করি না, তবে আপনি যদি নিজের আচরণটি একটু সংশোধন করেন তবে তাতে কিছু আসে যায় না।

আপনি যদি কমান্ড মোডে থাকতে চান, কমান্ড টাইপ করার আগে ESC টিপুন।

আপনি যদি সন্নিবেশ মোডে থাকতে চান তবে সামগ্রী টাইপ করার আগে ESC এবং i টিপুন।

আপনি ESC টিপে অনেক চাপ দেবেন, তবে আমি যে প্রতি vi ব্যবহারকারীকে কখনও দেখা করেছি তা সেভাবেই করে।


1
সমস্যাটি হ'ল, শেলটিতে অতিরিক্ত ইসিএসগুলি উপেক্ষা করা হয় না - যখন আমি একটি অতিরিক্ত ইসি দিই, তখন একটি কমান্ড টাইপ করুন (বাম দিকে সরানোর জন্য h বলুন), এটি কেবল একটি বীপ দেয় এবং কিছুই করে না।
- মনিকা

2
"অতিরিক্ত ইসি" দ্বারা, আমার অর্থ ইতিমধ্যে কমান্ড মোডে থাকা অবস্থায় ইসি টিপুন - যা আমি অনেক কিছু করি যেহেতু আমি জানি না আমি কোন মোডে আছি
সুন্দরের - মনিকা পুনরায় ইনিস্টেট করুন

আপনি সঠিক. আমি এটি এত দিন ব্যবহার করেছি যে এমনকি সেই আচরণের আর কোনও বিষয়টি আমি খেয়ালও করি না। আবার, সহজ উত্তর। আপনি যদি ESC এবং h তে আঘাত করেন এবং কিছুই না ঘটে তবে h আবার আঘাত করুন। আমি মনে করি এটি আরও একটি প্রশ্ন খোলায়। Vi কীবাইন্ডিংয়ের 'কমান্ড' মোডে থাকাকালীন ESC টিপানোর ফলে পরবর্তী অক্ষরটি সঠিকভাবে ব্যাখ্যা করা যায় না? vi নিজেই এটি করে না। আমি 10 বার ESC টাইপ করতে পারি এবং পরবর্তী কমান্ডটি এখনও প্রত্যাশিত হিসাবে কাজ করে।
বব ওয়েবার

আরেকটি টিপ, বেলটি বন্ধ করুন। এটি আপনি যে কারণে বর্ণনা করেছেন তার জন্য এটি অবিশ্বাস্যরূপে বিরক্তিকর - এবং এটি ট্যাব সমাপ্তিতে বিপস করে। আপনার পরিবেশের উপর নির্ভর করে এটি করার বিভিন্ন উপায় রয়েছে।
বব ওয়েবার

1
ঠিক আছে, আমি বর্তমানে এই সমাধানটি চেষ্টা করে দেখছি। ক্যাপস লক টু এস্কেপ ম্যাপিং এটিকে বাস্তবায়ন আরও সহজ করে তুলেছে তবে সন্নিবেশ মোডের জন্য আমি এখনও ইসি-আই ব্যবহার করতে পারিনি। আমি আশা করি শীঘ্রই করব। > আপনি যদি ESC এবং h তে আঘাত করেন এবং কিছুই না ঘটে তবে h চাপুন আবার সমস্যাটি হ'ল এটি বেশ হতাশাব্যঞ্জক এবং প্রবাহকে অনেকটা ভাঙায়। এটি একটি অতিরিক্ত জিনিস যা আমি যে কমান্ডটি তৈরি করছি তা ছাড়াও আমাকে ভাবতে হবে। আমি আমার পেশী স্মৃতিতে রয়েছি এবং এই কারণেই ভ্রান্ত কী-বাইন্ডিংগুলিকে পছন্দ করি এবং এই উদ্দেশ্যটি নিজেই ভেঙে দেয় ...
সূন্দর - মনিকা পুনরায় ইন্সটল করুন

3

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

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

ওফ, যদি এটি সত্যিই আপনার পোষা প্রাণীর উপস্থাপক হয়, এবং এটি আপনাকে পাগল করে তুলছে, এবং আপনি সত্যই একেবারে মরিয়া হয়ে এই সমস্যাটি কাটিয়ে উঠতে চান, তবে কীভাবে এটি করবেন সে সম্পর্কে আমার ধারণা:

  1. ডব্লিউ। রিচার্ড স্টিভেন্সের দ্বারা ইউনিক্স (আর) পরিবেশে উন্নত প্রোগ্রামিংয়ের একটি অনুলিপি পান ।
  2. স্ট্রিম এবং টার্মিনাল I / O এর অধ্যায়গুলি পড়ুন ।
  3. পূর্বোক্ত বইটিতে উত্স কোডটি ডাউনলোড করুন , এতে একটি স্ট্রিমের উদাহরণ রয়েছে যা টার্মিনালের উপর স্তরযুক্ত হতে পারে।
  4. Esc কী সমন্বয় (বা উভয় মোড চেপে কীপ্রেসস) এর জন্য আপনার হ্যান্ডলিংটি প্রয়োগ করুন এবং বর্তমান লাইনটির ঘণ্টা বা পটভূমি হেরফেরের মাধ্যমে এটি নির্দেশ করুন।

সংক্ষেপে, ইউনিক্স ডিভাইস ড্রাইভার এবং ব্যবহারকারী প্রক্রিয়ার মধ্যে একটি সম্পূর্ণ-দ্বৈত I / O স্ট্রিম হিসাবে টার্মিনাল I / O প্রয়োগ করে, যেখানে মডিউলগুলি সন্নিবেশ করা যায়। এটি স্ট্যাক হিসাবে সংগঠিত, যাতে আপনি যতগুলি স্ট্রিম চান তা স্তর করতে পারেন। ইঞ্জেকড স্ট্রিমগুলির যোগফল আপনার টার্মিনাল I / O আচরণ তৈরি করে।

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

আপনি একটি স্ট্রিম মডিউল প্রয়োগকারী একটি বাইনারি তৈরি করতে পারেন, যখন আপনি অগ্রণী গ্রাহকরা নিঃশব্দে চালিত হন, সমস্ত কী-স্ট্রোকটি পরিদর্শন করেন এবং পাস করেন, আপনার পছন্দের কীস্ট্রোকগুলিতে আপনার পছন্দের ক্রিয়াটি সম্পাদন করছেন। সমস্ত উদ্দেশ্য এবং উদ্দেশ্যগুলির জন্য, এটি প্রদর্শিত হবে যেন আপনি শেলটিতে কাজ করছেন। Oooh। আপনি আপনার .tcshrc এর শেষ (বা প্রথম, বা কোনও) লাইনটিতে এই বাইনারিটি ডেকে আনতে পারেন এবং আপনি এটি সেখানে জানতেন না।

এখানে একটি ভাল প্রাইমার রয়েছে , তবে আমি এই বিষয়টিতে খুব বেশি কিছু খুঁজে পাইনি, সম্ভবত এটি তার প্রাইম পেরিয়ে যাওয়ার কারণে।


2

এই পৃষ্ঠায় মোটামুটি বিস্তারিত স্ক্রিপ্ট রয়েছে যা zsh এ আপনি কী চান (এবং আরও কিছু) সেট আপ করে । সম্ভবত এটি টিসিএসের সাথে কাজ করার জন্য মানিয়ে নেওয়া যেতে পারে (আমি সেই শেলের সাথে খুব বেশি পরিচিত নই)।


আমি tcsh এর সাথেও পরিচিত নই, তবে আমার মনে হয় আপনি যে পৃষ্ঠাটি দেখিয়েছেন তা zsh উইজেট ব্যবহার করে (zle সহ)। আমি মনে করি না যে অন্যান্য শাঁসগুলির এটি আছে তবে তারা যদি তা করে তবে তা অবশ্যই কৌশলটি করবে।
ব্রায়ানএইচ

1

এই সঠিক সমস্যাটি যে কারও কাছে (আমার মতো): আমি স্ট্যাকওভারফ্লোতে একটি সমাধান পেয়েছি । স্পষ্টতই রিডলাইনে এটির জন্য দেশীয় সমর্থন রয়েছে, সুতরাং আপনি কেবল আপনার নিম্নলিখিতটিতে যুক্ত করতে পারেন ~/.inputrc:

set show-mode-in-prompt on

এবং প্রকৃত অক্ষর ব্যবহার কাস্টমাইজ করতে:

set vi-ins-mode-string "custom-ins"
set vi-cmd-mode-string "custom-cmd"

0

Tcsh সহ কমান্ড-লাইন সম্পাদনা

কমান্ড লাইন সম্পাদনা করার জন্য
দুটি সর্বাধিক ব্যবহৃত দুটি পাঠ্য সম্পাদক, ইম্যাকস এবং vi এর উপর ভিত্তি করে দুটি প্রধান পদ্ধতি রয়েছে ।

সঙ্গে ষষ্ঠ বাইন্ডিং, আপনি মধ্যে স্যুইচ আবশ্যক সন্নিবেশ এবং কমান্ড মোড;
প্রতিটি মোডে বিভিন্ন কমান্ড কার্যকর হয়।

vi মোডে দুটি সাবমোড রয়েছে, সন্নিবেশ এবং কমান্ড মোড।

  • ডিফল্ট মোড is োকানো হয়
  • আপনি টিপে মোডের মধ্যে টগল করতে পারেনEsc
  • বিকল্পভাবে, কমান্ড মোডে,
    'a' (অ্যাপেন্ড) বা 'আই' (সন্নিবেশ) টাইপ করলে আপনাকে সন্নিবেশ মোডে ফিরিয়ে আনবে

ইতিমধ্যে উপরে লিঙ্কযুক্ত tcshকাস্টমাইজেশন পৃষ্ঠায় আরও নোট ।


2
আপনার লিঙ্কগুলি কপিরাইটযুক্ত ও'রিলি বইগুলিতে যায় ...
ব্রায়ানএইচ

0

আমার ঠিক একই সমস্যা ছিল এবং দুর্ঘটনাক্রমে সমাধান খুঁজে পেয়েছি। যদিও এই থ্রেডটি পুরাতন, তবুও আমি এমন কোনও ওয়েবসাইট খুঁজে পাই নি যে কোনও সমাধান প্রস্তাব করেছে, তাই আমি ধরে নিচ্ছি যে এই থ্রেডটিতে পোস্ট করা ঠিক আছে।

আপনার টার্মিনাল প্রোগ্রাম বা শেলের সেটিংস পুনরায় সেট করুন। আমি বর্তমানে পুটি ব্যবহার করছি, এবং আমি কেবলমাত্র আমার সংরক্ষিত সংযোগের জন্য আমার সংরক্ষিত সেটিংস মুছে ফেলেছি এবং একটি সংরক্ষিত সেশনটি পুনরায় তৈরি করেছি। কবজির মতো কাজ করেছেন।

আশাকরি এটা সাহায্য করবে!


0

দয়া করে আমার উত্তর দেখতে তাই । ব্যাশ 4.4 / Readline 7.0 এই কার্যকারিতা জন্য সমর্থন যোগ করা হবে, এবং অন্তর্বর্তী আমি patched ব্যাশ 4.3 / Readline 6.3 সংস্করণ প্রকাশিত GitHub

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