ইম্যাক্স থেকে ওএস এক্স ক্লিপবোর্ডে পাঠ্য অনুলিপি করুন


25

আমি যখন সাধারণ জিইউআই মোডের পরিবর্তে কোনও টেক্সট টার্মিনালে ইম্যাক্স চালনা করি, তখন আমি কোনও অঞ্চলের শুরুটি সক্রিয় করে ইমাসে অনুলিপি করতে পারি C-SPC, এবং তারপরে আমি যা চাই তা নির্বাচন করতে পারি এবং তারপরে আমি কী করতে পারি M-w

কোনও অঞ্চলকে এইভাবে অনুলিপি করার কোনও উপায় কী কোনও ওএসএক্স ক্লিপবোর্ডে এটি কোনও ওয়েব পৃষ্ঠায় (এটি স্পষ্টতই তার জিইউআই মোডে ইম্যাকস চালানো ছাড়া) পেস্ট করার জন্য পাওয়া যায়?

আমি এটি করতে আলাদা শর্টকাট তৈরি করতে আগ্রহী না এবং আদর্শভাবে এটির জন্য কোনও মডিউল ইনস্টল করার প্রয়োজন হবে না।

আমি এই পোস্টটি দেখেছি এবং গৃহীত উত্তরটি চেষ্টা করেছি তবে এটি উপরে প্রত্যাশা মতো কাজ করবে বলে মনে হচ্ছে না।

অন্য কোন ধারণা?


বাবু, প্রশ্নটি প্রায় 3 বছরের পুরানো এবং এর উত্তর দেওয়া হয়েছে
গাল্ডার জামারিয়েও

উত্তর:


33

ইমাস থেকে ওএস এক্স ক্লিপবোর্ডে অনুলিপি করুন :

অঞ্চল নির্বাচন করুন M-| pbcopy RET

ওএস এক্স ক্লিপবোর্ড থেকে ইমাক্সে আটকান :

C-u M-| pbpaste RET (বর্তমান অঞ্চলটি বিদ্যমান থাকলে প্রতিস্থাপন করে)


ব্যাখ্যা:

M-|চলমান shell-command-on-region, যা নামের হিসাবে বর্তমান অঞ্চলটিকে শেল কমান্ডে পাইপ দেয়। C-u M-|একই কাজ করে তবে বর্তমান অঞ্চলটি প্রতিস্থাপন stdoutকরে কমান্ড চালানো হচ্ছে।

pbcopyএবং pbpasteসিস্টেম ক্লিপবোর্ড অ্যাক্সেসের জন্য ওএস এক্স ইউটিলিটিগুলি।


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

20

নিম্নলিখিতটি এখানে থেকে অনুলিপি করা ঠিক কাজ করে

(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)

শব্দকোষটি এখানে পেছনের দিকে মনে হচ্ছে
জর্ডন বিওনডো

1
অশুভ-মোডের সাথে, এটি ভিমিশ পাস্টিং আচরণটি ভেঙে দেয়
ফেলিক্স ডি

@ ফেলিক্সড .: xclip-modeএকই সমস্যাতে ভুগছেন?
স্টিফান

এটি Emacs26 তে ভাঙ্গা মনে হচ্ছে যখন মাল্টিবাইট অক্ষরগুলি অনুলিপি করা এবং আটকানো হয়েছে, যেমন emacs.stackexchange.com/questions/50485/…
মাইলজেজে

9

আপনি যদি ইমাসকে "সাধারণ উপায়" ব্যবহার করেন (যেমন একটি জিইউআই অ্যাপ্লিকেশন হিসাবে), তবে এটি ইতিমধ্যে ডিফল্টরূপে করা উচিত। আপনি যদি টার্মিনাল এমুলেটরের অভ্যন্তরে ইমাস ব্যবহার করেন, তবে এটি ডিফল্টরূপে কীভাবে করা যায় তা জানে না তবে আপনি xclipজিএনইউ ইএলপিএ থেকে প্যাকেজটি ইনস্টল করতে পারেন এবং তারপর xclip-modeজিএনইউ / লিনাক্স এবং উভয় ক্ষেত্রে এটি করার পদ্ধতিটি ইম্যাক্সকে সক্ষম করতে পারে enable ওএসএক্স।


