ইম্যাকডেমন এবং ম্যাকের ইম্যাকস্ক্লিয়েন্ট


25

ওএস: ওএস এক্স 10.9.5, ম্যাভেরিক্স

জিএনইউ ইমাসস 24.3.1 (x86_64-আপেল-ডারউইন 13.1.0, কার্বন সংস্করণ 1.6.0 অ্যাপকিট 1265.19) রাইনার্স-ম্যাকবুক-প্রো-3. স্থানীয়

আমি মাধ্যমে Emacs ইনস্টল homebrew থেকে railwaycat এবং এটি চমত্কারভাবে কাজ করে - কোন অভিযোগ। আমি টার্মিনালে ইম্যাক ব্যবহার করি না এবং আমি সাধারণত অ্যাপ্লিকেশনটির মাধ্যমে এটি শুরু করি।

যেমনটি আমি বলেছি - আমি এখন পর্যন্ত খুশি।

আমার ঠিক একটি জিনিস সঠিক হয়ে উঠতে পরিচালিত হয়নি (যা আগে লিনাক্সের অধীনে দুর্দান্তভাবে কাজ করেছিল) যা হ'ল:

  1. লগইন করার পরে ইম্যাকস ডেমন পান
  2. খোলার জন্য emacsclient ব্যবহার করে
  3. emacsdaemon বন্ধ করুন এবং লগঅফের উপর একটি ফাইল সংরক্ষণ করুন

কোনও কার্যকারী রেসিপি যা আমাকে এটি সেট আপ করতে সহায়তা করতে পারে?

যুক্ত তথ্য

লগইন করার পরে একটি ইমাস ডেমন শুরু করতে

আমি ব্যাশ কমান্ড কার্যকর করে একটি অটোমেটার অ্যাপ্লিকেশন তৈরি করেছি

/usr/local/bin/emacs --daemon

এবং এটি লগইন আইটেমগুলিতে যুক্ত করেছে যা দুর্দান্তভাবে কাজ করে।

টার্মিনাল থেকে ডেমন ব্যবহার করা হচ্ছে

আমি ব্যবহার করে ইমাস্যাক ডেমন ব্যবহার করতে পারি

emacsclient .bashrc

যা ইমাস টার্মিনাল সেশনে .bashrc খুলবে।

জিইউআই থেকে ব্যবহার করা

এখন প্রশ্নটি রয়ে গেছে: আমি কীভাবে এটি জিআইআই থেকে ব্যবহার করতে পারি?

আমি যেমন ইম্যামস্ক্লিয়েন্টটি বুঝতে পারি, ততক্ষণ আমি খোলার জন্য কোনও ফাইল নির্দিষ্ট না করে আমি একটি ইমামস্কিলিয়েন্টটি খুলতে পারি না।

আমি একটি এমাস্ক্লিওল জিইআইআই খুলতে চাই এবং সমস্ত ফাইল যা আগে খোলা ছিল তা খুলতে চাই ? এটা কি সম্ভব?

আমি জানতে পারি যে আমি ব্যবহার করতে পারি

emacsclient -c

টার্মিনালে আমি যা চাই তা করতে - তবে জিইউআইয়ের জন্য আমি কি একই কাজ করতে পারি?


এখানে "জিইউআই থেকে" অর্থ কী তা আমি বুঝতে পারি না। এর অর্থ "ফাইন্ডারে কোনও ফাইলে ডাবল ক্লিক করা" বা সম্পূর্ণ অন্য কিছু হতে পারে।
তারসিয়াস

অ্যাপ্লিকেশন লঞ্চার (উদাহরণস্বরূপ স্পটলাইটের মাধ্যমে) ব্যবহার করে
রেইনার

