~ / .Emacs.d / init.el এবং ~ / emacs.d এর বিষয়বস্তু সংগঠিত করবেন?


28
  1. যখন আমরা ~/.emacs.d/init.elবিভিন্ন উদ্দেশ্যে (পাইথন-মোডের জন্য, ইমাসস-একলিমের জন্য ... এর জন্য) আরও বেশি লাইন যুক্ত করি তখন ফাইলটি দীর্ঘ এবং কম পাঠযোগ্য হয়। এর বিষয়বস্তু সংগঠিত করার জন্য কি কোনও উপায় আছে?
  2. আমার বর্তমান ~/.emacs.dদেখতে এটির মতো দেখাচ্ছে

    $ ls *
    init.el
    
    auto-save-list:
    
    elisp:
    python-mode.el-6.1.3
    
    elpa:
    archives        auctex-readme.txt         s-20140910.334
    auctex-11.87.7  emacs-eclim-20140809.207
    
    eshell:
    history
    

    python-mode.el-6.1.3ম্যানুয়ালি ইনস্টল করা হয়েছিল, যখন emacs-eclim-20140809.207এটি ইনস্টল করা হয়েছিল elpa, এবং আমি নিশ্চিত 100% নিশ্চিত নই যে অন্যান্য জিনিসগুলি elpa/যেগুলি দ্বারা ছিল elpa। কীভাবে আমি এর বিষয়বস্তু সংগঠিত করতে পারি ~/.emacs.d/?

উত্তর:


32

কম সম্পাদক ব্যবহার করা লোকেরা তাদের কোডকে একাধিক ফাইলে বিভক্ত করতে পছন্দ করে। আপনি যদি ইমাস ব্যবহার করছেন, তা করার কোনও কারণ নেই: কেবলমাত্র একটি একক বৃহত ফাইল ব্যবহার করুন, যা আপনি বিভাগে বিভক্ত।

প্রতিটি বিভাগ দিয়ে শুরু করা উচিত

^L
;;; title of the section

যেখানে আপনি ^Lটাইপ করে অক্ষরটি sertোকান C-q C-l। তারপরে আপনি ফাইলটি নেভিগেট করতে কমান্ডগুলি C-x ]( forward-page) বা C-x n p( narrow-to-page) এর মতো ব্যবহার করতে পারেন । আরও জানতে ইমাস ম্যানুয়ালটির বিভাগ 25.4 (পৃষ্ঠা) দেখুন।


16
একাধিক ফাইলে কোড বিভক্ত না করার কোনও বিশেষ কারণ নেই । আপনি কীভাবে স্টাফের গোষ্ঠীকরণ করতে চান তার উপর নির্ভর করে - আপনি কীভাবে এটি আচরণ করতে চান। এবং এটি নির্ভর করতে পারে কত বড় LARGE। এবং উদাহরণস্বরূপ, আপনার কোডের টুকরোটি অন্যদের সাথে লাইব্রেরি হিসাবে ভাগ করা হয়েছে কিনা তার উপর নির্ভর করে।
ড্র

2
@ ড্রয়ের মন্তব্যে পিগব্যাকিং, ব্যবহারকারী বিভিন্ন ইমাস সংস্করণ এবং পরিবেশের জন্য বিভিন্ন কনফিগার করতে এবং সেই অনুযায়ী প্রাসঙ্গিক এলিজপ লোড করতে চাইতে পারেন। বলেছিল, আমি প্যাজিনেশন টিপ পছন্দ করি।
হার্ভে

3
@ হার্ভে: পৃষ্ঠাগুলি স্থাপন এবং পৃথক ফাইল ব্যবহার করা পাঠ্য সংগঠিত করার স্বাধীন উপায়। আপনি উভয় ব্যবহার করতে পারেন, স্পষ্টতই। আমি আমার সমস্ত লাইব্রেরিতে বিভাগগুলি পৃথক করার জন্য পৃষ্ঠাগুলি ব্যবহার করি। তবে আমার পৃথক লাইব্রেরি (ফাইল) রয়েছে।
ড্রিউ

