ইমেক্স থেকে অন্য অ্যাপ্লিকেশনটিতে কীভাবে টেক্সট অনুলিপি করবেন


113

আমি যখন ইমাসগুলিতে 22.1.1 (এক্স এর নিজস্ব উইন্ডোতে, কেবিতে, কুবুন্টুতে) পাঠ্যটি কাটা (কিল) করি, তখন আমি অন্য কোনও অ্যাপ্লিকেশনে এটি (ইয়াঙ্ক) পেস্ট করতে পারি না।


আমি আপনাকে এটি পড়ার পরামর্শ দিচ্ছি: কপিঅ্যান্ডপাস্টে-ইম্যাকস উইকি । এটি খুব ভাল ট্যুর সমস্যা ব্যাখ্যা করে।
এল বোরিটো

উত্তর:


122

আসুন এখানে আমাদের সংজ্ঞা সাথে সাবধান হন

  • একটি ইমাস কপি হ'ল আদেশ kill-ring-save(সাধারণত আবদ্ধ M-w)।
  • একটি সিস্টেম অনুলিপি যা আপনি সাধারণত C-cটিপানোর মাধ্যমে পান (বা অ্যাপ্লিকেশন উইন্ডোতে "সম্পাদনা>> অনুলিপি" নির্বাচন করে)।
  • একটি এক্স অনুলিপি "শারীরিকভাবে" মাউস কার্সারের সাহায্যে পাঠ্যকে হাইলাইট করে।
  • একটি ইমাস পেস্ট হ'ল আদেশ yank(সাধারণত আবদ্ধ C-y)।
  • একটি সিস্টেম পেস্ট হ'ল যা সাধারণত আপনি টিপানোর মাধ্যমে পান C-v(বা কোনও অ্যাপ্লিকেশন উইন্ডোতে "সম্পাদনা-পেস্ট" নির্বাচন করে)।
  • একটি এক্স পেস্ট "সেন্টার মাউস বোতাম" টিপছে (বাম এবং ডান মাউস বোতাম একসাথে টিপে সিমুলেটেড)।

আমার ক্ষেত্রে (জিনোমে):

  • ইমাকস এবং সিস্টেম কপি উভয়ই এক্স পেস্টের সাথে কাজ করে।
  • এক্স কপি সাধারণত ইমাস প্যাস্টের সাথে কাজ করে।
  • Emacs পেস্ট এবং সিস্টেম পেস্টের সাথে Emacs অনুলিপিটির সাথে সিস্টেমের অনুলিপি তৈরির কাজ করতে (setq x-select-enable-clipboard t)আপনাকে আপনার এতে যুক্ত করতে হবে .emacs। অথবা চেষ্টা করুন

    META-X set-variable RET x-select-enable-clipboard RET t

আমি মনে করি এটি বেশ আদর্শ আধুনিক ইউনিক্স আচরণ।

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


7
এটি বিভ্রান্তিকর পরিভাষা । স্ট্যান্ডার্ড এবং কম বিভ্রান্তিকর নাম, যার জন্য আপনি "এক্স কপি / পেস্ট" বলছেন তা হল এক্স প্রাথমিক নির্বাচন। আপনি যাকে "সিস্টেম কপি / পেস্ট" বলছেন তা হ'ল এক্স ক্লিপবোর্ড।
গিলস 'দুষ্ট হওয়া বন্ধ করুন'

ধন্যবাদ ... দেখে মনে হচ্ছে ভেরিয়েবলের নাম পরিবর্তিত হয়েছে কারণ এটি লেখা হয়েছিল। META-X set-variable RET select-enable-clipboard RET tবা(setq select-enable-clipboard t)
ডেভিড ম্যাককরি

95

আপনার .emacsফাইলে নিম্নলিখিতটি প্রবেশ করান :

(setq x-select-enable-clipboard t)

3
কথায় কথায় কথায় নয়, আপনাকে যা জানা দরকার তা বলে দেয়। দুর্দান্ত উত্তর।
জেসনফ্রুট