অ্যাপ্লিকেশন লঞ্চার ফাইলগুলি বাছাইয়ের অনুমতি দেয় (যা ফাইলের ধরণের জন্য পূর্বনির্ধারিত অ্যাপ্লিকেশন ব্যবহার করে খোলা হয়)। নাকি কেবল "অ্যাপস"? emacsclientযতক্ষণ না ওএস এক্স সম্পর্কিত কোনও অ্যাপ্লিকেশন নয়, কেবলমাত্র Emacs(এবং কেবল যদি এটি সেভাবে ইনস্টল করা থাকে তবে)। কেন আপনি কেবল একটি খোলা অ্যাপ্লিকেশন / উইন্ডো নির্বাচন করার জন্য সিস্টেম কী বাইন্ডিং ব্যবহার করবেন না? (ইমনস যদি ডেমন মোডে আরম্ভ হয় এবং এখনও কোনও ফ্রেম ("উইন্ডো") না থাকে তবে কাজ করবে না)।
তারসিয়াস

আমি ইমাকস্ক্লিয়েন্ট নামে একটি অ্যাপ সংজ্ঞায়িত করেছি যা ইমাস্ক্লিয়েন্টটি প্রবর্তন করে - সুতরাং ইমাসক্লিয়েন্ট অ্যাপ্লিকেশনটি সেখানে রয়েছে। আমি সম্ভবত একটি চলমান ইম্যাকস উদাহরণে স্যুইচ করতে পারি - তবে এটি উপরে বর্ণিত কর্মপ্রবাহের দিকে তাকানো বিন্দুটি ছাড়াও।
রেইনার

1
এই প্রশ্নটি এর উত্তরগুলির চেয়ে প্রায় বেশি সহায়ক :)
রায় ট্রুইলোভ

উত্তর:


6

আমি সত্যই Emacs.app সর্বদা চলতে আপত্তি মনে করি না, তবে আমি ঘটনাক্রমে ইমাস সার্ভারকে হত্যা না করে উইন্ডোটি বন্ধ করতে পারি না তা বিরক্তিকর ছিল। এমনকি যদি আপনি শেষ ফ্রেমটি হত্যার জন্য সত্যই চেষ্টা করেও এটি আপনাকে দেয় না: "একমাত্র দৃশ্যমান বা আইকনযুক্ত ফ্রেম মুছতে চেষ্টা করুন"। ... সুতরাং আমরা ঠকাই।

আপনি বন্ধ বোতামটি ক্লিক করে শেষ উইন্ডোটি বন্ধ করার চেষ্টা করার সময় এই সমাধানটি কেবল ইম্যাক্সকে (যেমন Command+ h) লুকায় ।

আপনার ইম্যাক্স থ্রি-এ কোথাও নিম্নলিখিতটি যুক্ত করুন:

(defadvice handle-delete-frame (around my-handle-delete-frame-advice activate)
  "Hide Emacs instead of closing the last frame"
  (let ((frame   (posn-window (event-start event)))
        (numfrs  (length (frame-list))))
    (if (> numfrs 1)
      ad-do-it
      (do-applescript "tell application \"System Events\" to tell process \"Emacs\" to set visible to false"))))

এবং "ব্যবহারকারী ও গোষ্ঠী> লগইন আইটেম" এ ইম্যাকস যুক্ত করুন এবং "লুকান" চেকবক্সটি ক্লিক করুন।

আপনার ইমাকস ইনিশকেও (start-server)কোথাও কল করা দরকার ।

আমি emacsclientপ্রথমে ইমাকগুলি আনার জন্য এই মোড়কটি ব্যবহার করছি :

#!/bin/sh
osascript -e 'tell application "Emacs" to activate'
exec emacsclient "$@"

সমস্যা:

  • ইম্যাকস সক্রিয় / অদৃশ্য করা সমস্ত উইন্ডো সামনে নিয়ে আসে । এটি কিছুটা বিরক্তিকর।
  • ডকে ইমাস আইকনটি ক্লিক করা এলোমেলোভাবে কখনও কখনও একটি নতুন উইন্ডো তৈরি করে। তবে সব সময় নয়.
  • টোডো: হতে পারে Command+ wশেষ ফ্রেমে ইমাকগুলিও আড়াল করবেন?
  • সম্পাদনা সহ নতুন: সমস্ত উইন্ডো হ্রাস করা হলে ডক আইকনটিতে ক্লিক করা স্বয়ংক্রিয়ভাবে সেগুলির একটিকে বড় করে না।

