ইমাস প্রতিটি ওএস ক্লিপবোর্ডের সাথে এভিলের ভিজ্যুয়াল মোডে পেস্ট করে না


19

সেটআপ:

জিএইউআই সংস্করণ জিএনইউ ইমাকস 25.0.50.1 (x86_64-w64-mingw32) 2015-07-25 এর কেএইএল-তে EmacsW64 থেকে সংকলিত।

মেলপা থেকে ইভিলের সর্বশেষতম সংস্করণ ব্যবহার করে প্যাকেজ Evভিল

উইন্ডোজ 7 x64 বিট।

পরিস্থিতি:

খালি ইম্যাকস কনফিগারেশন দিয়ে পরীক্ষা করা হয়েছে কেবলমাত্র ilভিল সক্ষম দ্বারা। আমি উইন্ডোজ অ্যাপ্লিকেশন থেকে কিছু পাঠ্য অনুলিপি। তারপর আমি ভিতরে গিয়ে Emacs সেটিকে পেস্ট normal modeসঙ্গে p। আমি লেখাটি দেখতে পাচ্ছি।

তারপরে আমি উইন্ডোজ অ্যাপ্লিকেশনটিতে স্যুইচ করি, অন্য পাঠ্যটি নির্বাচন করি, এটি অনুলিপি করি। Emacs এ ফিরে যান, টেক্সটটি দৃশ্যত নির্বাচন করুন এবং ভিতরে আটকান visual mode। তবে অঞ্চলটির ভিতরে থাকা পাঠ্যটি উইন্ডোজ ক্লিপবোর্ডের পাঠ্যের সাথে প্রতিস্থাপন করা হবে না।

এটি ডিফল্ট ভিমের সাথে নয়। আমি কীভাবে এটি কনফিগার করতে পারি, যে দৃষ্টিভঙ্গি পাঠ্যটি সর্বশেষতম অনুলিপি অ্যাকশন দ্বারা প্রতিস্থাপিত হয়, এই ক্ষেত্রে উইন্ডোজ ক্লিপবোর্ডে?



1
আমি উভয় বিষয়ে সচেতন, তবে আমি মনে করি এটি ক্লিপবোর্ডের চেয়ে আরও খারাপ সম্পর্কিত related ক্লিপবোর্ড ফাংশনটি স্বাভাবিক মোডের ভিতরে দুর্দান্ত কাজ করে। এবং ভিজ্যুয়াল মোডের জন্য নয়।
রিনিফ্রোগার

আহ, আমি যা বলছি তা আমি দেখতে পাচ্ছি। এটির মূল্যের জন্য, এটি উইন্ডোজ-নির্দিষ্ট নয়: এটি লিনাক্সের ভিজ্যুয়াল অবস্থানে ওএস ক্লিপবোর্ড থেকেও কমবে না (ফেডোরা, যদি এটি গুরুত্ব দেয়)।
ড্যান

আপডেটের জন্য ধন্যবাদ, আমি শিরোনামটি ওএস-নির্দিষ্ট না করে পরিবর্তন করেছি।
রিনিফ্রোগার

এটি কি কেবল একটি সরল এভিল বাগ? কোন সুযোগ আপনি এটি রিপোর্ট করতে পারেন?
পাইথননট

উত্তর:


28

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

;; Imagine the following scenario.  One wants to paste some previously copied
;; (from application other than Emacs) text to the system's clipboard in place
;; of some contiguous block of text in a buffer.  Hence, one switches to
;; `evil-visual-state' and selects the corresponding block of text to be
;; replaced.  However, one either pastes some (previously killed) text from
;; `kill-ring' or (if `kill-ring' is empty) receives the error: "Kill ring is
;; empty"; see `evil-visual-paste' and `current-kill' respectively.  The
;; reason why `current-kill' does not return the desired text from the
;; system's clipboard is because `evil-visual-update-x-selection' is being run
;; by `evil-visual-pre-command' before `evil-visual-paste'.  That is
;; `x-select-text' is being run (by `evil-visual-update-x-selection') before
;; `evil-visual-paste'.  As a result, `x-select-text' copies the selected
;; block of text to the system's clipboard as long as
;; `x-select-enable-clipboard' is non-nil (and in this scenario we assume that
;; it is).  According to the documentation of `interprogram-paste-function',
;; it should not return the text from the system's clipboard if it was last
;; provided by Emacs (e.g. with `x-select-text').  Thus, one ends up with the
;; problem described above.  To solve it, simply make
;; `evil-visual-update-x-selection' do nothing:
;; (fset 'evil-visual-update-x-selection 'ignore)

শেষ বাক্য কিভাবে এসব নানা প্রশ্নের উত্তর হল " কনফিগার এটা যে চাক্ষুষরূপে টেক্সট সর্বশেষ কপি কর্ম দ্বারা প্রতিস্থাপিত পরার, এই ক্ষেত্রে উইন্ডোজ ক্লিপবোর্ড? "

(fset 'evil-visual-update-x-selection 'ignore)

উপভোগ করুন।


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

1
ম্যান এই বাগ! এটি আমাকে এই মাত্রায় বিরক্ত করেছিল যে আমি এই আচরণ থেকে মুক্তি পেতে কেবল ভিমে ফিরে এসেছি। আমি সর্বত্র অনুসন্ধান করেছি এবং দুষ্ট ট্র্যাকারকেও জানিয়েছি কিন্তু দুঃখের সাথে আমার সমস্যার বিষয়ে কেউ সাড়া দেয়নি। আলেকজান্ডার, আপনি আমার নায়ক!
ডিভিসিআরএন

1
চমৎকার! এটি স্পেসম্যাক্সে একটি ডিফল্ট হওয়া উচিত।
justingordon

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