কিভাবে একটি নতুন ফ্রেমে ইমাস বুকমার্ক খুলবেন?


3

ইমাক্সে আমি করতে C-x 5 C-fবা C-x 5 fএকটি নতুন ফ্রেমে একটি ফাইল সন্ধান করতে পারি । আমি অনুরূপ কিছু করতে চাই তবে বুকমার্কগুলির জন্য। আমি কীভাবে একটি নতুন ফ্রেমে বুকমার্কে ঝাঁপিয়ে উঠতে পারি?

উত্তর:


4

নেই bookmark-jump-other-windowযা আপনি ক্লোন এবং ফাংশন তৈরি করতে সংশোধন করতে পারেন my-bookmark-jump-other-frame:

(defun my-bookmark-jump-other-frame (bookmark)
  "Jump to BOOKMARK in another frame.  See `bookmark-jump' for more."
  (interactive
   (list (bookmark-completing-read "Jump to bookmark (in another frame)"
                                   bookmark-current-bookmark)))
  (bookmark-jump bookmark 'switch-to-buffer-other-frame))

সেই ফাংশনটিকে আপনার পছন্দের মূল জোরের সাথে আবদ্ধ করুন এবং এটি অন্য ফ্রেমে বুকমার্কগুলি খুলতে ব্যবহার করুন, যেমন:

(global-set-key (kbd "C-x C-5 b") 'my-bookmark-jump-other-frame)

নোট করুন যে my-bookmark-jump-other-frameএখনও প্রয়োজন bookmark.elএবং এর ফাংশন। আপনার সূচনা ফাইলটিতে উপযুক্ত ফাংশনগুলি লোড হয়েছে তা নিশ্চিত করুন:

(require 'bookmark)

অথবা

(autoload 'bookmark-completing-read "bookmark"
 "Prompting with PROMPT ...[rest of docstring (optional)]")

কাজ করে মনে হচ্ছে। আপনি কি দয়া করে সম্পূর্ণতার জন্য কোনও কী বাঁধতে উপযুক্ত উপায়ে অন্তর্ভুক্ত করতে পারেন? আমি অনুভব করেছি যে C-x C-5 bএটি উপযুক্ত বাঁধাই যেহেতু এটি আনবাউন্ড বলে মনে হচ্ছে না এবং এটি বুকমার্কের সাধারণ লাফের মতো C-x r b, এবং নতুন ফ্রেমে ফাইল সন্ধান করার মতো।
এনএন

আপনি যেমন ব্যবহার করতে পারেন (global-set-key (kbd "C-x C-5 b") 'my-bookmark-jump-other-frame)
u-punkt

আপনার সমাধানে আমি একটি সমস্যার মুখোমুখি হয়েছি। সেশন চলাকালীন অন্য কোনও উপায়ে বুকমার্কগুলি ব্যবহার করার আগে যদি আমি এটি ব্যবহার করার চেষ্টা করি তবে আমি "তালিকা: প্রতীকটির ফাংশন সংজ্ঞাটি শূন্য: বুকমার্ক-সমাপ্তি-পঠন"। তবে, যদি আমি অন্য কোনও উপায়ে বুকমার্কে ঝাঁপ দেয় তবে উদাহরণস্বরূপ C-x r bএবং তারপরে M-x my-bookmark-jump-other-frameএটি চেষ্টা করে। এটি কি সমাধান করা যায়?
এনএন

একটি (require 'bookmark)আপনার আরম্ভের ফাইলে করা উচিত। আপনি যদি প্রতিটি প্রারম্ভকালে শর্তহীনভাবে বুকমার্ক.এল লোড করতে না চান তবে আপনিও ব্যবহার করতে পারেন (autoload 'bookmark-completing-read "bookmark" "Prompting with PROMPT ... (plus rest of docstring from bookmark.el (optional))")
u-punkt

আপনি কি দয়া করে সেই তথ্য এবং autoloadউত্তরের সমাধানের সম্পূর্ণ বিবরণ অন্তর্ভুক্ত করতে পারেন ? কীভাবে এটি সম্পন্ন করবেন আমি তার সাথে অপরিচিত।
এনএন

0

আমি কোনও প্রম্পট ছাড়াই বুকমার্ক মেনু / তালিকার একটি বুকমার্ক থেকে একটি নতুন ফ্রেমে ঝাঁপিয়ে পড়তে চেয়েছিলাম ।

তবে ইউ-পাঙ্ক্টের ব্যাখ্যাটি এই নতুন ফাংশনটি তৈরি করতে সহায়ক। আমি বিদ্যমান বিদ্যমান কমান্ডটির সাথে সম্পর্কিত করেছি RETএবং এটিকে C-RETস্থানীয়ভাবে অব্যক্ত অবস্থায় মোডে আবদ্ধ করেছি ।

আপনি মূল কীটি এর সাথে বর্ণনা করতে পারেন C-h k RET। কোডটি সন্ধান করা bookmark-bmenu-this-windowশক্ত নয়, তবে নিম্নলিখিতটি লিখতে ইউ-পাঙ্ক্টের কৌশলটি ব্যবহার করুন:

(defun my-bookmark-bmenu-other-frame (&optional use-region-p) ; Bound to `C-RET' in bookmark list
  "Select this line's bookmark in a new frame.
See `bookmark-jump' for info about the prefix arg."
  (interactive "P")
  (bmkp-bmenu-barf-if-not-in-menu-list)
  (bookmark-bmenu-ensure-position)
  (let ((bookmark-name  (bookmark-bmenu-bookmark)))
    (bmkp-jump-1 bookmark-name 'switch-to-buffer-other-frame use-region-p)))

কী-বাইন্ডিংয়ের জন্য, লোড bookmark-bmenu-mode-mapনা হওয়া পর্যন্ত সংজ্ঞায়িত করা হয় না bookmark+, তাই আমি একটি eval-after-load,

(eval-after-load 'bookmark+ '(define-key bookmark-bmenu-mode-map 
                              (kbd "<C-return>") 
                              'my-bookmark-bmenu-other-frame))

সম্পাদনা

আপনার যদি bookmark+এমন কোনও কিছু প্রয়োজন হয় যা ইনস্টল না থাকা অবস্থায় কাজ করে তবে নিম্নলিখিত চেষ্টা করে দেখুন,

(when (locate-library "bookmark+")
  '(eval-after-load 'bookmark 'bookmark+))

(if (locate-library "bookmark+")
    ;; then
    (defun my-bookmark-bmenu-other-frame (&optional use-region-p) ; Bound to `C-RET' in bookmark list
      "Select this line's bookmark in a new frame.
See `bookmark-jump' for info about the prefix arg."
      (interactive "P")
      (bmkp-bmenu-barf-if-not-in-menu-list)
      (bookmark-bmenu-ensure-position)
      (let ((bookmark-name  (bookmark-bmenu-bookmark)))
        (bmkp-jump-1 bookmark-name 'switch-to-buffer-other-frame use-region-p)))
  ;; else
  (defun my-bookmark-bmenu-other-frame ()
    "Select this line's bookmark in other frame."
    (interactive)
    (bookmark-jump (bookmark-bmenu-bookmark) 'switch-to-buffer-other-frame))
  )

(eval-after-load 'bookmark '(define-key bookmark-bmenu-mode-map 
                              (kbd "<C-return>") 
                              'my-bookmark-bmenu-other-frame))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.