1
@jch আপনি যদি এই স্টাইলটি ব্যবহার করে থাকেন তবে বিভাগ এবং ফাংশনগুলিকে ভাঁজ করার অনুমতি দেওয়ার জন্য আপনি আউটলাইন মাইনর মোড বা একটি অনুরূপ বৈশিষ্ট্য সক্ষম করতেও পারেন। সমস্ত শীর্ষ-স্তরের শিরোনাম ভাঁজ করা আপনার ইমাস কনফিগারেশনের সমস্ত বিভাগের একটি সুন্দর ওভারভিউ দেয়।
লুনারিওর

@ লুনারিওর্ন, আমি চেষ্টা করেছি, তবে আমি এটিকে বিভ্রান্তিকর পেয়েছি - আমি পৃষ্ঠা আন্দোলনের বেশিরভাগ সময় কমান্ড খুঁজে পাই, আমার মাঝে মাঝে কেবল সংকীর্ণ হওয়া দরকার। সম্ভবত আমার .emacsএবং .wlযথেষ্ট দীর্ঘ হয় না।
jch

20

এটি করার একটি দুর্দান্ত উপায় হ'ল আপনার .emacsআলাদা ফাইলগুলিতে বিভক্ত করা। উদাহরণস্বরূপ, আপনি আপনার সমস্ত ওয়েব স্টাফ এতে সরিয়ে নিতে পারেন ~/.emacs.d/web-config.elএবং তারপরে এটিকে লোড করতে পারেন init.el:

(load "~/.emacs.d/web-config.el")

আপনি যদি ~/.emacs.dকিছুটা আরও সংগঠিত রাখতে চান তবে আপনি এই কনফিগারেশন ফাইলগুলি তাদের নিজস্ব ডিরেক্টরিতে স্থানান্তর করতে পারেন:

(load "~/.emacs.d/config/web.el")

আপনার কনফিগারেশনে পরিবর্তন করার সময় আপনি এখন উপযুক্ত ফাইলটিতে ঝাঁপিয়ে পড়তে পারেন।

এর থেকে অনুপস্থিত একটি জিনিস হ'ল কাস্টমাইজ সিস্টেমের মাধ্যমে সেট ভেরিয়েবল। এগুলি এখনও আপনার মূল ডি.এল.তে থাকবে। স্পষ্টতই, ডিআইএম স্প্লিট নামে একটি সামান্য ইউটিলিটি রয়েছে যা আপনাকে কাস্টমাইজ করার সেটিংটি কোথায় যায় সে সম্পর্কে নিয়ম তৈরি করতে দেয় তবে আমি নিজে কখনও এটি ব্যবহার করি নি। বিকল্পভাবে, আপনার সেটিংসে পরিবর্তনের জন্য একটি পৃথক ফাইল ব্যবহার করতে "কাস্টমাইজ করুন" সিস্টেমটি কনফিগার করা যেতে পারে। "কাস্টমাইজ" সেটিংসটি কোথা থেকে পড়তে হবে এবং এতে লিখিত হওয়া উচিত তা নির্দিষ্ট করতে custom-fileভেরিয়েবল সেট করুন ।

ডিরেক্টরি নিজেই যতদূর যায়, আমি সর্বদা ডিফল্ট বিন্যাসে খুশি ছিলাম। আমার করা প্রধান পরিবর্তনটি আমার নিজের কাস্টম প্যাকেজ এবং লাইব্রেরিগুলির দ্বারা পরিচালিত নয় এমন সমস্তগুলির জন্য একটি ডিরেক্টরি তৈরি করা হয়েছিল package.el। এটি আমার কাস্টম এলিসপকে একটি একক বাড়ি দেয় যা কনফিগারেশনের সাথে সম্পর্কিত নয়।


ধন্যবাদ। (1) প্যাকেজ.েল দ্বারা পরিচালিত প্যাকেজ এবং লাইব্রেরিগুলির জন্য ডিরেক্টরি কী? (২) দিরের বিষয়বস্তুগুলি কি elpaপরিচালিত হয় elpa? আমি কি তাদের অন্য কোথাও স্থানান্তর করতে পারি?
টিম