এটি ইমাসকে হ্রাস করার পরামর্শ দিচ্ছিল @ নোহামের উত্তরের ভিত্তিতে এবং এই উত্তরটি শেষ উইন্ডোটি বন্ধ করার চেষ্টা করে কীভাবে হুক করবেন তা ব্যাখ্যা করে।

সম্পাদনা করুন:

উত্সটি অনুসন্ধান করে, আমি "কী বাইন্ডিং"mac-apple-event-map পেয়েছি যার জন্য কল mac-ae-reopen-applicationmac-ae-reopen-applicationদৃশ্যমান এবং আইকনযুক্ত ফ্রেমগুলির জন্য যাচাই করে দেখা যাচ্ছে এবং অবশ্যই আমাদের লুকানো একটিটি মিস করতে হবে। এটি সম্ভবত একটি বাগ।

সহজ ফিক্সটি হ'ল আপনার ডিআই-তে কী বাঁধাই নিষ্ক্রিয় করা:

(define-key mac-apple-event-map [core-event reopen-application] nil)

এটি একটি নতুন মাইনর বাগটি প্রবর্তন করে: সমস্ত উইন্ডো হ্রাস করা হলে ডক আইকনটি ক্লিক করলে সেগুলির একটি স্বয়ংক্রিয়ভাবে সর্বাধিকতর হয় না। সঠিক mac-ae-reopen-applicationফিক্সটি আবার লিখতে হবে তবে আমি ইম্যাকস এবং এলিসপ সবেই জানি।


কেউ যদি এলোমেলো নতুন উইন্ডো (বুলেট পয়েন্ট টু) বন্ধ করতে পারে তা যদি আমাকে জানায় তবে দয়া করে আমাকে বলুন। এটি সম্ভবত একমাত্র জিনিস যা এখনও এই সেটআপ সম্পর্কে আমাকে বগড করে।
প্যারেন্ট5446

@ প্যারেন্ট 5446, সম্পন্ন! প্রথম ফিক্সের মতো হ্যাকি তবে এটি কাজ করে।
বুড়ো

ধন্যবাদ! এর হ্যাক অংশটি আমাকে বিরক্ত করে না যেহেতু বেশিরভাগ সময় আমি কোনওভাবেই ডক থেকে ইমাক্স শুরু করি না।
প্যারেন্ট 5446

4

ইমাসকের ইয়ামামোটো মিতসুহারু বন্দর দুর্ভাগ্যক্রমে বহু-টিটি সমর্থন করে না (এই সমস্যাটি দেখুন )। এর অর্থ হ'ল আপনি টার্মিনাল থেকে ইম্যাকস ডেমনটি শুরু করতে পারবেন না এবং ইমিক্ল্লসেন্ট সহ একটি গুই উইন্ডো চালু করতে পারবেন না।

আমি যা করি তা এখানে: আমার init.el এ আমার আছে (server-start)এবং আমি লগইনে ইমাস্যাক.এপ চালু করি। এখানে বিরক্তি হ'ল এটি একটি উইন্ডো নিয়ে আসে যা আমাকে নিজেই হ্রাস করতে হবে।

আমার তখন emacscনিম্নলিখিতগুলির সাথে ডাকা বাশ স্ক্রিপ্ট রয়েছে

#!/bin/bash                                                                          
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
emacsclient -n -c

আমি তখন আপেলস্ক্রিপ্ট সহ একটি অ্যাপ্লিকেশন তৈরি করি যাতে নিম্নলিখিতটি থাকে

tell application "Emacs"
    activate
end tell
do shell script "~/bin/emacsc"

-nপতাকাটি ইমেলস্ক্লিনেন্টে পাস করা গুরুত্বপূর্ণ, অন্যথায় আপনি কেবল একবারে একটি ক্লায়েন্ট খোলার জন্য কেবল ইম্যাক্স অ্যাপ্লিকেশনটি ব্যবহার করতে সক্ষম হবেন। পাথের ভেরিয়েবল সেট করা নিশ্চিত করে যে ওএস এক্স ইম্যাক্সিলিয়েন্টের সঠিক সংস্করণটি খুঁজে পেতে পারে।

