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


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.