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


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.