প্রত্যাশার মতো কাজ করছে না মডেলিনের সাথে ভিএম ফাইল টাইপ সেট করা


12

এই প্রশ্নের স্বীকৃত উত্তর অনুসারে , আমি কিছু ফাইলগুলিতে ফাইল টাইপ সনাক্তকরণে বাধ্য করার জন্য ভিএম-তে মডেলিনগুলি ব্যবহার করার চেষ্টা করছি।

উদাহরণস্বরূপ, নামের একটি ফাইলের শীর্ষে gitconfig(নোট নেই যে শীর্ষস্থানীয় নেই .), আমার নিম্নলিখিত লাইনটি রেখেছেন:

# vim: set filetype=gitconfig : 

modelineআমার সিস্টেমে সক্ষম। যাইহোক, আমি যখন ভিএম-তে ফাইলটি খুলি তখন প্রত্যাশার চেয়ে set filetype?ফিরে আসে ।confgitconfig

এটা কি সম্ভব যে আমার ভিএম কনফিগারেশনের অন্যান্য অংশগুলি (যেমন ফাইল টাইপ.ভিম) এই অদ্ভুত আচরণের কারণ হয়ে দাঁড়িয়েছে?

মন্তব্যের জবাবে সম্পাদিত:

set compatible? আয় nocompatible

set modeline? আয় modeline

verbose set filetype? আয়:

filetype=conf
      Last set from /usr/share/vim/vim73/filetype.vim

আমি বুঝতে পারি না যে সিস্টেমে ওয়াইড ফাইল টাইপ প্লাগইনটি আমি নিজেই ফাইলটিতে যা সেট করেছি সেগুলি ওভাররাইড করবে।

একটি চূড়ান্ত নোট: এটি ওএসএক্সের সাথে প্রেরিত ভিম 7.3 এর সংস্করণ।

ম্যাকভিমের সর্বশেষতম সংস্করণ একই সিস্টেমে চলছে একই .vimrcসাথে প্রত্যাশিত আচরণ করে, set ft?ফিরে আসার সাথে filetype=gitconfig।


আমি সাধারণত ফাইলগুলির শেষের (শেষ পংক্তিতে) বিকল্পগুলি সেট করে দেখেছি - সম্ভবত এটিই সমস্যা ...
— rozcietrzewiacz

কেবল তা নিশ্চিত করার জন্য: আপনি কি পরীক্ষা করেছেন যে set modeline?এটি মুদ্রণ করে না nomodeline?
— rozcietrzewiacz

আমি মডেলিন কাজ না করার সবচেয়ে সাধারণ কারণটি compatibleসেট করা আছে is এটি খুব মূল্যবান হবে।
— এড স্টিল

প্রতিক্রিয়া জন্য আপডেট প্রশ্ন দেখুন।
— মুরালি সুরিয়ার

উত্তর:


21

সুতরাং, কিছু খনন করার পরে, এটি ট্রান্সপোর্ট করে যে vimrcওএসএক্সের সাথে প্রেরিত সিস্টেমটি modelines( চলমানের নোটটি নোট করুন) ভেরিয়েবল 0 এ সেট করে This আমার .vimrcসমস্যার সমাধানে একটি শূন্য-মানে মডেলাইনগুলি সেট করা ।

vim --versionকৌতূহলের জন্য সম্পূর্ণ আউটপুট: আউটপুট আমাকে সিস্টেম ভিএমআরসি চেক করতে অনুরোধ করেছে:

% vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jun 24 2011 20:00:09)
Compiled by root@apple.com
Normal version without GUI.  Features included (+) or not (-):
...
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -D_FORTIFY_SOURCE=0 -Iproto -DHAVE_CONFIG_H -arch i386 -arch x86_64 -g -Os -pipe
Linking: gcc -arch i386 -arch x86_64 -o vim -lncurses

সিস্টেম ভিমআরসি-র দিকে তাকানো:

% cat /usr/share/vim/vimrc 
" Configuration file for vim
set modelines=0         " CVE-2007-2438
...

আমাকে modelinesভেরিয়েবলের নেতৃত্বে দিন । দেখা যাচ্ছে যে ম্যাকভিম এই সিস্টেম ফাইলটি উত্স করে না (সম্ভবত এর পরিবর্তে কোনও সিস্টেম জিভিআইএমআরসি খুঁজছে? :help startupপরিষ্কার নয়)।

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jul 27 2011 19:46:24)
MacOS X (unix) version
Included patches: 1-260
Compiled by XXXXX
Huge version with MacVim GUI.  Features included (+) or not (-):
...
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/Applications/MacVim.app/Contents/Resources/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -p
ipe  -DMACOS_X_UNIX -no-cpp-precomp  -g -O2 -D_FORTIFY_SOURCE=1
Linking: gcc   -L.         -Wl,-syslibroot,/Developer/SDKs/MacOSX10.6.sdk -L/usr/local/lib -o V
im -framework Cocoa -framework Carbon      -lncurses  -liconv -framework Cocoa    -fstack-prote
ctor -L/usr/local/lib  -L/System/Library/Perl/5.10/darwin-thread-multi-2level/CORE -lperl -lm -
lutil -lc -framework Python   -framework Ruby

1

এটির জন্য আমার ম্যাকোস সিস্টেমে কাজ করার জন্য আমাকে settings / .vimrc এ বেশ কয়েকটি সেটিংস সংজ্ঞায়িত করতে হয়েছিল:

modeline
modelines=2

যেখানে ' মডেলাইন ' ইন-ফাইল সেটিংসের ব্যবহার সক্ষম করে এবং ' মডেলাইনস = # ' লাইন সংখ্যা নির্ধারণ করে যা ভিএম / ভিআই সেট কমান্ডগুলির জন্য পরীক্ষা করবে।

এই পরামিতিগুলি সেট হয়ে গেলে আমি সেট পরামিতিগুলিকে ওভাররাইড করতে আমার ফাইলগুলিতে নীচের লাইনের মতো সিনট্যাক্স ব্যবহার করতে সক্ষম হয়েছি।

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