2
ভেরিয়েবল সেট করে আপনি কাস্টমাইজ ভেরিয়েবলের জন্য একটি পৃথক ফাইল নির্দিষ্ট করতে পারেন custom-fileসূত্র
দক্ষ মোদী

@ টিম: প্যাকেজ.এল দ্বারা পরিচালিত ডিরেক্টরিটি এলপা। এলপা কোনও লিসপ প্যাকেজ নয়, এটি একটি প্যাকেজ সংগ্রহস্থল। প্যাকেজ.এল এটি ইনস্টল করা সমস্ত প্যাকেজ যুক্ত করবে (এটি এলপা থেকে বা অন্য কোনও সংগ্রহস্থল থেকে --- --- উদাহরণস্বরূপ আপনার ক্ষেত্রে, আমি মনে করি না যে ক্লিম এবং এস এলপা থেকে এসেছে) ডিরেক্টরি এলপায়। এবং হ্যাঁ, আপনাকে এই ডিরেক্টরিটির বিষয়বস্তু সম্পর্কে চিন্তা করার দরকার নেই।
টি ভেররন

(আর সম্পাদনা করা যায় না) আমি উপরে যা লিখেছি তা দৃor়ভাবে সত্য নয়: এলপা হ'ল প্যাকেজ সংরক্ষণাগারগুলির ফর্ম্যাট, প্যাকেজ.েল প্যাকেজ ম্যানেজার। ব্যবহারকারীর জন্য, দুজনের মধ্যে কোনও আসল পার্থক্য নেই। জিএনইউ এল্পার সাথে আমার ভুলের উপরে মন্তব্য, যা উপলব্ধ এলপা প্যাকেজগুলির মধ্যে একটি (এবং একমাত্র সরকারী এক)।
টি ভেররন

16

আপনি যদি অর্গ-মোড পছন্দ করেন তবে আপনি .emacsএটি বিনাভাগে বিন্যস্ত করে আপনার সংগঠিত করতে এটি ব্যবহার করতে পারেন । আমার বর্তমান কনফিগারেশনের অধীনে আমার .emacsফাইলটি আমার অধীনে থাকা একটি init.org ফাইলকে কেবল বুটস্ট্র্যাপ করে~/.emacs.d/init/init.org

