মডেলিন ভিমে কাজ করে না


19

আমার কাছে .aliasesবাশ এবং zsh এর জন্য ডাকা একটি ফাইল আছে , আমি এই লাইনটি রেখেছি

# vim: set filetype=bash: 

তবে আমি যদি তৈরি করি

: echo &ft

আমি পাই conf


আমি এখানে সবকিছু চেষ্টা করেছি এবং কিছুই কার্যকর হয়নি। আমি 18 বছর ধরে ভিএম ব্যবহার করছি। আমি প্রথমবারের মতো কাজ করতে মডেলিন পেতে ব্যর্থ হয়েছি।
ব্রুনো ব্রোনসকি

এটা বের করে আনা। নীচে উত্তর দিন। superuser.com/a/1174296/3376
ব্রুনো ব্রোনোস্কি

উত্তর:


28

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

:verbose set modeline?

এটি আপনাকে 'মডেলাইন' বিকল্পের মান এবং যদি ডিফল্ট না হয়, যেখানে এটি সর্বশেষ সেট করা হয়েছিল তা জানাবে।

কিছু মডেলিন সুরক্ষার সমস্যা দীর্ঘকাল স্থির করা সত্ত্বেও কিছু লিনাক্স ডিস্ট্রিবিউশনগুলি সুরক্ষা ব্যবস্থা হিসাবে / ইত্যাদি / vimrc বা / usr / share / vim / vimrc এ 'নমোডলাইন' সেট করে।


মডেলিন শেষ সেট ~ / .vimrc
juanpablo

সুরক্ষার জন্য, আমি মডেলিনটি আমার rc / .vimrc au BufNewFile, BUFRead এ যুক্ত করার জন্য পরিবর্তন করেছি * * এলিয়াসগুলি ফাইল টাইপ = sh
জুনপ্যাবলো

এগুলির সবগুলিই দীর্ঘস্থায়ী হয়নি। github.com/numirias/security/blob/master/doc/…
ডাকব্রাইন

@duckbrain গ্যারান্টি দেওয়া মৌলিকভাবে অসম্ভব যে সমস্ত সুরক্ষার সমস্যা এতক্ষণ স্থির হয়েছে যেহেতু খুব সহজেই তথ্যটিতে ডেটা দেখে কোড দ্বারা সম্পাদিত এম্বেড থাকা নির্দেশাবলী অন্তর্ভুক্ত করা সম্ভব হয়। কেন কিথ Bostic স্বাগতম এর জন্য ডকুমেন্টেশন এই NVI সবসময় এর বলেছেন modelinesবিকল্প প্রজেক্ট হয় এবং এটা হতে হবে। এটি ঠিক একইভাবে ফাইল-এম্বেড কমান্ড বা ম্যাক্রো নির্দেশাবলী থেকে পিডিএফ, ওয়ার্ড, এক্সেল, & সি & সিতে চালিত সমস্ত সুরক্ষা বাগের মতো।
tchrist

14

আমি এই অন্যান্য উত্তরে একটি সম্পূর্ণ ডিবাগ চেকলিস্ট বর্ণনা করি ।

আমি সত্যিই এই এক তুলবেন করা হয়েছে কারণ ডকুমেন্টেশন হয় না সম্পূর্ণরূপে সত্য।

দেখা যাচ্ছে যে 8 সংস্করণে (এবং সম্ভবত এর আগে) আপনি setআপনার মডেলিনে শব্দটি ব্যবহার করতে পারবেন না । ডকুমেন্টেশনটি "দ্বিতীয় রূপ" হিসাবে বর্ণনা করে /* vim: set ai tw=75: */তবে এটি কাজ করে না। আপনাকে "প্রথম রূপ" ব্যবহার করতে হবে// vim: ai tw=75

দ্রষ্টব্য: আপনি এই জাতীয় মন্তব্য সূচকগুলির মধ্যে যে কোনওটি ব্যবহার করতে পারেন। বা কিছুই না।


এটি সমস্ত ভিএম ইনস্টলের ক্ষেত্রে অগত্যা সত্য নয়। ফর্মটি setআমার জন্য ভিএম ৮.০ (যদিও 7.৪-তে নয়) জরিমানা করে। এছাড়াও উল্লেখযোগ্য যে দ্বিতীয় ফর্মের সাথে // vim: ai tw=75লাইনের শেষে অন্য কোনও অক্ষর থাকতে পারে না, বা ভিম মডেলিনকে অভিযোগ করবে এবং উপেক্ষা করবে।
জোশ

এটি অবশ্যই বাগ হিসাবে রিপোর্ট করা উচিত (বা পুরানো ডকুমেন্টেশন হিসাবে)। আমি এটিকে পুনরুত্পাদন করলাম VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:44:48) Inklusive der Korrekturen: 1-1689 Extra-Patches: 8.0.0056 Verändert von pkg-vim-maintainers@lists.alioth.debian.org Übersetzt von pkg-vim-maintainers@lists.alioth.debian.org Riesige Version mit GTK2-GNOME GUI. (শেষ পংক্তির অর্থ পরিবর্তিত ... , দ্বারা সংকলিত ... , বিশাল সংস্করণ ... )।
লিটলবাই ব্লু

