শেল / টার্ম-মোডে প্রম্পট এবং পূর্ববর্তী আউটপুটকে অযোগ্য করার কোন উপায়?


9

এটি স্বীকৃতভাবে একটি অতিপরিচয় প্রশ্ন।

যদিও ansi-termআমি প্রথমে এটি খুললে সঠিক আচরণ শুরু করে, কিছু কমান্ডের পরে এটি 'সম্পাদনযোগ্য' মোডে অবনমিত বলে মনে হয়, যেমন, যখন আমি C-a(লাইনটি শুরু করি ) অনুসরণ করি (লাইনটি C-kমেরে ফেলুন), এটি সম্পূর্ণ প্রম্পটটি মুছে দেয়।

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

আমি Emacs 24.4 এ zsh ব্যবহার করছি; ভার্চুয়াল বক্সের মাধ্যমে ওএস হ'ল এলএক্সডিইডি (উবুন্টু 14.04)।

(আদর্শভাবে আমি এখনও আমার কার্সারটি প্রায় ঘুরিয়ে দিতে সক্ষম হব ...)


1
আপনি কি কোনও সুযোগে "অদ্ভুত" OS এ আছেন? সাধারণত শেল-মোডে সিএ কমান্ডলাইন শুরু হওয়ার পরে প্রম্পটের পরে লাফ দেয় এবং দ্বিতীয় সিএ খুব প্রারম্ভে লাফ দিতে হয়। উইন্ডোজ এবং সোলারিসে (প্রাক্তন জীবনে) আমি সাধারণত দেখতে পেলাম যে সিএ খুব শুরুতে ঝাঁপিয়ে পড়েছিল, ম্যাকস, লিনাক্স ইত্যাদির ক্ষেত্রে এটি আমার জন্য প্রত্যাশা অনুযায়ী কাজ করে।
মার্ক অফলিক

@ মার্ক এ: আমি আমার বর্তমান সেট আপ সহ আরও কয়েকটি বিশদ অন্তর্ভুক্ত করতে মূল পোস্টটি আপডেট করেছি।
আইসম্যান

আনসি-টার্ম শোনার বর্ণিত আচরণ যেমন আপনি কোনও অদ্ভুত ডিফল্ট বা লাইন মোডে স্যুইচ করেছেন C-c C-j। ডিফল্টটি অনুসন্ধান করার চেষ্টা করুন বা এর সাথে চর মোডে স্যুইচ করুন C-c C-k
wasamasa

1
যেহেতু shell-mode/ term-modeযথাক্রমে থেকে / প্রাপ্ত হয় না comint-mode, আপনি এখানে একই সময়ে দুটি খুব আলাদা প্রশ্ন জিজ্ঞাসা করছেন। এই দুটি পৃথক প্রশ্নের মধ্যে বিভক্ত মন?
বেগুনি_রোজ

উত্তর:


16

কমিন্ট- বিভক্ত মোড (যেমন shell,, ielm...) ফিল্টার ফাংশন সমর্থন করে, নিম্নলিখিত স্নিপেট আউটপুট এবং কেবল পঠনযোগ্য প্রম্পট করে:

(setq comint-prompt-read-only t)

(defun my-comint-preoutput-turn-buffer-read-only (text)
  (propertize text 'read-only t))

(add-hook 'comint-preoutput-filter-functions 'my-comint-preoutput-turn-buffer-read-only)

যেমনটি ansi-term(যা কমেন্ট থেকে উদ্ভূত নয় ), এতে অপারেশনের দুটি পদ্ধতি রয়েছে char modeযা শেল এবং এটিতে চালিত সফ্টওয়্যারটির বাঁধাই যতটা সম্ভব যথাযথ থাকে এবং যা আপনার পছন্দমতোline mode বাফার সম্পাদনা করতে দেয়। কমান্ড আউটপুট সম্পাদনা করার জন্য আপনাকে সাধারণত char mode(আবদ্ধ হতে C-c C-k) থাকতে হবে এবং মাঝে মাঝে সীমাবদ্ধ (আবদ্ধ হতে ) যেতে হবে ।line modeC-c C-j


এটি সত্যিই সুন্দর ছিল, কিন্তু কাজ করা বন্ধ করে দিয়েছে ... :( আমার একটি কার্যনির্বাহী সমাধান রয়েছে যা যথেষ্ট বেশি কোড গ্রহণ করে → github.com/michalrus/dotfiles/commit/…
মিশাল

ডুনো, এখনও 25.2 তে আমার জন্য কাজ করে।
wasamasa

এটি এক অর্থে, আপনি এই পাঠ্যটি মুছতে পারবেন না, তবে আপনি সেই অপরিবর্তনীয় কোনওটির সাথে নতুন এবং আন্তঃলিখন সন্নিবেশ করতে পারেন।
মিশাল রুশ

1
আমি দেখছি, এটি বিশেষভাবে পরীক্ষা করে দেখেনি।
wasamasa

ওহো, যে কেউ খুঁজছেন তার জন্য আরও একটি পরিবর্তন। আমি এর আগে কিছু ফাঁক মিস করেছি। এটি আমার জন্য পুরোপুরি কাজ করে। github.com/michalrus/dotfiles/blob/…
মিশাল রুশ

2

মিশ্রিত termকরার সময় shell-mode, চলকটি comint-use-prompt-regexpমাঝে মধ্যে সেট হয়ে যায় বলে মনে হয়। এটি আপনার বর্ণনার মতো কিছুটা আচরণের কারণ ঘটায়: শেল-মোডে C-a লাইনের শুরুতে C-kযাবে, প্রম্পট সহ পুরো লাইনটি মেরে ফেলবে।

একটি সহজ ফিক্স হ'ল রিসেট comint-use-prompt-regexpকরা C-: (setq comint-use-prompt-regexp nil), শেল মোডকে পাঠ্য বৈশিষ্ট্যগুলি ব্যবহার করতে বাধ্য করা যা কার্সার আন্দোলন কীগুলি সম্পর্কে অবগত।

এটি জিএনইউ ইমাক্স ম্যানুয়ালটিতে কীভাবে কাজ করে তার একটি বর্ণনা রয়েছে: https://www.gnu.org/software/emacs/manual/html_node/emacs/Shell-Prompts.html


1

পরিবর্তনশীল কাস্টমাইজ করার চেষ্টা করুন comint-prompt-read-onlyথেকে t

এটি প্রভাবিত করবে shell-modeএবং অন্যগুলি থেকে প্রাপ্ত comint-mode, তবে তা নয় term-mode

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