تعریف کردن کی بایندیگ برای فعال کردن یک mode در Emacs

سلام به همه دوستان ایمکسی و غیر ایمکسی

من میخوام توی ایمکس فارسی بنویسم و خب میدونم باید از toggle-input-method‍‍ استفاده کنم مشکل من اینجاست که هر میخوام این مد رو لود کنم باید \-c رو بزنم و بعد همfarsi-isiri-9147 رو وارد کنم . ولی من میخوام یک کی بایندینگ تعریف کنم که تماما اینکارو انجام بده
میدونم چطور برای یک مد میشه کی بایندیگ تعریف کرد ولی اینکه یک آرگومان هم بهش بدیم رو نمی دونم چطور باید انجام بدم
ممنون میشم کمکم کنین

هممم نیاز به هیچ کدوم از اینا نداری. همین که layout کیبورد رو عوض کنی می تونی فارسی بنویسی. اون فانکشنی که دادی برای کارهای پیچیده تر استفاده می شه یا زمانی که کیبوردت یه layout بیتشر نداره.

1 Like

خب باز برای استفاده کردن از چیزایی مثل C-n به مشکل میخورم

آها در اون صورت برای ست کردن کی بایندینگ باید از فانکشن global-set-key استفاده کنی. البته باید یه فانکشن خودت بسازی که بین layout هایی که می خوای toggle کنه. من برسم به کامپیوتر می تونم بیشتر کمکت کنم

1 Like

بعد از اینکه این mode فعال میشه ، میشه با c-\ بین فارسی و انگلیسی سوییچ میکنه من فقط میخوام که بتونم یه کی بایندینگ برای فعال کردنش ست کنم

برای مثال می تونی اینکارو کنی:

(defun set-layout ()
  (interactive)
  (activate-input-method 'farsi-isiri-9147))

(global-set-key (kbd "<f2>") 'set-layout)

این کد رو امتحان نکردم. کلید F2 رو اختصاص می ده به این فانکشن که layout رو ست می کنه

ادیت: سورس رو که نگاه کردم متوجه شدم که شما به activate-input-method نیاز داری

1 Like

سمیرجان یه دنیا ممنون

1 Like