আমি এটি মেইলিং লিস্টে সম্বোধন করার চেষ্টা করেছি। তারা দ্বিমত পোষণ করলেন।
ব্রুনো ব্রোনোস্কি

@ ব্রুনো ব্রোনোস্কি আপনার মেইল ​​থ্রেডের লিঙ্ক আছে? তাদের যুক্তি পড়তে চাই।
গ্রেওয়াল্ফ

এখানে থ্রেডের লিঙ্ক is groups.google.com/d/msg/vim_dev/aFh3X0etB7c/zl0Vi-MuFQAJ আমি তাদের যুক্তি বুঝতে সত্যিই সময় নিই নি।
ব্রুনো ব্রোনোস্কি

11

set modelines=1 (বা কোনও -0 মানহীন) আমার ~ / .vimrc এ এটি আমার জন্য কাজ করে।


5
যদি modelineসেট না করা হয় তবে এর কোনও প্রভাব নেই (এটি আপনি মূলের মধ্যে না থাকলে ডিফল্টরূপে Vim এ
থাকবেন

ভিএম-তে মডেলাইনগুলি হ্যান্ডলিংয়ের সাথে সমস্ত দুর্বলতার কারণে জেন্টুর একটি সিস্টেম-ওয়াইড set nomodelineইন রয়েছে /etc/vimrc
ম্যাটবিয়ানকো

আমার ক্ষেত্রে, আমাকে modelinesএকটি শূন্য-মান নির্ধারণ করতে হয়েছিল। সহায়তাটি ডিফল্ট হ'ল বলে 5, তাই আমি এটি সেট করেছিলাম এবং এটি আমার জন্য কৌশলটি করেছিল। বলছে যে,If 'modeline' is on 'modelines' gives the number of lines that is checked for set commands. If 'modeline' is off or 'modelines' is zero no lines are checked.
বেন

9

~ / .vimrc এ আপনাকে নিম্নলিখিতগুলি সেট করতে হবে:

set nocompatible 
filetype plugin on
set modeline 

এই লাইনগুলি দেবিয়ান 9 এ কাজ করে Thank
ক্যালিগারি

7

~/.vimrcআমার ফান্টু লিনাক্স বাক্সে আমার জন্য কাজ করাতে কেবল নিম্নলিখিতগুলি যুক্ত করা :

set modeline

ম্যাক কাজ করে না!
শুভা

1

যেহেতু অনুসন্ধানগুলিতে এটি আসবে বলে মনে হচ্ছে:

আমারও একই সমস্যা ছিল:

# vim: set filetype=sh:

কাজ করেনি, ফলস্বরূপ = কনফিডেরও ফলস্বরূপ। আমার। / .বাশ_লিয়াসে মডেলিন ছাড়া, ফুটি খালি রয়েছে, তাই কিছু পরিবর্তন হয়।

যখন

# vim: filetype=sh:

কাজ করছে. শেষ ":" উপস্থিতি অপ্রাসঙ্গিক বলে মনে হচ্ছে।

রেকর্ডগুলির জন্য আমি ভিএম 8 ব্রিউড সংস্করণ সহ ওএসএক্স এ আছি।

এটি অদ্ভুত কারণ মডেলাইন থেকে উভয়ই সহায়তা করে

[text]{white}{vi:|vim:|ex:}[white]{options}

এবং

[text]{white}{vi:|vim:|Vim:|ex:}[white]se[t] {options}:[text]

সমর্থিত বলে মনে হচ্ছে।

এর আউটপুট

verbose set ft?

"vim: filetype = sh" এর সাথে রয়েছে

filetype=sh
      Last set from modeline

মডেলিন ছাড়াই:

filetype=

"vim: ফাইল টাইপ = sh" সেট করুন

filetype=conf
     Last set from /usr/local/Cellar/vim/8.0.1350/share/vim/vim80/filetype.vim

আমার কনফারেন্সে কোথাও কোনও পার্শ্ব প্রতিক্রিয়া থাকতে পারে, তবে অনুপযুক্ত মডেলিন সিনট্যাক্সটিই কেবল আমার জন্য প্রত্যাশা অনুযায়ী কাজ করে।


1

/usr/share/vim/vim80/debian.vimথেকে vim-commonউপর ডেবিয়ান ভিত্তিক ডিস্ট্রো অক্ষম modelineডিফল্টরূপে।

" modelines have historically been a source of security/resource
" vulnerabilities -- disable by default, even when 'nocompatible' is set
set nomodeline

আপনাকে modelineনিজের .vimrcবা ~/.vim/vimrcফাইলে স্পষ্টভাবে সক্ষম করতে হবে।

set modeline

0

মডেলিন অক্ষম হওয়ার কারণে এটি সম্ভবত।

আমি এটিকে ঘিরে কাজ করি:

  1. কোনও সুরক্ষা সমস্যা এড়াতে সাধারণত এটি অক্ষম করে রাখা।
  2. সুরক্ষারোডলাইন প্লাগইন ইনস্টল করা হচ্ছে ।
  3. আমি যে মডেলগুলি ব্যবহার করি তা কেবল হোয়াইটলিস্ট করা।

এই ক্ষেত্রে, ডিফল্ট শ্বেত তালিকাভুক্ত কমান্ডগুলির অন্তর্ভুক্ত filetype

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