আমি কীভাবে ভিমকে সমস্ত ব্যবহারকারীর কনফিগারেশন উপেক্ষা করতে পারি, যেন তা নতুনভাবে ইনস্টল করা আছে?


21

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

এফএকিউতে এটি সম্বোধন করা হয়েছে যা পরামর্শ দেয় যে উত্তরটি নীচের কমান্ড দিয়ে ভিম শুরু করা উচিত:

vim -u NONE -U NONE -N -i NONE

এটি সেখানে বেশিরভাগ ক্ষেত্রেই পায় তবে runtimepathবিকল্পটিতে এখনও রয়েছে ~/.vimএবং উল্লেখযোগ্যভাবে ~/.vim/after, (যেমন উদাহরণস্বরূপ যদি আমি পরে ফাইলের ধরণ সনাক্তকরণ এবং ফাইল টাইপ পরিবর্তন করি তবে কোড ইন কোড ~/.vim/after/syntax/the_relevant_filetype.vimকার্যকর করা হবে)।

প্রারম্ভকালীন * নিম্নলিখিত কমান্ডগুলি চাওয়ার মাধ্যমে আমি এই নির্দিষ্ট সমস্যাটির সমাধান করতে পারি:

:set runtimepath-=~/.vim
:set runtimepath-=~/.vim/after

... তবে আমি নিশ্চিত না:

  1. এটি একটি দৃ solution় সমাধান: কেবলমাত্র সেগুলিই কি ব্যবহারকারী-কনফিগারেশনকে কার্যকর করতে পারে? অন্য কিছু আছে যা আমি ভেবে দেখিনি?
  2. পছন্দসই ফলাফল অর্জনের আরও ভাল উপায় আছে।

* আর্গুমেন্ট ব্যবহার --cmdবা -u vimrcশেল দিয়ে, বা কেবল সেগুলি ম্যানুয়ালি টাইপ করে।

সম্পাদনা : আমি যে ধরণের সমস্যার সমাধান করতে চাইছি তার একটি নির্দিষ্ট উদাহরণ এখানে। (যদিও আমি এখনও অন্য কোনও সম্ভাব্য সমস্যার সমাধান করতে চাই যা আমার মুখোমুখি হয়নি)):

  1. Content / .vim / পরে / ftplugin / c.vim একটি ফাইল তৈরি করুন, এতে সামগ্রী রয়েছে:

    noremap i :echom "This is not default behaviour"<CR>
    

    এখন আমাদের কাছে কিছু ব্যবহারকারী-ইনস্টল করা কনফিগারেশন রয়েছে যা আমরা এড়াতে চাই। আসুন এফএকিউ এর প্রস্তাবিত সমাধানটি পরীক্ষা করি।

  2. কমান্ড দিয়ে ভিম চালান:

    vim -u NONE -U NONE -N -i NONE
    
  3. কমান্ড লিখুন:

    :filetype plugin on
    :set ft=c
    i
    

পছন্দসই আচরণ : Vim সন্নিবেশ মোডে প্রবেশ করা উচিত। কোনও ব্যবহারকারীর কনফিগারেশন না থাকলে এটি এটি করবে।

পর্যবেক্ষণ আচরণ : Vim "এটি ডিফল্ট আচরণ নয়" প্রিন্ট করে


একটি ইউনিক্স-সদৃশ সিস্টেম, যদি তুমি কি: HOME=/dev/null vim -u NONE?
মারু

@ মুরু চমৎকার ধারণা, এবং সম্ভবত একটি উত্তর হিসাবে যুক্ত মূল্য, কিন্তু এটি নিখুঁত নয় । আপনি অবশ্যই উদাহরণস্বরূপ ক্ষমতাটি হারাবেন :cd ~তবে viminfoফাইলটির ডিফল্ট অবস্থানটি $ HOME এ রয়েছে যা E138 তৈরি করতে পারে। আমার ধারণা, একটি নতুন, খালি ডিরেক্টরি তৈরি করা এবং এটি $ HOME এর জন্য ব্যবহার করা সেরা সমাধান হতে পারে।
ধনী

@ মুরু আমার সাথে কেবল দেখা গিয়েছে যে আপনি যদি setting হোম সেট করে থাকেন তবে সম্ভবত আপনারও নির্দিষ্ট করার দরকার নেই -u NONE?
ধনী

1
যে ক্ষেত্রে /tmpভাল হতে পারে, এটি আমার প্রথম চিন্তা ছিল, কিন্তু তারপরে আমি ব্ল্যাকহোল হিসাবে / dev / নালকে বেছে নিয়েছি। ... বা এরকম কিছু HOME=$(mktemp -d) vim ...
মুড়ু

