কনসোল এবং জিইউআইয়ের জন্য দুটি পৃথক ইমাস্যাক ডেমন শুরু করুন


14

সাধারণত আমি জিইউআই দিয়ে ইমাস শুরু করি এবং সাথে সাথেই একটি সার্ভার শুরু করি (server-start)। এখন আমি টার্মিনাল emacsclient -n <file>থেকে বা ফাইল ব্রাউজারের মাধ্যমে সহজেই আমার বিদ্যমান ইমাস সেশনে নথিগুলি খুলতে পারি ।

সময়ে সময়ে, যদিও আমি ব্যবহার করে আমার টার্মিনালের ভিতরে ইমাস চালাতে চাই emacsclient -t। গিট কমিট লগগুলি লেখার সময় বা খুব খুব ছোট কাজ সম্পাদন করার সময় এটি প্রায়শই ঘটে। এই দৃষ্টান্তগুলিতে, আমার থিম ফাইলটি জিএমআই এর ইম্যাকের লোড হওয়া অর্থ এই যে আমি টিটিওয়াই ইম্যাকের সাথে সুনির্দিষ্ট আমার কাস্টমাইজেশনগুলি পাই না।

আমি জানি যে আমি দৌড়াতে পারি

emacs -nw -q -l "some-custom-init-file.el"

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


1
আপনি কি আপনার কাস্টমাইজেশনের একটি উদাহরণ নির্দেশ করতে পারেন যা টিটিওয়াই এবং জিইউআই মোডের মধ্যে আলাদা?
stsquad

1
@ টেরেসকোয়াড সত্যিই সহজ একটি হ'ল আমি জিইউআই মোডে একটি বাম পাড় ব্যবহার করি, তবে যেহেতু টিটিওয়াই মোডে ফ্রিঞ্জের অস্তিত্ব নেই, তাই লাইন সংখ্যা এবং পাঠ্যের মধ্যে কোনও স্থান নেই। এটি (setq linum-format "%d ")টিটিওয়াই কাস্টমাইজেশন ফাইলের সাথে স্থির করা যেতে পারে । এছাড়াও, আমার রঙের থিমটি সর্বদা টিটিওয়াই মোডে অদ্ভুত দেখায়, তাই আমি অবশ্যই টিটিওয়াইয়ের জন্য আলাদা থিম বেছে নেব। এই মুহূর্তে আমার কাছে আসলে এতগুলি পার্থক্য নেই, তবে এখন যে আমি জানি যে আমার আলাদা সার্ভার থাকতে পারে, সেই তালিকাটি বাড়তে পারে।
নিসপিও

@ স্প্যানিও: আমি আপনাকে পরামর্শ দিচ্ছি M-x report-emacs-bugএবং টিটিওয়াই এবং জিইউআই ফ্রেমে বিভিন্ন মুখ থিম রাখার দক্ষতার মতো নতুন বৈশিষ্ট্যগুলির জন্য অনুরোধ করছি (আসলে কোনও থিম different বিভিন্ন ধরণের ফ্রেমের জন্য সম্পূর্ণ আলাদা রঙ নির্দিষ্ট করতে পারে, তাই আপনি আপনার থিমটিও সামঞ্জস্য করতে পারেন) । এই পৃথক মামলার জন্য বেশ কয়েকটি ডেমোন ব্যবহার করা কেবল ইমাসে আনুষঙ্গিক কার্যকারিতার অভাবের জন্য একমাত্র কাজ।
স্টিফান

উত্তর:


14

emacs --daemon=your-server-name -l "custom-init-file"একটি নতুন সার্ভার শুরু emacsclient -nw -s your-server-nameকরতে এবং টার্মিনাল থেকেই এটিতে সংযোগ স্থাপন করতে ব্যবহার করুন । ম্যানুয়ালটিতে সার্ভার হিসাবে Emacs ব্যবহারের বিভাগে আরও প্রাথমিককরণ বিকল্প রয়েছে।


এইটা কাজ করে! সার্ভারের ফাইলটি অনুসন্ধান এবং মুছে ফেলার পাশাপাশি কী কোনও সার্ভারকে মেরে ফেলার ভাল উপায় আছে?
নিসপিও

