কী টিপে সঠিক `(কেবিডি“… ”) in সন্নিবেশ করার জন্য কোনও ফাংশন রয়েছে?


20

আমি kbdফাংশনটির জন্য মূল নামগুলি খুঁজতে বিরক্ত হয়েছি, কেবল কী টিপলে সঠিক কী নামটি স্বয়ংক্রিয়ভাবে প্রবেশ করার কোনও উপায় আছে?

সুতরাং উদাহরণস্বরূপ আমি এটি করতে কিছু চাই: আমি টাইপ করছি

(local-set-key |

আমি চালাচ্ছি magical-insert-kbd-command, f6 টিপুন এবং আমি পেয়েছি

(local-set-key (kbd "<f6>") |

উত্তর:


20

আপনি ঠিক কী জিজ্ঞাসা করছেন তা নিশ্চিত নয়। তবে C-h kকীটি হিট করার পরে আপনাকে ঠিক কী স্ট্রিংটি পাস করতে হবে তা দেখায় kbd। উদাহরণস্বরূপ, C-h k f6আপনাকে দেখায় <f6>

এখানে একটি আদেশ রয়েছে যা আপনি যা চান তা করেন, আমি অনুমান করি এবং ফলাফলটি এর সাথে আবদ্ধ করি C-c c:

(defun foo (key)
  (interactive "kKey: ")
  (insert (format "(kbd %S)" (key-description key))))

(global-set-key (kbd "C-c c") 'foo)

তারপরে টাইপ করুন:

(local-set-key C-c c

এটি আপনাকে একটি কী ব্যবহার করতে অনুরোধ করবে। আপনি যদি F6কীটি চাপান তবে আপনি এটি পান:

(local-set-key (kbd "<f6>") 

[@ হারাল্ডহানচ ওলসেনের পরামর্শ অনুসারে আপডেট হয়েছে: এতে পরিবর্তন "(kbd \"%s\")"হয়েছে".](kbd %S)"


পারফেক্ট, ধন্যবাদ! প্রধান জিনিসটি যা আমি অনুপস্থিত ছিল তা key-descriptionফাংশনটি অনুপস্থিত ।
শেফার্ড

তবে ওপি ঠিক বলেছেন যে কোনও ফাংশনটি কী-বাইন্ডিংকে স্বয়ংক্রিয়ভাবে কিল রিংয়ের মধ্যে রেখে দেয় এটি কার্যকর হবে।
ভাস্বর

1
@ উদ্দীপক: হু? ওপি কিলের আংটি সম্পর্কে কোথায় কিছু বলে ? এবং ঠিক সেই বাক্যে "কী-বাইন্ডিং" বলতে কী বোঝ? কী বাঁধাই কোনও স্ট্রিং নয়, যা kill-ringএতে থাকে। আপনি কি key-descriptionস্ট্রিং মানে ? না উপরের formatসেক্সপটির রিটার্ন ভ্যালু ? যাইহোক, আমি যে আদেশটি দিয়েছি সেটিকে কীভাবে সংশোধন করতে হবে সেগুলির স্পষ্ট হওয়া উচিত, এর মধ্যে যে কোনও একটি kill-ring(কেবল ব্যবহারের জন্য kill-new) যুক্ত করতে।
ড্র হয়েছে

"স্বয়ংক্রিয়ভাবে সন্নিবেশ করান।" যদি আমি সঠিকভাবে বুঝতে পারি তবে উপরের সমাধানটি কেবল কী-বাইন্ডিং (উদাহরণস্বরূপ kbd <M-return>) প্রদর্শন করে তবে এটি কোনও init ফাইলে সন্নিবেশ করে না। (আপনাকে কপি / পেস্টের অতিরিক্ত পদক্ষেপটি করতে হবে)) আমি ভুল বুঝেছি। আমার নিজের ব্যক্তিগত ব্যবহারের ক্ষেত্রে জন্য, আমি এটা দরকারী একটি keybinding জন্য সিনট্যাক্স অনুসন্ধান করার জন্য একটি উপায় আছে কঠিন বলে মনে হবে (যেমন সিনট্যাক্স হয় M-RETবা M-<return>হত্যা রিং / পিজবোর্ড যে স্ট্রিং স্থান বা কি?) এবং স্বয়ংক্রিয়ভাবে, যাতে আমি তখন পারা লাইনের মতো একটি লাইন লেখার সময় কী-বাইন্ডিংটি আমার init ফাইলে পেস্ট করুন (define-key map (kbd "<M-return>") 'org-return)
ভাস্বর

1
হ্যাঁ, আপনি ভুল বুঝেছেন। (কিন্তু এছাড়াও আছে কী-বাঁধাই sexp একটি টাইপো ছিল: আমি ব্যবহার করতে ভুলে গেছি kbdমধ্যে global-set-key। Sexp - এখন সংশোধন) কমান্ড foo(যা global-set-keyথেকে sexp শুশ্রূষা C-c c) একটি কী অনুক্রম এবং তারপর টিপে সার্চ, বর্তমান বাফার পর্যায়ে kbdএটির জন্য উপযুক্ত যৌনতা আপনি যদি নিজের আরআর C-c cফাইলটিতে ব্যবহার করেন (local-set-key , তারপরে, kbdএটি পড়ার কীটির জন্য আপনার প্রয়োজনীয় সেক্সপ সন্নিবেশ করিয়ে দেয়।
ড্র হয়েছে

7

আপনি যদি M-x local-set-keyআপনার কী-বাইন্ডিং ইন্টারেক্টিভভাবে করতে ব্যবহার করেন তবে আপনি C-x ESC ESC( repeat-complex-command) ব্যবহার করতে পারেন এমন একটি লিস্প এক্সপ্রেশন যা আপনার কনফিগারেশনে আটকে দিতে পারেন। (kbd ...)যদিও এটি সম্ভবত বন্ধুত্বপূর্ণ- স্টাইল বিবরণ ব্যবহার করবে না ।


ঝরঝরে। আমি define-keyযদিও ব্যবহার করার প্রবণতা বোধ করি, কীটি সংজ্ঞায়িত করার জন্য একটি ফাংশন কল করার জন্য একটি হুক সেট আপ করার চেয়ে কেবল কীটি সরাসরিভাবে সংজ্ঞায়িত করা সহজ বলে মনে হয়।
শেফার্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.