আপনি যদি ব্যবহার না করেন তবে এটি কী সিস্টেম ভিআমআরসি পড়বে না -u NONE? আপনার কি আচরণের প্রয়োজন তা নির্ভর করে, আমি মনে করি।
মুড়ু

উত্তর:


16

Vim 8.0.1554 হিসাবে (দুর্ভাগ্যক্রমে এখনও নিওভিম নয়) আপনি ব্যবহার করতে পারেন vim --clean। এই পদ্ধতি দ্বারা সুপারিশ করা হয় :help bugs

:help --clean দস্তাবেজ:

"-উ ডিফল্টস-ইউ নোন-আই নোন" এর অনুরূপ:
- ফাইল এবং পরিবেশের ভেরিয়েবলগুলি থেকে আরম্ভকরণ বাদ দেওয়া হয়
- 'রানটাইমপথ' এবং 'প্যাকপথ' হোম ডিরেক্টরি এন্ট্রিগুলি বাদ দিতে সেট করা হয় (-উ ত্রুটিগুলির সাথে ঘটে না)।
- দি | ডিফল্টস.ভিম | স্ক্রিপ্টটি লোড করা হয়েছে, যা 'নোকম্প্যাটেবল' বোঝায়: ভিম ডিফল্ট ব্যবহার করুন
- না | gvimrc | স্ক্রিপ্ট লোড করা হয়েছে
- কোনও ভিমিনফো ফাইল পড়া বা লিখিত হয় না


1
নিস! এটি $HOMEভেরিয়েবলের সাথে ঘোরাঘুরির চেয়ে অনেক সহজ । গুডজব ভিম বিকাশকারী। এবং উত্তরের জন্য আপনাকে ধন্যবাদ!
ধনী

1
--cleanএছাড়াও neovimএখন মাস্টার ( github.com/neovim/neovim/commit/… , 0.4.0 এ অন্তর্ভুক্ত করার জন্য) নিয়ে কাজ করে তবে হোম ডিরেক্টরিটি বাদ দেয় না।
ক্রিশ্চান ক্লাসন

(তবুও, সেই প্যাচটি পোর্ট করার অপেক্ষায়)
খ্রিস্টান ক্লাসন

11

ব্যবহারকারী-নির্দিষ্ট ফাইলগুলি মুছে ফেলার এক উপায় হ'ল এর আলাদা মানটি ব্যবহার করা $HOME। কিছুই পড়তে বা লিখিত (যেমন viminfo) এর অনুমতি দেওয়ার জন্য, আপনি ব্যবহার করতে পারেন /dev/null:

HOME=/dev/null vim -u NONE

এটি সম্পর্কে ত্রুটি ঘটায় viminfo, সুতরাং, পরিবর্তে আপনি একটি অস্থায়ী ফোল্ডার তৈরি করতে পারেন বা একটি বিদ্যমান ব্যবহার করতে পারেন (যেমন /tmp):

HOME=$(mktemp -d) vim -u NONE

যেমন একটি সঙ্গে $HOME, -u NONE, প্রয়োজন নাও হতে পারে আপনার প্রশাসকের সাথে সিস্টেম-ব্যাপী যোগ করেনি তার উপর নির্ভর করে vimrc। উদাহরণ হিসেবে বলা যায়, সব ল্যাব সিস্টেম আমি প্রশাসক উপর, আমি যোগ একটি /etc/vim/vimrc.local(প্যাকেজ তেজ এর ডিফল্ট দ্বারা sourced /etc/vim/vimrc) আছে যে nocompatible, syntaxইত্যাদি সেট, এবং filetype onহিসাবে ভাল।


3
ভিমিআইফোন লোডিং প্রতিরোধের জন্য কোনও নয়
ক্রিশ্চিয়ান ব্র্যাব্যান্ড 18

1

আমি এর অনেক উত্তর দিতে পারি না তবে একটি পয়েন্ট যা আমি উল্লেখ করি না, এবং শিরোনামে কী আছে তার ব্যাখ্যাটির উত্তর দিচ্ছি

আমি কীভাবে ভিমকে সমস্ত ব্যবহারকারীর কনফিগারেশন উপেক্ষা করতে পারি, যেন তা নতুনভাবে ইনস্টল করা আছে?

কিছু পরামর্শ দিয়েছেন vim -u NONE বাvim -u NORC

