এখানে ইমেক্স অক্ষম কিভাবে ডকুমেন্ট সম্পূর্ণ


11

ইমাস সহ কোনও বাশ স্ক্রিপ্ট ফাইল সম্পাদনা করার সময়, এবং <<<দ্বিতীয় <ইমাসে এখানে ডকুমেন্টের জন্য একটি টেম্পলেট প্রবেশ করান , যেমন নীচের উদাহরণটির মতো:

<<EOF

EOF

এটি পছন্দসই আউটপুট নয়, কারণ আমি একটি আক্ষরিক প্রবেশ করতাম <<<

এই মুহুর্তের জন্য আমি প্রবেশ করার উপায় অবলম্বন করি < < <এবং তারপরে স্পেসগুলি মোছা হয় তবে আমি সরাসরি এটিতে প্রবেশের অনুমতি দেওয়া পছন্দ করি।


2
আমি যে খুব বেশি যত্নশীল তা নয়, তবে ডাউনটাতে কোনও মন্তব্য দেওয়া ভাল লাগবে।
enzotib

উত্তর:


12

টমের কাস্টম my-disable-here-documentফাংশনের কীগুলি রিব্যান্ডিং করার জন্য আসলে কোনও প্রয়োজন নেই । এই বৈশিষ্ট্যটি এতে সক্ষম ও অক্ষম করা যায় sh-electric-here-document-mode:

(add-hook 'sh-mode-hook
          (lambda ()
            (sh-electric-here-document-mode -1)))

(এটি সক্রিয় বাফারের মাধ্যমেও টগল করা যেতে পারে can M-x sh-electric-here-document-mode)


এছাড়াও: sh-mode-hookআমার পক্ষে কাজ করে নি, তবে sh-set-shell-hookকরেছে।
ফিলিপ লেমা

6

বাঁধুন <করার self-insert-commandব্যাশ মোডে এবং তারপর এটি শুধুমাত্র অক্ষর সন্নিবেশ করা হবে।

ডিফল্টরূপে এটি sh-maybe-here-documentব্যাশ মোডে থাকা অবস্থায় আবদ্ধ এবং সেই ফাংশনটি স্বয়ংক্রিয়ভাবে সন্নিবেশ করায়।

এখানে চাবিটি পুনরায় প্রত্যাবর্তনের একটি উপায় রয়েছে:

(add-hook 'sh-set-shell-hook 'my-disable-here-document)

(defun my-disable-here-document ()
  (local-set-key "<" 'self-insert-command))

আপনি কি অনুগ্রহ করে init ফাইলটিতে sertোকাতে আরও কিছু তথ্য দিতে পারেন? দুঃখিত, তবে আমি একজন প্রাথমিক ইম্যাক্স ব্যবহারকারী।
enzotib

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

এই সমাধানটি আর কাজ করে না (ইমাস 24.3 এ পরীক্ষিত), কারণ <এটি self-insert-commandডিফল্টরূপে আবদ্ধ ।
টি ভেরন

2

যদি আপনি এখানে-ডক আচরণটি অক্ষম করতে চান তবে কেবলমাত্র এটি হ'র স্ট্রিং <<< সন্নিবেশ করানো থেকে বিরত রাখে, তারপরে C-<এমন কোনও ফাংশনে আবদ্ধ হওয়া (insert "<<<")কাজ করবে এবং এখনও অটো -ডক টেম্পলেটটিকে অনুমতি দেবে

(defun my-here-string() 
  "Insert <<< (eg. for a bash here-string)" 
  (interactive)
  (insert "<<<"))
(global-set-key (kbd  "C-<") 'my-here-string)

1
ধন্যবাদ, আকর্ষণীয় সমাধান, তবে আমি এখনও @ টমের উত্তর পছন্দ করি, কারণ আমি বাশ স্ক্রিপ্ট ফাইলের জন্য সেই সমাপ্তিটিকে ভুল বলে বিবেচনা করি।
enzotib

2

আমি শেল মোড <<<হিসাবে প্রবেশ করান M-3<


1

আদর্শ < C-q < <


এটি আমার কর্মক্ষেত্রের চেয়ে ছোট এবং সম্ভবত অন্যান্য পরিস্থিতিতেও কার্যকর, তবে আমি যা খুঁজছিলাম ঠিক তা নয়। যাহোক তোমাকে ধন্যবাদ.
enzotib

1

একবার দেখার পরে: http://web.mit.edu/dosathena/sandbox/emacs-19.28/lisp/sh-script.el আমি এই সমাধানটি নিয়ে এসেছি:

;; disable the automatic EOF generation in Shell Mode
(defvar sh-use-prefix nil
  "If non-nil when loading, `$' and `<' will be  C-c $  and  C-c < .")
(defvar sh-mode-map
  (let ((map (make-sparse-keymap)))
    (define-key map (if sh-use-prefix "\C-c<" "<")
      (local-set-key "<" 'self-insert-command))
   map)
  "Keymap used in Shell-Script mode.")
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.