কি xclipদিয়ে ওএসএক্স কাজ করে? আমি সেখানে যা দেখেছি,
এগুলি

1
xclip.elপ্যাকেজ ব্যবহার করতে বাড়ানো হয়েছে pbpaste
স্টিফান

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

আপনি কি এটি একটি বাগ হিসাবে রিপোর্ট করতে পারেন (সরাসরি আমার কাছে বা মাধ্যমে M-x report-emacs-bug?
স্টিফান

3

স্টিফান যেমন বলেছিল, গ্রাফিকাল ইমাক্স অ্যাপ্লিকেশনগুলির এটি ডিফল্টরূপে করা উচিত।

একটি টেক্সট টার্মিনালে, অন্য বিকল্পটি হ'ল এই জাতীয় ফাংশন ব্যবহার করা:

(defun pbcopy ()
  (interactive)
  (let ((deactivate-mark t))
    (call-process-region (point) (mark) "pbcopy")))

(defun pbpaste ()
  (interactive)
  (call-process-region (point) (if mark-active (mark) (point)) "pbpaste" t t))

(defun pbcut ()
  (interactive)
  (pbcopy)
  (delete-region (region-beginning) (region-end)))

যখন এটি না করে বাদে। 20 বছর পরে, ইমাসগুলিতে একই পিবি .... আমি সত্যিই চাই যে কোনও সাধারণ এবং বুদ্ধিমান ভিত্তি ছিল, কোথাও পাথর স্থাপন করা হয়েছিল
নিকোলাস

1

এখানে একটি সহজ এলিজপ ফাংশন আপনি নিজের .emacs ফাইলটিতে রাখতে পারেন যা আপনি ক্লিপবোর্ডে থাকা বাফারের সামগ্রীগুলি অনুলিপি করে। আপনাকে কিছু নির্বাচন করতে হবে না, এটি সবগুলি অনুলিপি করে। কোডটি সংক্ষিপ্ত এবং বেশ স্ব-বর্ণনামূলক।

(defun xclip ()
(interactive)
(shell-command (concat "cat " (buffer-file-name (window-buffer (minibuffer-selected-window))) " | pbcopy")))

আপনি ইমাস লোড বা পুনরায় লোড করার পরে এটিকে এমএক্স এক্সক্লিপ দিয়ে কল করুন।
জুমার

ওপি পুরো বাফারটি ক্লিপবোর্ডে অনুলিপি করতে বলেনি, সুতরাং এটি যা বলেছিল তা করে না। বাকী হিসাবে, এটি অন্যরা ইতিমধ্যে যা বলেছে তার কেবল সদৃশ বলে মনে হচ্ছে।
স্টিফান

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

0

চেক আউট clipboard-kill-regionএবং clipboard-yank। এগুলি এসেছে menu-bar.el

একবার কোনও অঞ্চল হাইলাইট হয়ে গেলে, আপনি অঞ্চলটি আপনার পেস্ট বাফার এবং সিস্টেম ক্লিপবোর্ড উভয়কেই হত্যা করতে ক্লিপবোর্ড-কিল-অঞ্চল ব্যবহার করতে পারেন। ক্লিপবোর্ড-ইয়াঙ্ক বর্তমানে সিস্টেম ক্লিপবোর্ডে যা আছে তা "আটকান"।


আপনার উত্তরটি প্রসারিত করুন।
ড্যান

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

@ গালদারজামারেও এটি ইমাসে আমার জন্য কাজ করে এবং আমি ওএসএক্সে আছি।
বিটপস

0

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

(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))))

----> নতুন কোড

  (defun clipboard-on ()
    (interactive)
    (setq interprogram-cut-function 'paste-to-osx)
    (setq interprogram-paste-function 'copy-from-osx))
  (defun clipboard-off ()
    (interactive)
    (setq interprogram-cut-function 'gui-select-text)
    (setq interprogram-paste-function 'gui-selection-value))
  (global-set-key (kbd "C-c C-p") 'clipboard-on)
  (global-set-key (kbd "C-c C-y") 'clipboard-off))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.