পুরোপুরি কাজ করে, আমি উবুন্টু 12.04 ব্যবহার করি। ধন্যবাদ
zhihong

7
দুর্দান্ত এবং সহজ, তবে এটি টার্মিনালে কাজ করে না। একই শর্টকাট টার্মিনাল এবং একটি ফ্রি উইন্ডো উভয়ই কাজ না করার কোনও কারণ নেই এবং নীচের কয়েকটি উত্তর একই সাথে উভয়কে সম্বোধন করে।
রাসেল স্টেওয়ার্ট

1
আমি যখন রান করি তখন আমি emacs -nwটার্মিনালের নিজস্ব শর্টকাট ব্যবহার করি; Shift-Ctrl-X টেক্সট কাটতে (হত্যা করতে হবে) এবং অনুলিপি করার জন্য Shift-Ctrl-C।
মেমিয়াস

4
আপনি যখন emacs -nwঅনুভূমিকভাবে বিভাজিত tmux উইন্ডোটির ভিতরে চলে তখন এটি কাজ করবে না ।
শ্রীধর রত্নকুমার

11

আমি আমার .emacs এ এটি আটকে রেখেছি:

(setq x-select-enable-clipboard t)
(setq interprogram-paste-function 'x-cut-buffer-or-selection-value)

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

বোনাস: আপনার সম্পূর্ণ .emacs পুনরায় লোড না করে ইম্যাক্সগুলিতে এই জিনিসগুলি পেতে, .emacs বাফারটিতে প্রতিটি অভিব্যক্তিটির নিকটতম পেরেনের পরে স্যার কার্সার দিয়ে Cx সিটি করুন।

শুভকামনা!


3
এই সমাধান একটি X উইন্ডো অর্থাত Emacs মধ্যে Emacs জন্য কাজ করে একটি উইন্ডো ভিতরে চলছে যদি আপনি কমান্ড লাইন কি আপনি প্রয়োজন Emacs দৌড়াচ্ছে হল: stackoverflow.com/questions/5288213/...
elviejo79

Symbol’s function definition is void: x-cut-buffer-or-selection-value
এল্পার

10

ইমাসে অনুলিপি এবং পেস্ট করার অসুবিধা হ'ল আপনি এটি অভ্যন্তরীণ হত্যা / ইয়াঙ্ক থেকে স্বাধীনভাবে কাজ করতে চান এবং আপনি এটি টার্মিনাল এবং গুই উভয় ক্ষেত্রেই কাজ করতে চান। টার্মিনাল বা গুই উভয়ের জন্য বিদ্যমান শক্তিশালী সমাধান রয়েছে তবে উভয়ই নয়। এক্সসেল ইনস্টল করার পরে (উদাঃ sudo apt-get install xsel), আমি তাদের একত্র করার জন্য অনুলিপি এবং পেস্ট করার জন্য এখানে যা করছি:

(defun copy-to-clipboard ()
  (interactive)
  (if (display-graphic-p)
      (progn
        (message "Yanked region to x-clipboard!")
        (call-interactively 'clipboard-kill-ring-save)
        )
    (if (region-active-p)
        (progn
          (shell-command-on-region (region-beginning) (region-end) "xsel -i -b")
          (message "Yanked region to clipboard!")
          (deactivate-mark))
      (message "No region active; can't yank to clipboard!")))
  )

(defun paste-from-clipboard ()
  (interactive)
  (if (display-graphic-p)
      (progn
        (clipboard-yank)
        (message "graphics active")
        )
    (insert (shell-command-to-string "xsel -o -b"))
    )
  )

(global-set-key [f8] 'copy-to-clipboard)
(global-set-key [f9] 'paste-from-clipboard)

কারণ আমি ত্রুটি পেয়েছি কারণ প্যারাম নেই। আমাকে প্রথম লাইনটি "(অনুলিপি-অন-ক্লিপবোর্ডে) পরিবর্তন করতে হবে" (ডিফুন অনুলিপি-থেকে-উবুন্টু (পাঠ্য ও alচ্ছিক পুশ) "। এটি আমার পক্ষে কাজ করে: ডি
রেনাটো ক্যাসিনো

এটি কাজ করে তবে পেস্ট অপারেশন বেশ ধীর গতির, এটি কি নেটওয়ার্কে বাস্তব হতে পারে?
Alper

7

আমি ইম্যাক্স দ্বারা ধরে নিয়েছি আপনি এক্স এর অধীনে ইমাকস অর্থ (অর্থাত্ টার্মিনাল উইন্ডোর অভ্যন্তরে নয়)।

দুটি উপায় আছে:

  1. (শুধুমাত্র ইউনিক্স ওএসের ক্ষেত্রে প্রযোজ্য) আপনার মাউস দিয়ে পছন্দসই পাঠ্যটি হাইলাইট করুন (এটি এটি এক্স ক্লিপবোর্ডে অনুলিপি করে) এবং তারপরে পেস্ট করতে মিডল ক্লিক করুন।
  2. পছন্দসই পাঠ্যটি হাইলাইট করুন এবং তারপরে "এমএক্স ক্লিপবোর্ড-কিল-রিং-সেভ" (নোট আপনি এটি একটি সহজ কীতে আবদ্ধ করতে পারেন)। তারপরে আপনার পছন্দসই অ্যাপে কেবল "সম্পাদনা-> আটকান"।

ক্লিপবোর্ড অপারেশন উপলব্ধ:

  • ক্লিপবোর্ড-কিল-রিং-সেভ - ইমাস থেকে ক্লিপবোর্ডে নির্বাচন অনুলিপি করুন
  • ক্লিপবোর্ড-কিল-অঞ্চল - ইমাক থেকে ক্লিপবোর্ডে নির্বাচন কাটা
  • ক্লিপবোর্ড-ইয়াঙ্ক - ক্লিপবোর্ড থেকে ইমাক্সে পেস্ট করুন

7

এখানে একটি ইমাসউইকিউ নিবন্ধ রয়েছে যা এক্স এর অধীনে অনুলিপি এবং আটকানো এবং কীভাবে এটি কাজ করতে কনফিগার করা যায় সে সম্পর্কে কিছু বিষয় ব্যাখ্যা করে।


অনুলিপি এবং পেস্ট করার জন্য একটি ইমাস উইকি প্রবেশ রয়েছে। এটা যে খারাপ।
নিকোলাস

4

এটি M-wম্যাক ওএসএক্স- এ কাজ করে। আপনার .emacs ফাইলটিতে কেবল যুক্ত করুন।

(defun copy-from-osx ()
   (shell-command-to-string "pbpaste"))
(defun paste-to-osx (text &optional push)
   (let ((process-connection-type nil))
      (let ((proc (start-process "pbcopy" "*Messages*" "pbcopy")))
         (process-send-string proc text)
         (process-send-eof proc))))

(setq interprogram-cut-function 'paste-to-osx)
(setq interprogram-paste-function 'copy-from-osx)

উত্স https://gist.github.com/the-kenny/267162


1

উপরে @ রাসেলস্টয়ার্টের উত্তর দ্বারা অনুপ্রাণিত নীচের কোডটি এক্স-প্রাইমারি এবং এক্স-সেকেন্ডারির ​​জন্য সমর্থন যোগ করে, একটি খালি অঞ্চলের কেসটি প্রতিস্থাপনের region-active-pসাথে প্রতিস্থাপন use-region-pকরে, xsel ইনস্টল না করা থাকলে নিঃশব্দে ফিরে আসে না (একটি ত্রুটির বার্তা দেয়), এবং একটি "কাটা" ফাংশন (ইমাসস সি, উইন্ডোজ সিক্স) অন্তর্ভুক্ত করে।

(defun my-copy-to-xclipboard(arg)
  (interactive "P")
  (cond
    ((not (use-region-p))
      (message "Nothing to yank to X-clipboard"))
    ((and (not (display-graphic-p))
         (/= 0 (shell-command-on-region
                 (region-beginning) (region-end) "xsel -i -b")))
      (error "Is program `xsel' installed?"))
    (t
      (when (display-graphic-p)
        (call-interactively 'clipboard-kill-ring-save))
      (message "Yanked region to X-clipboard")
      (when arg
        (kill-region  (region-beginning) (region-end)))
      (deactivate-mark))))

(defun my-cut-to-xclipboard()
  (interactive)
  (my-copy-to-xclipboard t))

(defun my-paste-from-xclipboard()
  "Uses shell command `xsel -o' to paste from x-clipboard. With
one prefix arg, pastes from X-PRIMARY, and with two prefix args,
pastes from X-SECONDARY."
  (interactive)
  (if (display-graphic-p)
    (clipboard-yank)
   (let*
     ((opt (prefix-numeric-value current-prefix-arg))
      (opt (cond
       ((=  1 opt) "b")
       ((=  4 opt) "p")
       ((= 16 opt) "s"))))
    (insert (shell-command-to-string (concat "xsel -o -" opt))))))

(global-set-key (kbd "C-c C-w") 'my-cut-to-xclipboard)
(global-set-key (kbd "C-c M-w") 'my-copy-to-xclipboard)
(global-set-key (kbd "C-c C-y") 'my-paste-from-xclipboard)

স্ট্যান্ডার্ড কীবাইন্ডিংগুলি ওভাররাইট না করার কোনও কারণ আছে?
পল ব্রোডারসেন

@ পল: 'স্ট্যান্ডার্ড কী-বাইন্ডিংস' 'ইমাস অভ্যন্তরীণ ক্লিপবোর্ডের' জন্য যা এক্স-ক্লিপবোর্ডের থেকে আলাদা। আমি 'ইম্যাক্স অভ্যন্তরীণ ক্লিপবোর্ড' শব্দটি উদ্ধৃত করেছিলাম কারণ ইমাসের পরিভাষা আলাদা - উপরে ক্রিস কনওয়ের দুর্দান্ত ব্যাখ্যাটি দেখুন।
ব্যবহারকারী1404316

1

আমি ম্যাক এবং লিনাক্স উভয়ই অনুলিপি করতে C-x C-wএবং C-x C-yঅনুলিপি করতে এখানে অন্যান্য উত্তরের উপর ভিত্তি করে নিম্নলিখিতটি ব্যবহার করি (যদি কেউ উইন্ডোজের সংস্করণ জানেন তবে এটি এটিকে যোগ করতে দ্বিধা বোধ করবেন)। নোট করুন যে লিনাক্সে আপনাকে আপনার প্যাকেজ ম্যানেজারের সাথে xsel এবং xclip ইনস্টল করতে হবে।

;; Commands to interact with the clipboard

(defun osx-copy (beg end)
  (interactive "r")
  (call-process-region beg end  "pbcopy"))

(defun osx-paste ()
  (interactive)
  (if (region-active-p) (delete-region (region-beginning) (region-end)) nil)
  (call-process "pbpaste" nil t nil))

(defun linux-copy (beg end)
  (interactive "r")
  (call-process-region beg end  "xclip" nil nil nil "-selection" "c"))

(defun linux-paste ()
  (interactive)
  (if (region-active-p) (delete-region (region-beginning) (region-end)) nil)
  (call-process "xsel" nil t nil "-b"))

(cond
 ((string-equal system-type "darwin") ; Mac OS X
  (define-key global-map (kbd "C-x C-w") 'osx-copy)
  (define-key global-map (kbd "C-x C-y") 'osx-paste))
 ((string-equal system-type "gnu/linux") ; linux
  (define-key global-map (kbd "C-x C-w") 'linux-copy)
  (define-key global-map (kbd "C-x C-y") 'linux-paste)))

1
প্রকৃতপক্ষে, আপনি xclipক্লিপবোর্ডের সামগ্রীটি পেস্ট করার পাশাপাশি ব্যবহার করতে পারেন xclip -o। এটি এমন লোকদের পক্ষে কার্যকর হতে পারে xclipযা অনুলিপি এবং আটকানো উভয়ই করতে অন্য প্রোগ্রাম ইনস্টল করতে চান এবং না।
আমিন ন্যারি

0

হুম, আপনি কোন প্ল্যাটফর্ম এবং ইমাসের কোন সংস্করণ ব্যবহার করছেন? উইন্ডোজ ভিস্টায় জিএনইউ ইমাস্যাক্স 22.1.1 এর সাথে এটি আমার পক্ষে ভাল কাজ করে।

যদি কোনও সুযোগে আপনি উইন্ডোজ থেকে লিনাক্সে রিয়েলভিএনসি দর্শকের মাধ্যমে এটি করছেন তবে নিশ্চিত হন যে আপনি প্রথমে লিনাক্স বাক্সে "vncconfig -iconic" চালাচ্ছেন .....


0

আমি সর্বদা দ্রুত পেস্ট ব্যবহার করি - ইমাকগুলিতে নির্বাচন টানুন, লক্ষ্য উইন্ডোর মাঝের মাউস বোতামটি চাপুন।

(কেটের রেফারেন্স থেকে, আমি এটি আপনি লিনাক্স বা অনুরূপ এবং সম্ভবত এক্স বা অন্য কোনও উপায়ে ইমাস ব্যবহার করছেন take


0

আপনি কোন প্ল্যাটফর্মটি ব্যবহার করছেন তা নির্দিষ্ট করতে চাইতে পারেন। এটি কি লিনাক্স, ইউনিক্স, ম্যাকোসেক্স, উইন্ডোজ, এমএস-ডসগুলিতে রয়েছে?

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

সুতরাং, দয়া করে নির্দিষ্ট করুন।


-1

আমি যা করি তা হ'ল একটি ভাল টার্মিনাল সরঞ্জাম (উইন্ডোজে পুটিটিওয়াই, লিনাক্সে কনসোল বা টার্মিনাল) যাতে অন্তর্নির্মিত অনুলিপি সুবিধা রয়েছে।

পুটিতে আপনি মাউসের সাহায্যে যে পাঠ্যটি চান তা হাইলাইট করুন এবং তারপরে এটি অন্য কোথাও পেস্ট করুন। একটি পিটিটিওয়াই উইন্ডোতে ডান-ক্লিক করা উইন্ডোজ অনুলিপি / পেস্ট বাফারের সামগ্রীগুলি আটকায়।

লিনাক্সের কনসোল বা টার্মিনালে আপনি যা চান তা হাইলাইট করুন তারপরে অনুলিপির জন্য Shift + Ctrl + C এবং পেস্টের জন্য Shift + Ctrl + V টিপুন।

ইমাক্সের উইন 32 সংকলনে, ইয়ঙ্কিং পাঠ্যটি এটি অনুলিপি / পেস্ট বাফারে রাখে .. বেশিরভাগ সময়।

ম্যাক ওএস এক্স-এ, অ্যাপল-কি কর্টকাটগুলি দুর্দান্ত কাজ করে, কারণ টার্মিনাল তাদের আটকে দেয় ps

কমান্ডলাইনে এটি করার সরাসরি কোনও উপায় নেই কারণ শেল প্রতিটি অ্যাপ্লিকেশনের জন্য একটি অনুলিপি / পেস্ট বাফার করে না। ব্যাশ করে একটি কপি বজায় রাখা, নিজেই জন্য বাফার পেস্ট, এবং, ডিফল্টরূপে / Emacs ^ K / ^ Y শর্টকাট হবে।

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