ইম্যাক্সকে "অ্যাক্টিভেট" করতে বলার বিষয়টি নিশ্চিত করে যে আপনার ক্লায়েন্ট উইন্ডোটি অগ্রভাগে চালু হবে।

যেমনটি আমি বলেছিলাম বিরক্তি হ'ল আপনাকে লগইন করার সময় ম্যানুয়ালি ইমাস উইন্ডোটি ছোট করতে হবে এবং তারপরে এটিকে ডকের কাছে বসে রাখতে হবে। এটি এড়ানোর একটি উপায় হ'ল লগইনের পরে ইম্যাকগুলি স্বয়ংক্রিয়ভাবে "লুকিয়ে রাখা" তবে তারপরে এটি সক্রিয় হওয়ার ফলে এটি লুকোচুরি থেকে যায়।


2

আমি নিশ্চিত নই যে রেলওয়ে কেট ইমাস কীভাবে নিয়মিত হোম-ব্রিউ সূত্রের চেয়ে আলাদা, তবে পরবর্তীটি দিয়ে আপনি ln -sfv /usr/local/opt/emacs/*.plist ~/Library/LaunchAgentsযা করতে যা emacs --daemonলগইন চলবে ।

Plist একটি এখানে-ডকুমেন্ট হিসেবে অন্তর্ভুক্ত সূত্র । আপনার এটি গ্রহণ করার দরকারের জন্য হ'ল লাইনে থাকা আপনার ইমাস অ্যাপের পথ পরিবর্তন করা <string>#{opt_bin}/emacs</string>

বিটিডাব্লু, আপনি যদি --cocoaবিকল্পটি ইনস্টল করেন তবে হোমব্রু ইম্যাক্সের সাথে একটি ওএস এক্স অ্যাপ্লিকেশন হিসাবে ইমাক্সও পেতে পারেন । ( brew linkappsএটির পরে আপনাকে লিঙ্ক /Applicationsতৈরি করতে , বা লিঙ্কটি নিজে তৈরি করতে হবে run


1

ম্যাক ডিমনগুলিতে 90% সময় লঞ্চ ব্যবহার করে পরিচালিত হয় । এটি তাদের ব্যবহারকারীর লগইন / লগআউট সহ অনেক ট্রিগারগুলিতে চালাতে পারে। লিংগন নামে একটি চমত্কার ম্যাক অ্যাপ্লিকেশন রয়েছে যা চালু এবং বিভিন্ন জিনিস পরিচালনা করার জন্য সম্পাদনা করা হয় is ইমাস উইকিটিতে এর কয়েকটি উল্লেখ রয়েছে, উদাহরণস্বরূপ এবং কনফিগার ফাইলও । তবে দেখে মনে হচ্ছে এটি আপনার উদ্বেগের সমাধান করে না, যেমন কীভাবে লগআউটে ডেমন বন্ধ করতে হয়।


0

এটির মতো একটি অ্যাপলস্ক্রিপ্ট অ্যাপ্লিকেশন তৈরি করুন:

tell application "Terminal"
do shell script "/usr/local/bin/emacsclient -c"
endtell

আপনাকে পাথটি সামঞ্জস্য করতে হতে পারে, বা আপনি পুরোপুরি পথ ছেড়ে যেতে সক্ষম হতে পারেন। আপনি যদি ডেমোনটি এখনও না চালিয়ে যায় তবে আপনি কিছু ফ্যানসিয়ার ব্যবহার করতে পারেন।


@ রাইনার এর সাথে কোন সাফল্য পেয়েছেন? আপনি ফ্যানসিয়ার বাস্তবায়ন সন্ধান করতেও পারেন যা ইমেলস্ক্লিয়েন্ট ব্যবহার করে এটির সাথে সংযোগ স্থাপনের আগে যদি প্রয়োজন হয় তবে ডিমনও শুরু করে। "অ্যাপ্লাস্ক্রিপ্ট ইম্যাকস্ক্লিয়েন্ট" গুগল অনুসন্ধানের সাথে ভাল ফলাফল দেয়।
তারসিয়াস

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