রুট হয়ে গেলে সেটিংস এবং প্লাগইনগুলি (do sudo vim`)?


15

যখন আমাকে কোনও ফাইলকে রুট এবং ব্যবহার হিসাবে সম্পাদনা করতে হবে তখন আমি সত্যিই হতাশাবোধ করি sudo vim somefile.confএবং আমি আমার কী-বাইন্ডিং এবং সেটিংস এবং প্লাগইন ব্যবহার করতে পারি না।

যখন আমাকে মূল হিসাবে সম্পাদনা করতে হবে তখন আমার সমস্ত কাস্টমাইজেশন পাওয়ার কোনও উপায় আছে?

আমি আমার প্লাগিনগুলির জন্য ভিআইএম প্লাগ ব্যবহার করছি।


5
পার্শ্ব নোটে: sudo vim fileআরও ভাল হিসাবে লিখিত হয় sudo -e file(আপনি পরিবেশের পরিবর্তনশীল সেট করে থাকেন তবে EDITOR=vim)।
lcd047

@ lcd047: আপনার এই মন্তব্যটি একটি উত্তরে করা উচিত
স্থির_আর্টি

উত্তর:


15

Vim কে রুট হিসাবে খোলার পরিবর্তে, টিতে পুনর্নির্দেশের মাধ্যমে আপনি কেবল রুট হিসাবে সংরক্ষণ করতে পারেন। এখানে একটি উদাহরণ:

:w !sudo tee % > /dev/null

এটি আপনার .vimrc- এ উপন্যাসের জন্য দরকারী হতে পারে, আমি ব্যবহার করি :Sw:

command! -nargs=0 Sw w !sudo tee % > /dev/null

4
এটি এর জন্য দরকারী I did a bunch of editing and then realized I should have used sudoedit, তবে সাধারণ ক্ষেত্রে আমি sudo -e/ ব্যবহার করার পরামর্শ দেব sudoedit
জামেসন

7

দুটি জিনিস:

  1. ব্যবহার করুন $ sudo -e fileসম্পাদনায় যান fileসঙ্গে $EDITOR। ইতিমধ্যে সেট না export EDITOR=/path/to/vimথাকলে যোগ করুন $EDITOR

  2. ভ্যানিলা যাওয়া আপনার প্লাগইন আসক্তির বিরুদ্ধে লড়াই করার একটি দুর্দান্ত উপায়।


প্লাগইন আসক্তি পুনরুদ্ধারের পরামর্শ দেওয়ার জন্য -1 (জে / কে, আসলেই কোনও
নিম্নমান

3
মনে রাখবেন যে এটি ভিট রুট হিসাবে চালায় না, যেমন sudo vimকরে। সম্পাদনাটি আপনার সাধারণ ব্যবহারকারী হিসাবে ঘটে এবং তারপরে sudo মূল ফাইলটি আপডেট করে upd
জামেসন

দ্রষ্টব্য: এখানে দুটি অনুরূপ বিকল্প রয়েছে sudo: -Eএবং -e-Eএর অর্থ "সংরক্ষণকারীর পরিবেশ", এবং এটি আপনি চান এটি নয়। -eপরিবর্তে, এর অর্থ "কমান্ড চালাবেন না, তবে একটি সংজ্ঞায়িত পদ্ধতিতে কোনও ফাইল সম্পাদনা করুন"।
iksemyonov

3

দেখে মনে হচ্ছে আপনাকে যা করতে হবে তা হ'ল সিমলিংক রুটের ~/.vimrcএবং ~/.vim/আপনার এর।

কেবল রুট হিসাবে চালান:

ln -s /home/<user>/.vimrc /root/.vimrc
ln -s /home/<user>/.vim/ /root/.vim/

এবং এটি করা উচিত!

(পিএস আমি এই মুহূর্তে এটি আবিষ্কার করেছি এবং অন্য কোনও নুবসের সাথে ভাগ করতে চেয়েছি। আরও ভাল উপায় আছে কিনা তা দয়া করে আমাকে জানান))


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

0

আপনি যদি আগেই জানেন যে কমান্ডগুলি ব্যবহার করে আপনার কোনও ফাইলকে রুট হিসাবে সম্পাদনা করা দরকার sudoedit <file>বা sudo -e <file>আপনার সাধারণ সম্পাদনা পছন্দগুলি সহ এটি করার জন্য আপনাকে একটি বিশেষ পরিবেশে সেট আপ করতে হবে। ফাইলটির একটি অনুলিপি তৈরি করা হয়েছে এবং এটি সম্পাদনা করার জন্য আপনার সম্পাদক চালু করা হয়েছে (আপনার ব্যবহারকারী হিসাবে)। আপনি যখন প্রস্থান করবেন তখন ফাইলটি মূল হিসাবে এটির মূল স্থানে অনুলিপি করা হবে।

এটি সবচেয়ে নিরাপদ এবং প্রস্তাবিত উপায় but এই লক্ষ্যে sudo tee এসএমপিএল দ্বারা প্রস্তাবিত সমাধানটি অবশ্যই সঠিক ট্র্যাকের দিকে রয়েছে, তবে কিছু ছোটখাটো উন্নতি রয়েছে যা এজ কেসগুলি পরিচালনা করতে পারে made উল্লেখযোগ্যভাবে একটি জিইউআই বনাম কনসোল ইন্টারফেসে সুডো পাসওয়ার্ড প্রম্পট পরিচালনা করার পার্থক্যটি কিছুটা মনোযোগ দেওয়ার মতো।

এটি সেট আপ করার একটি সহজ উপায় হ'ল ভিম-হিজরত প্লাগইন ব্যবহার করা। এটিতে এই নির্দিষ্ট সমস্যাটি এবং কয়েকটি অন্যান্য সহজ জিনিসগুলি একটি সহজ প্যাকেজে পরিণত হয়েছে। ব্যবহার কল করার মতোই সহজ :SudoWrite। এমনকি আমি কিছুটা হ্যান্ডিয়ার অ্যাক্সেস ম্যাপিং ব্যবহার করি:

cmap w!! call SudoWrite()

এটি আপনাকে রুট হিসাবে কোনও ফাইল লেখার দক্ষতা অর্জন করবে :w!!


-1

আরেকটি বিকল্প হ'ল sudo -E vim somefile.confসম্পাদনা করার জন্য চালানো , যা আপনার পরিবেশ সংরক্ষণ করবে, সুতরাং আপনার .vimrcএবং প্লাগইনগুলি ব্যবহার করা হবে।


আরে, ভাল কৌশল! এটি ভি এবং অন্যান্য কমান্ডের প্রচুর জন্য কার্যকর।
রবি Wxyz

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