(require 'org)

;; Load the actual configuration file
(org-babel-load-file
  (expand-file-name (concat user-emacs-directory "init/init.org")))

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


1
আমি বর্তমানে এটি করার প্রক্রিয়াধীন, যদিও আমি ব্যবহার করার কথা ভাবিনি org-babel-load-file। খুব সুন্দর! (উদাহরণ: github.com/vermiculus/dotfiles/blob/… , github.com/larstvei/dot-emacs )
শন অলরেড


9

কোডের টুকরোগুলি init.elআলাদা ফাইল (লাইব্রেরি) থেকে সরান , যা আপনি তখন require। ( provideলাইব্রেরিগুলিতে ব্যবহারের জন্য requireডি।) এই ফাইলগুলি যেখানে খুশি রাখুন এবং load-pathসেই অনুযায়ী আপডেট করুন ।


ধন্যবাদ। (1) উদাহরণস্বরূপ? (২) আপনি ~ / .emacs.d / সংগঠিত করার জন্য কী পরামর্শ দিচ্ছেন?
টিম

1
"বিষয়বস্তু সংগঠিত করার দ্বারা আপনি কী বোঝাতে চাইছেন ~/.emacs.d/? আপনি যা চান তার কোনও স্পেসিফিকেশন অফার করেন না You আপনি একটি ডিরেক্টরিতে সমস্ত কিছু রাখার জন্য সীমাবদ্ধ নন You আপনি যে কোনও জায়গায় পছন্দসই জিনিস রেখে দিতে পারেন এবং load-pathসেই অনুযায়ী সংশোধন করতে পারেন some যদি কিছু প্রোগ্রাম / সরঞ্জাম কেবল রাখে তবে স্টাফ ইন ~/.emacs.d/(অর্থাত্, জিনিসপত্র কোথায় রাখবেন তা যদি আপনি এটি বলতে না পারেন), তবে প্রোগ্রাম / সরঞ্জামটি সম্পন্ন হওয়ার পরে আপনি যেখানে এটি চান সেখানে স্থানান্তরিত করুন
ড্রয়িং

1
"উদাহরণস্বরূপ" বলতে কী বোঝ? এটি একটি উদাহরণ যা আপনি চান? (require 'foobar)ব্যবহারের একটি উদাহরণ require(add-to-list 'load-path "/my/lisp/dir")পরিবর্তনের একটি উদাহরণ load-path(provide 'foobar)ব্যবহারের একটি উদাহরণ provide
ড্র

"~ / .emacs.d / এর বিষয়বস্তু সংগঠিত করার মাধ্যমে, আমি একজন মানুষ হিসাবে এটি আরও ভালভাবে বুঝতে পারি, ইমাসকে বোঝার জন্য নয় a এটি একটি অভ্যাস, ঠিক যেমন আপনার মন্ত্রিপরিষদ, ড্রয়ার, বইয়ের তাকগুলি সাজানোর মতো organiz উদাহরণস্বরূপ, পাইথন -mode.el-6.1.3 ম্যানুয়ালি ইনস্টল করা হয়েছিল, যখন emacs-eclim-20140809.207 এলপা দ্বারা ইনস্টল করা হয়েছিল সেগুলি কি উভয়ই প্যাকেজ হয় যদি সেগুলি হয় তবে সেগুলি ~ / .emacs.d এর একটি উপ-ডিরেক্টরিতে অন্তর্ভুক্ত করা কি ভাল ধারণা? /?
টিম

আপনি সেই মানুষ যা উত্তর দিতে পারে কোন সংস্থা আপনাকে এটি আরও ভালভাবে বুঝতে সহায়তা করতে পারে। (ইমাকস কিছুই বুঝতে পারে না)) আপনার পছন্দ মতো ফোল্ডার কাঠামোটি ব্যবহার করুন। তাদের ক্যাবিনেট, ড্রয়ার, বইয়ের তাক বা কেবল ফোল্ডারগুলিকে কল করুন Call এবং আবারও, আপনার ভিতরে থাকা নয়, যে কোনও জায়গায়init.el অবস্থিত লাইব্রেরি লোড করতে পারেন । ~/.emacs.d/
ড্র

7

আমি ইমাস উইকি: লোড ডিরেক্টরিতে পাওয়া তারগজেটের পরামর্শটি ব্যবহার করি ।

মূলত আমার একটি ~ / .emacs.d / লোড ডিরেক্টরি ডিরেক্টরি রয়েছে:

;;;; ~/.emacs.d/load-directory.el

;; Handy function to load recursively all '.el' files in a given directory
(defun load-directory (directory)
  "Load recursively all '.el' files in DIRECTORY."
  (dolist (element (directory-files-and-attributes directory nil nil nil))
    (let* ((path (car element))
           (fullpath (concat directory "/" path))
           (isdir (car (cdr element)))
           (ignore-dir (or (string= path ".") (string= path ".."))))
      (cond
       ((and (eq isdir t) (not ignore-dir))
        (load-directory fullpath))
       ((and (eq isdir nil) (string= (substring path -3) ".el"))
        (load (file-name-sans-extension fullpath)))))))

তারপরে আমি কেবল আমার। / .Emacs.d / config এ পৃথক ফাইল রেখেছি:

~/.emacs.d/config ls
01-packages.el  02-style.el  03-modes.el  04-keybindings.el  05-functions.el

এবং অবশেষে আমার এটি আমার। / .Emacs.d / init.el এ আছে:

;; Load all ".el" files under ~/.emacs.d/config directory.
(load "~/.emacs.d/load-directory")
(load-directory "~/.emacs.d/config")

আমরা কেবল একটি লিঙ্কের চেয়ে আরও তথ্য সরবরাহ করতে চাই - যেমন, লিঙ্কটিতে কী রয়েছে তার সংক্ষিপ্ত বিবরণ।
ড্র

আপনি ঠিক বলেছেন, আমি আমার উত্তর সম্পাদনা করেছি।
বোকাপের্টা-আইটি

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

আপনি ঠিক আবার, সম্পাদিত। ধন্যবাদ।
বোকাপের্টা-আইটি

ধন্যবাদ। (আমি জানি এটি সঠিকভাবে করতে কিছুটা সময় নেয় তবে এটি প্রত্যেককে আরও কিছুটা সাহায্য করে))
ড্রু