( কাস্টম -qinit.el
ডিআইডি

2
নেই emacsclient -s your-server-name -e "(kill-emacs)"কি আপনি চান? উপরেরগুলিতে কেবল ইম্যাক্সিলিয়েন্ট এবং ইওলস কল (kill-emacs)। আপনি প্রতিস্থাপন করতে পারে (kill-emacs)সঙ্গে (save-buffers-kill-emacs)হিসাবে ভাল।
বামসি

আমি টার্মিনাল এবং গুই ইমাস উভয় এবং স্বতন্ত্র কাস্টমাইজেশনের জন্য পৃথক কাস্টম ফাইল লোড করার জন্য একটি সাধারণ init.el ব্যবহার করতাম। তাই আমি-q
ভামসী

1
এই সমাধানগুলি মুটের সাথে 'emacsclient -t' ব্যবহার করার সময় এবং একটি পৃথক কর্মক্ষেত্রে, 'emacsclient -c' ব্যবহার করার সময় আমার একটি সমস্যাও স্থির করে। সোজা কথায়: 'ইম্যাকস্ক্লিয়েন্ট-ট' এর আগে 'ইম্যাকস্ক্লিয়েন্ট-সি' গুলি চালানোর সময় ডেমন ক্র্যাশ হচ্ছিল। আপনাকে ধন্যবাদ, ভামসি
বকাপের্তা-আইটি

9

@ বামসির উত্তর ছাড়াও, কেবলমাত্র একটি একক সার্ভারের সাথে পরামর্শ যুক্ত করে চালানোর সময় আপনি একই রকমের অনেকগুলি সুবিধা পেতে পারেন make-frame-command

উদাহরণস্বরূপ, টার্মিনালে চলাকালীন আমি পটভূমির রঙ হতে চাই black(যা মানচিত্রগুলি #202020) তবে আমি #202020গ্রাফিকাল মোডে ব্যবহার করতে চাই । আমি এটি দিয়ে প্রয়োগ করেছি:

(defadvice make-frame-command (after make-frame-change-background-color last activate)
  "Adjusts the background color for different frame types. 
Graphical (X) frames should have the theme color, while terminal frames should match the terminal color (which matches the theme color...but terminal frames can't directly render this color)"
    (if (display-graphic-p)
        (set-background-color "#202020")
      (set-background-color "black")))

আপনি এটি ব্যবহার করে প্রচুর মাইলেজ পেতে পারেন make-variable-frame-local( উপরেরটি set-background-colorইতিমধ্যে ফ্রেম-স্থানীয় রয়েছে)।

আমি জানি না এটি সেরা প্যাটার্ন কিনা, তবে আপনার যদি টিটিওয়াই-মোড এবং এক্স-মোড ইম্যাকসের মধ্যে তুলনামূলকভাবে কয়েকটি পার্থক্য থাকে তবে এটি কনফিগারেশন পরিচালনকে আরও সহজ করে তুলতে পারে।

উপরের কোডটি আমার .emacs.d থেকে টানা হয়েছিল ।


আমি ভাবছিলাম যে প্রতি ফ্রেম ভিত্তিতে আমি কোন মোডে আছি "সনাক্ত" করার কোনও উপায় ছিল কিনা?
নিসপিও

1
এটি এটি করব। (display-graphic-p)দেয় tযদি বর্তমান ফ্রেম গ্রাফিকাল হয়, nilঅন্যথায়। যেহেতু ফ্রেমগুলি গ্রাফিকাল নয় এবং (আফাইক) এর মধ্যে সরিয়ে নেওয়া যায়, ফ্রেম তৈরির পরামর্শ সংযোজন নিশ্চিত করে যে প্রদত্ত ফ্রেমের জন্য কাঙ্ক্ষিত অবস্থা পৌঁছেছে।
জে ডেভিড স্মিথ

এটি অবশ্যই সবচেয়ে সুবিধাজনক উত্তর।
মালবারবা

4

একই ইমাস ডিমনে চলমান বিভিন্ন ফ্রেমের সেটিংস পরিবর্তন করার জন্য আপনার কোনও পরামর্শের দরকার নেই । ঠিক after-make-frame-functionsযেমন হুক ব্যবহার করুন

(defvar my/ttheme 'tango-dark)
(defvar my/gtheme 'tango)
(defun my/frame-configuration (frame)
  "configure the current frame depending on the frame type"
  (with-selected-frame frame
    (if (display-graphic-p)
        (progn
          (message "after-make-frame-functions hook: window system")
          (set-frame-size frame 115 60)
          ;; other settings for a graphical frame
          (load-theme my/gtheme t))
      (message "after-make-frame-functions hook: text console")
      (load-theme my/ttheme t)
      (set-frame-parameter frame 'menu-bar-lines 0))))

(add-hook 'after-make-frame-functions 'my/frame-configuration)

;; normal start without daemon
(if (not (daemonp))
  (my/frame-configuration (selected-frame)))

এটিকে সংজ্ঞায়িত করার সাথে যুক্ত বোনাস রয়েছে, এটি আপনি পছন্দসই ফ্রেম-কনফিগারেশনটি সেট করেন যদি আপনি ডেমন মোডে না শুরু করেন।

দুর্ভাগ্যক্রমে load-themeফ্রেম স্থানীয় নয় এবং তাই যদি আপনি সত্যিই পাঠ্য এবং গ্রাফিকাল ফ্রেমের জন্য বিভিন্ন থিম ব্যবহার করেন তবে অন্যান্য ফ্রেমগুলিও রঙিন হয়ে যায়।

বোনাস তথ্য: আপনার নির্বাচিত থিমটির প্রকৃত অনুভূতি পেতে আপনার টার্মিনালগুলিকে কমপক্ষে 256 টি রঙ দিয়ে কনফিগার করুন। আপনার শেল স্টার্টআপ ফাইলগুলির মধ্যে একটিতে এর মতো একটি সেটিং ব্যবহার করুন:

TERM=xterm-256color
export TERM

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