বিপরীত-আই-অনুসন্ধান কমান্ড (সিটিআরএল + আর) দিয়ে কীভাবে ফরওয়ার্ড-অনুসন্ধানের ইতিহাস?


12

রিডলাইন ম্যানুয়ালটিতে

# man readline

নিম্নলিখিত এবং পিছনে কীভাবে অনুসন্ধান করবেন তা নীচে বর্ণনা করা হয়েছে।

reverse-search-history (C-r)
Search backward starting at the current line and moving `up' through the history as necessary.  This is an incremental search.

forward-search-history (C-s)
Search forward starting at the current line and moving `down' through the  history  as  necessary.   This  is  an  incremental search.

আমি যখন সিটিআরএল + আর হিট করি এবং "অ্যাপ্ট-গেট" টাইপ করি, তখন ক্রমাগত সিআরটিএল + আর আলতো চাপ দিয়ে আমি একটি বিপরীত অনুসন্ধান-ইতিহাস করতে সক্ষম হয়েছি। তবে তারপরে আমি ctrl + s ট্যাপ করি এবং টার্মিনালটি এগিয়ে যায় না। আমি কি কিছু ভুল করছি?

এছাড়াও মেটা উপসর্গ "এম-" উপস্থাপন করে কী?

উত্তর:


15

ক্রমটি C-sটার্মিনাল ড্রাইভার থেকে নেওয়া হয়েছে, যেমন আপনি দেখতে পাচ্ছেন

stty -a | grep '\^S'

রিডলাইন দ্বারা ব্যবহারের জন্য সিকোয়েন্সটি মুক্ত করতে উদাহরণস্বরূপ, স্টপ টার্মিনাল ক্রমটি অন্য কয়েকটি সিকোয়েন্সে সেট করুন

stty stop ^J

অথবা এটি সম্পূর্ণরূপে মুছে ফেলুন

stty stop undef

এর পরে C-sপ্রদত্ত টার্মিনালে কাজ করবে।

এটি ~/.bashrcপ্রতিটি টার্মিনালে কাজ করার জন্য এটি সেট করুন ।

M-ক্রম মানে Altকী, যেমন ইতিমধ্যে লক্ষনীয়।


^ জে যেহেতু একটি ভাল পছন্দ stop, এটি অন্য কোনও কিছুর জন্য ব্যবহৃত হয় না
হবস

3

উপরের পরামর্শ অনুযায়ী আলাদা টিটিওয়াই 'স্টপ' চর নির্ধারণের পাশাপাশি, আপনি যদি এটির ব্যবহারের পরিকল্পনা না করেন তবে আপনি এটি সম্পূর্ণরূপে সরিয়ে ফেলতে পারবেন (আমি এর প্রবণতা করি না), এর মতো:

$ stty stop undef

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


এটি অনেক ভাল উপায়।
ড্যানিশচেউস্কি

1

ফরোয়ার্ড-অনুসন্ধানের ইতিহাস (সিএস) কাজ করে না (যদিও এটি ম্যান পৃষ্ঠায় রয়েছে)।

'এম-' আল্ট কী সংশোধককে উপস্থাপন করে।


1
C-sঅংশটি সঠিক না করে , আমার উত্তর দেখুন।
enzotib

0

দয়া করে ব্যবহার করবেন না:

stty stop ^J

কিন্তু

stty stop ^P

বা অন্য কিছু, যেমন ^Jএসএসএসের সাথে বড় সমস্যা তৈরি করে। (কেন যাই হোক আমি জানি না।) আমি লগ ইন করার পরে Enterএবং ব্যাকস্ল্যাশ কাজ করছে না। অথবা আমাকে টাইপ করতে হয়েছিল:

stty sane 
export TERM=linux

আমি টাইপ করতে চেয়েছিলেন আগে

ssh root@192...

সুতরাং

stty stop ^P

একই সাথে উভয় সমস্যার সমাধান করুন।


0

আপনি XON / XOFF প্রবাহ নিয়ন্ত্রণ অক্ষম করতে পারেন:

stty -ixon

আপনার ~ /। প্রোফাইল বা অনুরূপ, তারপরে Ctrl + S স্বীকৃত হবে।

উদাহরণ


0

বিপরীত অনুসন্ধান ব্যবহার করার সময় এগিয়ে যাওয়ার জন্য (Ctrl-R কমান্ড সহ):

  1. আপনার .bashrc ফাইলটি খুলুন:
    sudo gedit ~/.bashrc

  2. এই লাইনটি যুক্ত করুন ("f" অক্ষরটি সিস্টেমের দ্বারা ব্যবহৃত না হওয়া অন্যটির সাথে প্রতিস্থাপন করা যেতে পারে)

    bind '"\C-f": forward-search-history' 
    
  3. আপনার ফাইলটি বন্ধ করুন এবং আপনার .bashrc আপডেট করুন (বা অন্য কোনও টার্মিনাল খুলুন) কমান্ড সহ:
    source ~/.bashrcবা. ~/.bashrc

এখনই আপনি শর্টকাটের সাথে ইতিহাসে অগ্রবর্তী হতে পারেন: Ctrl + f

উবুন্টু 18.04 এলটিএসে কাজ করা


0

আমি ব্যবহার করেছি নোট

stty stop ^J
stty -ixoff

.bashrc এ সামনের অনুসন্ধান সক্রিয় করতে এবং বিরক্তিকর অক্ষম করতে "আউটপুট সিআরটিএল + এস টিপে সাসপেন্ড করা হয়েছে। কনসোল-এ" বার্তা শুরু করতে Ctrl + Q টিপুন " "এফ 4" শর্টকাট) যেভাবে আমাকে দু'বার সিআরটিএল + সি করতে হয়েছিল এমনকি এটি কাজ করতে করতে এবং স্বয়ংক্রিয় "সিডি" কমান্ডগুলি যেখানে গ্রাফিকভাবে নেভিগেট করার সময় ইনজেকশন দেওয়া হচ্ছে না।

সুতরাং আমি এখন পছন্দ:

stty stop undef
stty -ixon

এর একই প্রভাব রয়েছে, সমস্ত প্রত্যাশার মতো কাজ করে বলে মনে হয়;)

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