এটি কোনও উপায়ে নেই কোনও ভিএমআরসি ফাইলের চেয়ে কিছুটা বেশি খালি। আমি যখন 'i' টাইপ করি তখন এটি 'সন্নিবেশ' বলে না। আপনি এটি এখনও 'সন্নিবেশ' বলতে চান। আপনি যদি আপনার ভিএমআরসি ফাইলটি ফাঁকা দিয়ে ভিম শুরু করেন তবে এটি সন্নিবেশ প্রদর্শন করবে

কারণ ভিম প্রথমে একটি ডিফল্ট কনফিগারেশন লোড করে।

আপনার ভিএমআরসি ফাইলটি ফাঁকা হয়ে যাওয়ার জন্য আপনি সেই ডিফল্ট ফাইলটিতে ভিএমকে নির্দেশ করতে পারেন। আপনার কাছে আছে কিনা তা যাচাই করুন /etc/vim/vimrcএবং আপনি করতে পারেন vim -u /etc/vim/vimrcবা অক্সে, ডিফল্ট ফাইলটি/usr/share/vim/vicmrc


আমি মনে করি ঠিক এটিই ভাইম - ক্ল্যান আপনার জন্য করবে।
কুইমারাইস্ক

@quemeraisc vim --cleanলোড হবে defaults.vim। এই উত্তরটি সিস্টেম vimrc (দেখুন উল্লেখ করা হয় :help system-vimrc।), যা আমি মনে করি হয় না দ্বারা লোড vim --clean
ধনী

@barlap: defaults.vim (দেখুন সঙ্গে এড়ানোর বিভ্রান্তির :help defaults.vim), ভালো হতে বাক্যে কথন পরিবর্তন করতে পারে default configথেকে system vimrcএই উত্তর হবে। বা আরও ভাল, উভয় উত্তর আলোচনা!
ধনী

0

থেকে vim-প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী 2.5 :

2.5। আমার ভিমে "xyz" (কিছু) সমস্যা আছে। এটি কীভাবে নির্ধারণ করব এটি আমার সেটআপ বা ভিমের সাথে সমস্যা? / আমি ভিমে একটি বাগ খুঁজে পেয়েছি?

প্রথমে আপনাকে খুঁজে বের করতে হবে, ত্রুটিটি আসল রানটাইম ফাইলগুলিতে বা ভিমের সাথে বিতরণ করা কোনও প্লাগইনে রয়েছে কিনা বা এটি আপনার .vimrc বা .gvimrc থেকে কোনও কনফিগারেশন বিকল্পের সাধারণ পার্শ্ব প্রতিক্রিয়া কিনা। সুতরাং প্রথমে, এইভাবে ভিম শুরু করুন:

vim -u NONE -U NONE -N -i NONE

এটি আপনার ভিিমিনফো ফাইল (-i NONE) না পড়ে, কোনও কনফিগারেশন ফাইল না পড়ে (-vimrc ফাইল না পড়ার জন্য -uNONE এবং .gvimrc ফাইলটি না পড়ার জন্য ইউএন নন) বা ভিমিনফো মোডে (-N) ভিমটি শুরু করে বা এমনকি প্লাগইন।


1
FAQ এ থাকা সত্ত্বেও, প্রশ্নটিতে উল্লিখিত কারণগুলির জন্য এটি আসলে কাজ করে না।
ধনী

@ সমৃদ্ধ প্রশ্নে আপনার মন্তব্য থেকে: ensure that none of the behaviour I'm seeing is caused by user config- দেখে মনে হচ্ছে আপনি এই FAQ- এ যা যা ব্যাখ্যা করা হচ্ছে ঠিক তা করার চেষ্টা করছেন । আমি আপনার প্রশ্নটি আবার পড়েছি এবং এখনও আপনি বুঝতে পারেন না যে আপনি কী কারণ উল্লেখ করেছেন।
এমমন্টু

আমি প্রকৃতপক্ষে FAQ এ যা ব্যাখ্যা করা হচ্ছে ঠিক তা করার চেষ্টা করছি। কিন্তু এটির সমাধানটি কার্যকর করে না, কারণ runtimepathসেটিংস the
ধনী

এর সম্পর্কে ঠিক কী ভুল runtimepath? এটি বর্ণিত হিসাবে এই বিকল্পটির জন্য এটি ডিফল্ট বলে মনে হচ্ছে :help rtp। এই মানটি কীভাবে আপনার পরীক্ষার উপর প্রভাব ফেলছে?
এম মন্টু

@ ধনী আমার অর্থ, আপনি ফাইল টাইপ সনাক্তকরণ চালু করার পরে একটি নতুন ইনস্টলটির সাথে তুলনা করার সময় কি কোনও পার্থক্য দেখছেন?
এম মন্টু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.