ইম্যাক্স্লিভেন্ট: একক একক ইমাকস শুরু থেকে সমস্ত সময় প্রক্রিয়া করে এবং কখনই জিইউআই বন্ধ করে না এবং আরও ভাল লুকায় না


9

যেহেতু ইমালস্ক্লিয়েন্ট দীর্ঘ প্যাকেজ লোডিং সময়কে নিখুঁতভাবে পরিচালনা করতে পারে, তাই আমি সত্যিই কমপক্ষে একটি ইমাস প্রক্রিয়া রাখতে চাই এবং বেশিরভাগ সময় কেবলমাত্র একটি ইমাস প্রক্রিয়া ব্যাকগ্রাউন্ড প্রক্রিয়া হিসাবে খোলা রাখতে পারি এবং আরও ভালভাবে জিইউআই লুকিয়ে রাখতে চাই।

এই মুহুর্তে .bashrc এ আমি নিম্নলিখিত ফাংশনটি সংজ্ঞায়িত করেছি:

emc () 
{ 
    if [[ $# -eq 0 ]]; then
        emacs --eval "(suspend-frame)" &
        return
    fi
    args=($*);
    setsid emacsclient -c -e "(find-file \"${args[*]}\")"
}

.Bashrc এ নিম্নলিখিত লাইনটিও রয়েছে:

emc

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

সমস্যাটি হ'ল অনেক শেল খোলার পরে আমার অনেক অতিরিক্ত অপ্রয়োজনীয় ইম্যাকস প্রক্রিয়া হবে। যাইহোক, আমি কেবলমাত্র স্টার্টআপ থেকে আরও ভাল আড়াল জিইউআই থেকে সমস্ত সময় একটি একক ইমাস প্রক্রিয়া বজায় রাখতে চাই ।


5
আমি ( emacswiki.org/emacs/EmacsAsDeemon ) এর emacs --eval "(suspend-frame)"চেয়ে অনুশীলনের সাথে পরিচিত নই । আপনি ইমমনকে ডিমন হিসাবে না নেওয়ার কোনও কারণ আছে কি? এটি চলছে কিনা তা নিশ্চিত করতে আপনি এমন কিছু ব্যবহার করতে পারেন । emacs --daemonpgrep -U `whoami` emacs || emacs --daemon &
ইবিপা

পরীক্ষা করে দেখুন এমজে ওয়াল এর স্ক্রিপ্ট গিয়ে Emacs ক্লায়েন্ট ব্যবহার জন্য।
তিয়ানসিয়াং জিয়াং

উত্তর:


13

আমি লগইন করার সময় আমি একটি ইমাস ডেমন শুরু করে এটি করি। আপনি এই আদেশটি কোথায় রেখেছেন তা আপনার ডেস্কটপ পরিচালকের উপর নির্ভর করে। আমি ব্যবহার করি i3, যা লগইনে একটি স্ক্রিপ্ট চালনার জন্য কনফিগার করা আছে যার মধ্যে নিম্নলিখিতগুলি রয়েছে:

emacs --daemon &

এর সাথে, ইমাস সর্বদা পটভূমিতে চলমান থাকে এবং আমি emacsclient -c -nউইন্ডো ম্যানেজারে একটি সুবিধাজনক কী-বাইন্ডিংয়ের সাথে আবদ্ধ একটি নতুন ক্লায়েন্ট খুলি । আপনি যদি একটি টার্মিনাল এ কাজ করছেন, তাহলে আপনি শুধুমাত্র মত সরল ওরফে প্রয়োজন alias emc='emacsclient', সম্ভবত সঙ্গে -n, -cবা -tকিভাবে আপনি এটি ব্যবহার উপর নির্ভর করে আর্গুমেন্ট।

ম্যানুয়ালে ইম্যাক্লিসিয়েন্টের বিকল্পগুলি পরীক্ষা করে দেখুন: ( (ইমে্যাকস) ইমা্যাকস্লিয়েন্ট বিকল্পগুলি , যার মাধ্যমে ইম্যাক্স থেকে অ্যাক্সেসযোগ্য C-h r m emacsclient options <enter>)। -aইমাগাস ডেমনটি ইতিমধ্যে চালু না থাকলে আপনি স্বয়ংক্রিয়ভাবে শুরু করতে, এবং -cবা -tবিদ্যমান একটিটিকে পুনরায় ব্যবহার করার পরিবর্তে (একই অধিবেশনটিতে) নতুন ফ্রেম বা টার্মিনাল ক্লায়েন্ট খোলার জন্য আপনি পতাকাটি ব্যবহার করতে পারেন :

'-একটি আদেশ'
'--Alternate-সম্পাদক = কমান্ড'
     'Emacsclient' ইমা্যাকের সাথে যোগাযোগ করতে ব্যর্থ হলে চালানোর জন্য একটি কমান্ড উল্লেখ করুন।
     স্ক্রিপ্টে 'emacsclient' চালানোর সময় এটি দরকারী।

     একটি বিশেষ ব্যতিক্রম হিসাবে, যদি COMMAND খালি স্ট্রিং হয় তবে
     'emacsclient' ডেমন মোডে ইমাক শুরু করে (হিসাবে 'emacs --daemon') এবং
     তারপরে আবার সংযোগ দেওয়ার চেষ্টা করে।

'-C'
'--Create ফ্রেম'
     বিদ্যমান ব্যবহারের পরিবর্তে একটি নতুন গ্রাফিকাল "ক্লায়েন্ট ফ্রেম" তৈরি করুন
     ইমাস ফ্রেম 'সিএক্স সি-সি' এর বিশেষ আচরণের জন্য নীচে দেখুন
     ক্লায়েন্ট ফ্রেম যদি ইমাসগুলি একটি নতুন গ্রাফিকাল ফ্রেম তৈরি করতে না পারে (যেমন,
     যদি এটি এক্স সার্ভারের সাথে সংযোগ করতে না পারে), এটি একটি পাঠ্য তৈরি করার চেষ্টা করে
     টার্মিনাল ক্লায়েন্ট ফ্রেম, যেমন আপনি '-t' বিকল্প সরবরাহ করেছেন
     পরিবর্তে.

'-T'
'--Tty'
'-Nw'
     পরিবর্তে বর্তমান পাঠ্য টার্মিনালে একটি নতুন ক্লায়েন্ট ফ্রেম তৈরি করুন
     একটি বিদ্যমান Emacs ফ্রেম ব্যবহার করে। এটি ঠিক '-সি' এর মতো আচরণ করে
     বিকল্পটি, উপরে বর্ণিত, এটি পাঠ্য টার্মিনাল তৈরি করে except
     ফ্রেম (* নোট উইন্ডো টার্মিনাল: :)।

4

আপনি যদি এমন একটি অপারেটিং সিস্টেম ব্যবহার করছেন যা সিস্টেমেড সার্ভিস ম্যানেজার ব্যবহার করে (যা আজকাল বেশিরভাগ জিএনইউ / লিনাক্স বিতরণ অন্তর্ভুক্ত), তবে বুটে আপনার ইমা্যাকস ডেমন শুরু করার জন্য সিস্টেমেড ব্যবহার করার সর্বোত্তম সমাধান হতে পারে। আপনি $HOME/.config/systemd/user/emacs.serviceনিম্নলিখিত বিষয়বস্তু সহ একটি ফাইল তৈরি করে এটি করতে পারেন :

[Unit]
Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/

[Service]
Type=simple
ExecStart=/usr/bin/emacs --fg-daemon
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
Environment=SSH_AUTH_SOCK=%t/keyring/ssh
Restart=on-failure

[Install]
WantedBy=default.target

তারপরে আপনার পরিষেবাটি শুরু করা উচিত এবং এটি ভবিষ্যতের সমস্ত বুটের জন্য স্বয়ংক্রিয়ভাবে শুরু করতে সেট করা উচিত:

$ systemctl enable --user emacs
$ systemctl start --user emacs

আপনি এখন emacsclientযথারীতি ব্যবহার করতে পারেন । আপনি সাধারণত সঙ্গে এটি চালানোর তাহলে -n, -cঅথবা -tবিকল্প, আপনি আপনার শেল একটি ওরফে সেট করতে পারেন। আপনার পছন্দ মতো চালাতে আপনি EDITORএবং / অথবা VISUALপরিবেশের ভেরিয়েবলগুলি সেট করতেও চাইতে পারেন emacsclient। উদাহরণস্বরূপ, বাশে, আপনি আপনার .bashrcফাইলে নিম্নলিখিতগুলি যুক্ত করতে পারেন :

alias emc="emacsclient -c"
export VISUAL="emacsclient -c"
export EDITOR="emacsclient -t"

আপনার যদি কখনও ইমাস ডেমন থামাতে হয় তবে আপনি নীচের মত এটি করতে পারেন:

$ systemctl stop --user emacs

এবং যদি আপনি স্থায়ীভাবে বুট চালনা থেকে এটি বন্ধ করতে চান:

$ systemctl disable --user emacs

1
সম্ভবত ইমাসস উইকির এই লিঙ্কটি স্বীকার করা উচিত: ইমাসাসএএসডেমন
হংবোজু

0

আমি যেভাবে এটি করি তা আমার পূর্ববর্তী উত্তরের সাথে বেশ অনুরূপ, যার জন্য আমার .bashrc এর জন্য একটি নাম নির্দিষ্ট করা আছে emacs --daemon

alias ds="emacs --daemon"

এগুলি ছাড়াও আমার একটি কী-বোর্ড শর্টকাট ctrl-alt-Eসেট আছে emacsclient -c। আমি যখন dsইমাসে কাজ করা শুরু করতে চাই তখন আমি একটি টার্মিনাল খুলি এবং টাইপ করে আমার শর্টকাট দিয়ে প্রতিটি ইমালস্ক্লিয়েন্ট উদাহরণ কল করি।

আশা করি এটি কাউকে সাহায্য করবে।

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