5

এই নির্দিষ্ট বিড়ালটিকে ত্বকে পরিষ্কার করার একাধিক উপায় রয়েছে। আমার বর্তমান প্রিয় আউটসাইনoutline-minor-mode দিয়ে ব্যবহার করা । উদ্ধৃতাংশ:

;; * This here is my emacs init file
;; ** Many subsections with headlines like this one omitted
;; ** Customising modes
;; […] more lines omitted
;; *** Org and outline modes
(autoload 'outshine-hook-function "outshine")
(add-hook 'outline-minor-mode-hook 'outshine-hook-function)
;; […] and more
;; * Emacs Magic
;;; Local Variables:
;;; mode: emacs-lisp
;;; coding: utf-8
;;; mode: outline-minor
;;; fill-column: 79
;;; End:

মনে রাখবেন যে আপনার পছন্দসই প্যাকেজ সংগ্রহস্থল থেকে আপনার আউটসাইট করতে হবে।


1
আমি রূপরেখা-মাইনর-মোড দিয়ে শুরু করেছি, তবে কী-বাইন্ডিংগুলি খুব বেদনাদায়ক পেয়েছি এবং নিজেই এ সম্পর্কে কিছু করার সময় পাইনি। সুতরাং আমি org-মোডে আবিষ্কার করে orgstruct- মোডে চলে এসেছি, কিন্তু তারপরে আমি আউটশাইন সম্পর্কে জানতে পেরেছিলাম। সুখ! আমি বর্তমানে এলিজপ, ল্যাটেক্স এবং অন্যান্য ফাইলগুলির নিজস্ব প্রধান মোড এবং সমস্ত ধরণের নোটের জন্য org- মোডের সমস্ত কাঠামোগত জন্য আউটলাইন + আউটশাইন ব্যবহার করি।
হ্যারাল্ড হানচে-ওলসেন

2

আমি প্যাকেজ এবং ফাইলগুলি ট্র্যাক রাখতে নিম্নলিখিত কাঠামোটি ব্যবহার করি

~/.emacs.d
|-- elpa            ;; Package.el packages
|-- hack            ;; Development versions of packages (e.g. org, personal packages)
|-- single-lisp     ;; Individual lisp files from outside sources (e.g. EmacsWiki)
|-- site-lisp       ;; Lisp packages not managed by package.el (directories)
|-- user-config     ;; Machine/situation specific customization (work vs home)
|   `-- custom.el   ;; Customization settings
|-- lisp            ;; Individual .el files to keep init.el clean
|   `-- defaults.el ;; Default configuration settings
`-- init.el

আমি তখন use-packageপ্যাকেজগুলি লোড করা হয় এবং প্রতিটি প্যাকেজের জন্য কোন স্বনির্ধারণ সেট করা হয় তা পরিচালনা করতে ব্যবহার করি । বেশিরভাগ সময় কেবলমাত্র hackএবং elpaআপডেট করার প্রয়োজন হয়, অন্যান্য ফোল্ডারগুলি প্রায়শই ওয়ান-অফ প্যাকেজগুলির জন্য হয় যা আমি সংক্ষিপ্তভাবে পরীক্ষা করতে বা ব্যবহার করতে চাই তবে লোড করার প্রয়োজন হয় না (এমনকি অবাস্তব)।

custom.el সেটিংস কাস্টমাইজ করার জন্য, যা আমি ব্যবহার করতে পছন্দ করি না (এবং আমি ব্যবহার না করেও সংস্করণ না)।

defaults.elহ'ল সাধারণ কনফিগারেশন (মেনু-বার, ফন্ট, এনকোডিং ইত্যাদি) এর পরে যেকোন .el ফাইলে ওভাররাইট করা যায় এমন কোনও user-config/সিস্টেমের জন্য যা আমি প্রত্যাশা মতো কাজ করতে পারি তবে পরিবেশের সাথে সামঞ্জস্য হতে পারে।

আমি পূর্বে রাখার চেষ্টা করেছিলেন functions, macros, adviceপৃথক প্যাকেজ সামগ্রীটি মধ্যে বর্ণা জন্য অনুমতি, কিন্তু সংজ্ঞা গাড়ীতে আঘাত / প্রয়োজন সমস্যা তাই মধ্যে যারা ফিরে করা আছে init.el। এগুলি শেষ পর্যন্ত ফিরে যেতে পারে ~/.emacs.d/lisp/

আমি init.elপরিপাটি করে রাখার চেষ্টা করছি , ফাংশন এবং উদ্দেশ্য অনুসারে কন্টেন্টটি সাজান যাতে এটি আবার খুঁজে পাওয়া সহজ হয়। আমার মনোলিথিক init.elফাইল রয়েছে এবং শেষের দিকে নতুন সামগ্রী যুক্ত করা অবিরত ছিল (বা যেখানে আমি এটি ফিট করেছিলাম) এবং তারপরে আমি কী যুক্ত করেছি বা এটি সন্ধান করতে গিয়ে আমি কোথায় যুক্ত করেছি তা না জানার পরে (এবং কখনও কখনও ব্যবহার করে অনুসন্ধান করা কার্যকর isearchহয়নি কারণ আমি কীভাবে সেই সময়গুলিতে নামকরণ করেছি তা মনে করতে পারি না)।


2

বিদ্যমান সমস্ত উত্তর হ'ল ম্যানুয়ালি তৈরি ফাইল, লাইক init.elএবং বন্ধুদের সংগঠিত করার জন্য সেরা অনুশীলনগুলিকে সম্বোধন করে । সমান গুরুত্বপূর্ণ হ'ল বিভিন্ন প্যাকেজ থেকে স্বয়ংক্রিয়ভাবে তৈরি করা সমস্ত ফাইলের সংগঠন এবং এর জন্য প্যাকেজটি no-litteringদুর্দান্ত।


1

আমি আরো বললাম

  (when (string= (buffer-name) "init.el")
    (setq imenu-generic-expression
      '((nil "^;; \\[ \\(.*\\)" 1))))

ইমাস-লিস্প-মোড-হুক থেকে। তারপরে "yasnippet", "প্যাকেজিং", "জাভা মোড" ইত্যাদি ফাইল বিভাগগুলিতে যুক্ত করুন এটি আমার 1000 লাইন কোডের জন্য মন্তব্যগুলি অন্তর্ভুক্ত করেছে (মন্তব্যগুলি অন্তর্ভুক্ত)।

সম্পাদনা করুন: অবশেষে আমি হেলম-জিমেনু সহ বিভাগগুলির মধ্যে স্যুইচ করি। প্রকৃতপক্ষে হেলম হিমগুলি স্বয়ংক্রিয়ভাবে সাধারণ ইমেণু ফাংশনে যায় তাই আমার যা প্রয়োজন তা হল

       (local-set-key (kbd "C-*") 'imenu)

আপনি একটি হুকের পরিবর্তে কোনও ফাইল স্থানীয় ভেরিয়েবল ব্যবহার করতে পারেন।
ইয়ংফ্রোগ

1

আমি আমার তুলনামূলকভাবে ছোট .emacsফাইলটি তিন ভাগে বিভক্ত করেছি :

  • কাস্টমাইজেশনের জন্য ইমাস-কাস্টম.এল , প্রচুর পরিমাণে বিশাল এবং অকেজো ডেটা ছড়িয়ে দেওয়া; মূল .emacs ফাইলটি স্পর্শ না করে ফাইলটি স্বয়ংক্রিয়ভাবে পুনরায় লেখা হয় , উদ্দীপনা পরিবর্তনগুলি রোধ করে।

    (setq custom-file "~/.emacs-custom.el")
    (load custom-file)
    
  • কনফিগারেশনের চেয়ে কোডের জন্য lg-lib.el : প্যাকেজ ডিরেক্টরি থেকে বরং মানহীন উত্সের অবস্থানগুলি থেকে আমার নিজের লাইব্রেরি লোড করা এবং বিভিন্ন ফাংশন সংজ্ঞায়িত করা (বেশিরভাগ সঠিক প্যাকেজের অভাবে কপি করা এবং হ্যাক করা হয়েছে); এটি .emacs লাইন গণনা আরও বড় হ্রাস ।

    (load "~/lg-lib")
    
  • প্রধান .emacs ফাইল: বাল্কি কোড এবং বাল্কি কাস্টমাইজেশন ভেরিয়েবলগুলি ছাড়াই, এতে requireপ্যাকেজগুলির জন্য কল রয়েছে , ভেরিয়েবলগুলি কাস্টমাইজ সিস্টেমের অংশ নয়, এবং প্যাকেজগুলি লোড এবং আরম্ভ করার জন্য বিভিন্ন ফাংশন কল রয়েছে। আমি একই প্যাকেজ বা বৈশিষ্ট্য সম্পর্কিত সমস্ত লাইন সাবধানে রেখে "সংগঠিত" করেছি এবং প্যাকেজ লোডিং এবং প্যাকেজ সম্পর্কিত সেটিংসগুলিকে "কোর" কার্যকারিতা থেকে পৃথক করে। একটি মোটামুটি প্রতিনিধি অংশ:

    (require 'ido)
    (ido-mode t)
    
    (require 'auto-complete)
    (add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict")
    
    (require 'auto-complete-config)
    (ac-config-default)
    (global-auto-complete-mode t)
    

    এই বিভাগগুলি ছোট, তবে প্রতিটি প্যাকেজের জন্য কনফিগারেশনের আরও অনেকগুলি লাইনের সাথে এগুলি পরিচালনাযোগ্য থাকবে।


1

একটি ইম্যাক্স মাস্টার সেটআপ অনুসরণ করুন, যেমন, https://github.com/purcell/emacs.d

উদাহরণস্বরূপ, কীভাবে ম্যানুয়ালি ইনস্টল করা প্যাকেজগুলি এবং ইএলপিএ থেকে ইনস্টল হওয়া প্যাকেজগুলি সংগঠিত করতে হবে সে সম্পর্কে স্টিভেন পুরসেলের সেটআপ রয়েছে

a place for 3rd party code which isn't available in MELPA or other
package repositories. This directory and its immediate
subdirectories will be added to load-path at start-up time.

Notably, in Emacs 23.x, a backported package.el is automatically
downloaded and installed here

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

আমি বুঝতে পারি যে অনেক লোক আমার সাথে একমত নয়, তবে এখানে আমার মামলা ( আমার নিবন্ধে বিস্তারিত ):

আমি পুরসেলের সম্মানিত ( নভেম্বরের 2014 হিসাবে 1403 গিটহাব তারকা!), স্থিতিশীল (5 বছরের বিকাশ) কনফিগারেশন ব্যবহার করে ইমাস ব্যবহার শুরু করেছি । এটি থেকে শুরু করেও আমার এখনও অনেক সমস্যা ছিল । স্টিভ পার্সেল আমাকে এই সমস্ত সমস্যা সমাধানে সহায়তা করেছিল। (আমি আসলে এক বছরেরও বেশি সময় ধরে তাঁর পাদওয়ান হয়েছি )) তার সেটআপটি ব্যবহার করে এবং সমস্যাগুলির প্রতিবেদন করতে তাঁর রেপোর সমস্যাগুলি ব্যবহার করে এবং তার অভিজ্ঞতার সুযোগ নিয়ে আমি বেশি সময় অপচয় করা এড়াতে পারি। আজও, আমি git submoduleতৃতীয় পক্ষের প্লাগইনগুলি পরিচালনা করতে এখনও অনেক লোককে পর্যবেক্ষণ করি । স্টিভ এবং আমি দুজনেই এর জন্য ব্যবহার ত্যাগgit submodule করেছি কারণ এটি এমন পিআইটিএ হতে পারে ।

তবে আপনি যদি নিজের দক্ষতার বিষয়ে খুব আত্মবিশ্বাসী হন বা স্ব-শিক্ষার পক্ষে বেশি পছন্দ করেন তবে এটি আপনার পক্ষে পথ নয়।


2
" মাস্টারের কাছ থেকে সেটআপ ক্লোনিং ": আপনি উল্লেখ করেছেন এমন নির্দিষ্ট উল্লেখ ব্যতীত, যা দুর্দান্ত বৈশিষ্ট্য বা পরামর্শ প্রদান করতে পারে (আমি যাচাই করে দেখিনি), আমি সাধারণভাবে একমত নই যে, লোকেরা অন্যের কাছ থেকে ডিআইডি ফাইল বা অন্যান্য সেটআপগুলি ক্লোন করে শুরু করা উচিত। এমনকি এটি স্পষ্টভাবে নিরুৎসাহিত নীতি, আইআইআরসিও হয়েছে, কারণ এটি সমস্যার কারণ হতে পারে। আপনি প্রাথমিক সেটআপ হিসাবে যা ব্যবহার করেন তা স্ক্র্যাচ থেকে শুরু করা এবং সচেতন হওয়া (এবং এমনকি বুঝতেও!) আরও ভাল। অবশ্যই অন্যেরা যা করেছে তা থেকে পড়াশোনা এবং শেখার কোনও ভুল নেই। তবে অন্ধভাবে আর ডি ফাইলগুলি অনুলিপি করা ঠিক নয়। (কেবলমাত্র একটি মতামত))
ড্র করেছেন

1
আসলে, আমি আমার নিবন্ধটি লিখছি কারণ এখনও অনেক লোক বিশ্বাস করে যে তাদের সেটআপের স্ক্র্যাচ থেকে শুরু করা উচিত। এটি বেশিরভাগ মানুষের পক্ষে সবচেয়ে ভাল উপায় নয়, যেমনটি আমি পর্যবেক্ষণ করেছি এবং নবজাতকদের জন্য অহেতুক শক্ত উপায়। সন্ধান করুন
চেন বিন

1
এটা তোলে হয় " অধিকাংশ মানুষের জন্য সবচেয়ে ভালো উপায় "। অন্য কারও ডিআইডি ফাইল ব্যবহার করে শুরু করার বিরুদ্ধে আলোচনা এবং পরামর্শ অনুসন্ধান করুন। অনুসন্ধান করুন help-gnu-emacs@gnu.org, এবং www.emacswiki.org, এবং emacs-devel@gnu.org, এমনকি debbugs.gnu.org। এটি বলেছিল যে, নিজের আরম্ভির ফাইলটি ভাগ করে নেওয়া, অন্যকে চিন্তার খাদ্য হিসাবে পরিবেশন করাতে কোনও দোষ নেই। পরামর্শ নবীনদের জন্য সেভাবেই শুরু না করা; লোকেরা তাদের নিজস্ব প্রারম্ভিক পদ্ধতির এবং টিপসগুলি ভাগ না করার জন্য পরামর্শ নয়।
ড্র হয়েছে

1
এটি "বেঁচে থাকার পক্ষপাত" এর কারণ। অনেকে ইমাসউইকি বা মেলিং তালিকা জানার আগেই হাল ছেড়ে দেন।
চেন বিন

0

আপনার .emacs.dফোল্ডারটি পরিষ্কার করার একটি অভিনব এবং সহজ উপায় হ'ল org-modeউত্স ব্লকগুলি ব্যবহার করে সমস্ত কিছু ব্যবহার এবং আউটলাইন করা। তারপরে, আপনার .emacsফাইলে, আপনার দিকে নির্দেশ করুন config.org

এটির একটি দুর্দান্ত উত্স হ্যারি শোয়ার্জ। তার একটি ইউটিউব ভিডিও রয়েছে যা স্পর্শ করে এবং একটি ব্লগ পোস্ট যা বিশদগুলি ব্যাখ্যা করে । আমি এটি ইমাস নুব হিসাবে অনুসরণ করতে এবং সমস্ত সেটআপ পেতে সক্ষম হয়েছি। একটি যাদুমন্ত্র মত কাজ করে. আমার পুরো জন্য 1 ফাইল init

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