ইম্যাক্স থেকে পিডিএফ খুলতে কোনও বাহ্যিক প্রোগ্রামকে ডিফল্ট উপায় হিসাবে কীভাবে ব্যবহার করবেন?


42

আমি যখন M-x find-fileপিডিএফ করি তখন এটি ইম্যাক্সে খোলা হয়। এটি দুর্দান্ত হলেও ইমাসের পিডিএফ ভিউয়ারটিতে আমার প্রয়োজনীয় অনেকগুলি বৈশিষ্ট্য নেই এবং আমি এর পরিবর্তে একটি বাহ্যিক প্রোগ্রামে পিডিএফ খুলতে পছন্দ করব। আমি পিডিএফগুলির জন্য ডিফল্ট ভিউয়ার হিসাবে কোনও বহিরাগত প্রোগ্রামটি ব্যবহার করতে ইম্যাক্সকে কীভাবে কনফিগার করব?

উত্তর:


34

ব্যবহার করে দেখুন openwith। নিম্নলিখিত কোডটি এটি সক্ষম করবে এবং আপনাকে পিডিএফগুলি খুলতে দেবে evince(আপনার প্রিয় পিডিএফ ভিউয়ারে পরিবর্তন করুন):

(require 'openwith)
(openwith-mode t)
(setq openwith-associations '(("\\.pdf\\'" "evince" (file))))

1
আমি অবাক হয়েছি যে তৃতীয় পক্ষের প্যাকেজটি সহজ কিছু করার জন্য প্রয়োজন। তবে এটি কাজ করে, আপনাকে ধন্যবাদ!
টমলসবার্গ

এটির দরকার নেই (ড্রয়ের উত্তর দেখুন) তবে এটি করা একটি দুর্দান্ত এবং পরিষ্কার উপায়। মনে রাখবেন যে এটি অন্য প্রোগ্রামগুলির সাথে যেমন কোনও সংগীত পাঠক (এমপিজি 123) আপনি যদি ব্যবহার করেন তবে এটির সাথে দ্বন্দ্ব হবে।
এহভিন্স

এই সমাধানে সমস্যা রয়েছে। দেখা যাচ্ছে যে আপনি যখন জগাখিচুড়ি করছেন তখন কিছু প্যাকেজ এটি পছন্দ করে না find-file। উদাহরণস্বরূপ, সংযুক্ত পিডিএফ (mu4e এর মাধ্যমে) এর সাথে ইমেল প্রেরণের ফলে সংযুক্ত পিডিএফটি বাহ্যিক সম্পাদকগুলিতে খোলা হবে এবং ব্যর্থতা প্রেরণ করা হবে ( বিশদের জন্য এখানে দেখুন)।
টমলসবার্গ

1
@ টমলসবার্গ: ইমেল সংযুক্তি এবং সেই বিশেষ ব্যবহারের ক্ষেত্রে সমাধানের সাথে সমস্যা নিয়ে আলোচনা করে এই এসও থ্রেডটি দেখুন ।
ড্যান

আমি যে আদেশগুলি openwith-modeবন্ধ করে দিয়ে কাজ করে না সেগুলি পরামর্শ দেওয়ার জন্য আমি কিছুটা কোড লিখেছিলাম : এই টুকরোটি দেখুন
ওমর

21

আপনি যদি অনেকগুলি বৈশিষ্ট্য (হাইলাইট সন্ধান, নির্বাচন হাইলাইট করা, টিকা রচনা, বিষয়বস্তু ট্রি) সহ পিডিএফ দেখতে চান তবে পিডিএফ-সরঞ্জামগুলি ব্যবহার করুন । আপনি যেমন ডেমোতে দেখতে পাচ্ছেন , আমি হাইলাইট করে আইসার্ক ব্যবহার করতে পারি। ইমাকস এখন আমার প্রিয় পিডিএফ রিডার। আপনি বুকমার্ক (+) ব্যবহার করে নির্দিষ্ট পিডিএফ পৃষ্ঠা বুকমার্ক করতে পারেন।

সম্পাদনা : আপনি ব্যবহার করেন তাহলে helmও বহিস্থিত প্রোগ্রাম ব্যবহার করতে চান, helmইতিমধ্যে বহিরাগত ফাইল খোলার জন্য কর্ম মেনুতে এক হয়েছে: Open file externally C-c C-x. C-u to choose again। এটি এটি কী করে যে এটি আপনার সিস্টেমে উপলব্ধ সমস্ত প্রোগ্রামের একটি তালিকা সরবরাহ করে এবং আপনাকে একটি বেছে বেছে বেছে বেছে বেছে বেছে বেছে বেছে বেছে বেছে বেছে বেছে বেছে বেছে বেছে বেছে বেছে নিয়ে যায়; আপনি একবার নির্বাচন করলে, হেলম এটিকে মনে রাখে যতক্ষণ না আপনি C-uএকটি নতুন নির্বাচন করার জন্য উপসর্গ যুক্তি দিয়ে কমান্ডটি চালান ।


3
+1 আমি উল্লেখ করার জন্য আপনাকে যথেষ্ট ধন্যবাদ দিতে পারি না pdf-tools!! আশ্চর্যজনক প্যাকেজ। এটা ভালবাসা! আপনার
ডেমোটিও

পিডিএফ-সরঞ্জামগুলি স্ট্যান্ডার্ড প্যাকেজ ম্যানেজারের মাধ্যমে উপলব্ধ বলে মনে হচ্ছে না, এবং ইনস্টল পদ্ধতিটি ইমাসের সাথে কাজ করছে বলে মনে হচ্ছে না 24.4: /
ক্লাইমেন্ট

এটা আমার জন্য কাজ করে. তবে আপনাকে pdf-toolsরেপো ক্লোন করতে হবে এবং ইমাস লিস্প অংশটি ইনস্টল ও ব্যবহার করার আগে আপনার ইমাসরা বাইনারি দেখতে পাবে সেখানে সি অংশটি কম্পাইল করে ইনস্টল করতে হবে।
আপনি

পিডিএফ-সরঞ্জামগুলি আপনাকে কী শব্দ এবং বাক্যগুলি হাইলাইট করার অনুমতি দেয় (অর্থাত্ হলুদে) বা না?
ভাস্বর

11

আপনি সম্পর্কে জিজ্ঞাসা find-file। অন্যরা (যেমন, ড্যান) এ সম্পর্কে যা বলেছে তা ছাড়াও বিকল্পটিতে ফাইল টাইপের (যেমন এক্সটেনশন) এর সাথে যুক্ত একটি অ্যাপ্লিকেশন ব্যবহার করে ফাইলগুলি খোলার বিষয়ে জানার পক্ষে এটি উপযুক্ত dired-guess-shell-alist-user। এবং যদি আপনি এমএস উইন্ডোজ এ ইম্যাকস ব্যবহার করেন তবে উইন্ডোজ ফাইল অ্যাসোসিয়েশনগুলি ব্যবহার করে কোনও ফাইল কীভাবে খুলতে হবে তা জানা সার্থক।

dired-guess-shell-alist-userআপনি স্ট্যান্ডার্ড লাইব্রেরি লোড করার পরে বিকল্প উপলব্ধ dired-x.el। পিডিএফ ফাইলের ডিফল্ট অ্যাসোসিয়েশনটি ভেরিয়েবলের মধ্যে সংজ্ঞায়িত করা হয় dired-guess-shell-alist-defaultএবং এটি প্রোগ্রাম xpdf(ইউএনআইএক্স এবং জিএনইউ / লিনাক্সে উপলব্ধ)। বিকল্প ব্যবহার dired-guess-shell-alist-userআপনি, উদাহরণস্বরূপ, এটি পরিবর্তে সংশ্লিষ্ট করতে পারবেন অ্যাডোবি অ্যাক্রোব্যাট রিডার সঙ্গে alist এই সমিতি যোগ করে: ("\.pdf$" . "AcroRd32.exe")

তারপরে আপনি কেবল ব্যবহার করে ডায়ার্ডে একটি পিডিএফ ফাইল খুলতে পারেন !। এটি "অনুমান" হিসাবে ডিফল্ট প্রোগ্রাম সরবরাহ করে, যা আপনি পুনরাবৃত্তি করে অ্যাক্সেস করতে পারেন M-n। সুতরাং !দ্বারা অনুসরণ M-nআপনি শেল কমান্ড দিতে হবে AcroRd32.exeযদি বিন্দু এফ ফাইল নামের উপর এবং যদি যে কমান্ড / প্রোগ্রাম regexp সঙ্গে যুক্ত করা হয় \.pdf$

ডায়ার্ড ছাড়াও, আপনি ফাইল অ্যাসোসিয়েশনগুলিকে dired-guess-shell-alist-userবুকমার্ক ফাইল হ্যান্ডলার হিসাবে ব্যবহার করতে পারেন , অর্থাত্ পিডিএফ ফাইল অ্যাসোসিয়েশন কোনও বুকমার্কের জন্য পিডিএফ ফাইলগুলিতে কার্যকর হতে পারে, যদি আপনি লাইব্রেরি বুকমার্ক + ব্যবহার করেন । এর বর্তমান মান dired-guess-shell-alist-userবিকল্পের ডিফল্ট মান হিসাবে ব্যবহৃত হয় bmkp-default-handlers-for-file-types, যা এটি নিয়ন্ত্রণ করে।

আপনি বিকল্পগুলি dired-guess-shell-alist-userএবং bmkp-default-handlers-for-file-typesকিছুটা অনুরূপ হিসাবে ভাবতে পারেন auto-mode-alist। তবে তারা বাফার মোডগুলিতে ম্যাপিংয়ের পরিবর্তে ফাইল-নামের ধরণগুলি ম্যাপ করে। এবং এগুলি তখনই কার্যকর হয় যখন আপনি নির্দিষ্ট আদেশগুলি ব্যবহার করেন।

আপনি যদি এমএস উইন্ডোজ ব্যবহার করেন তবে আপনি ডায়ার্ডে কোনও ফাইল খুললে বা বুকমার্কে "লাফিয়ে" যখন ব্যবহার করতে পারেন তার পরিবর্তে (বা এছাড়াও) বিদ্যমান উইন্ডোজ ফাইল অ্যাসোসিয়েশনগুলির সুবিধা নিতে পারেন । এর জন্য আপনার লাইব্রেরি দরকার w32-browser.el

ডায়ার্ডের জন্য আপনার লাইব্রেরি ডায়ার্ড করা দরকার - ডায়ার্ডে উইন্ডোজ ফাইল অ্যাসোসিয়েশন ব্যবহার করা দেখুন । বুকমার্কগুলির জন্য, আপনার বুকমার্ক + প্রয়োজন - বুকমার্কিং ফাইলগুলি ইম্যাকের সাথে আপনি দেখতে পারবেন না এবং উইন্ডোজ ফাইল অ্যাসোসিয়েশনগুলি ব্যবহার করে বুকমার্কগুলি খোলার প্রয়োজন


3

আমি রানার ব্যবহার করছি । এখানে আমার কনফিগারেশন ফাইলের একটি অংশ রয়েছে

    (defun my:open-file-with-dired (file)
      "Ask dired how it would open FILE.
This code is useful if dired is well configured to open files
with external applications. I recommend using the `runner`
package to do so."
      (use-package dired-aux)
      (dired-do-async-shell-command
       (dired-guess-shell-command (format  "Open %s " file) (list file))
       0
       (list file)))

    (add-to-list 'org-file-apps '(t . (my:open-file-with-dired file)))
    (add-to-list 'org-file-apps '("\\.png\\'" . default))

0

কোনও প্লাগইন ছাড়াই এটি অর্জনের আমার উপায় নীচে। আমি উবুন্টু 16.04 এলটিএসের আওতায় ইমাস 25.3 চালাচ্ছি। যদি আপনার ওএস ম্যাকোস বা উইন্ডোজ হয় তবে আপনাকে অবশ্যই xdg-open এখানে সংজ্ঞায়িত প্রথম ফাংশনটি পরিবর্তন করতে হবে । আমি এই লিঙ্কটি একটি প্রাথমিক পয়েন্ট হিসাবে খুব সহায়ক বলে মনে করেছি।

(defun xdg-open (filename)
  (interactive "fFilename: ")
  (let ((process-connection-type))
    (start-process "" nil "xdg-open" (expand-file-name filename))))

(defun find-file-auto (orig-fun &rest args)
  (let ((filename (car args)))
    (if (cl-find-if
         (lambda (regexp) (string-match regexp filename))
         '("\\.pdf\\'" "\\.docx?\\'"))
        (xdg-open filename)
      (apply orig-fun args))))

(advice-add 'find-file :around 'find-file-auto)

উপরের কোডটি লোড হওয়ার পরে, আপনি যখন C-x C-fপিডিএফ এবং ওয়ার্ড ফাইলের জন্য চাপবেন তখন এটি সিস্টেম ডিফল্ট অ্যাপ্লিকেশন ব্যবহার করে স্বয়ংক্রিয়ভাবে ফাইলটি খুলবে।

আমি সত্যিই ইমাক্স দ্বারা প্রদত্ত পরামর্শ মেকানিজমটি পছন্দ করি, দেখুন (এলিস্প) পরামর্শদায়ক কার্যাদি । একটি সামঞ্জস্যপূর্ণ উপায়ে অস্তিত্ব ফাংশন পরামর্শ দিয়ে, আমি C-x C-fনতুন ফাংশন মত সাধারণ কী পুনরায় বাইন্ডিং এড়াতে ।

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