আমার যখন << ফাইল নাম> sudo করবেন তখন আমার কেন সিনট্যাক্স হাইলাইট হবে না?


27

Sudo ব্যবহার করার সময় আমি vi এর মাধ্যমে সম্পাদনা করছি এমন ফাইলগুলিতে কীভাবে সিনট্যাক্স হাইলাইট করার অনুমতি দেওয়া যায় তা আমি বুঝতে পারি না । যখন আমি sudo vi <filename>টার্মিনালটি কেবল আমার টার্মিনাল সেটিংসের কালো এবং সাদা। Vi তে যদি আমি :syntax onকিছু পরিবর্তন করি না।

যখন আমি vi <filename>সমস্ত সিনট্যাক্স সঠিকভাবে রঙিন হয়। RHEL 5.4 ব্যবহার করে, প্রাসঙ্গিক env:

LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;
33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;
32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;
32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;
31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;
31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;
35:*.png=01;35:*.tif=01;35:

SHELL=/bin/bash

TERM=xterm-color

3
viরঙ সমর্থন করে না, তাই রঙ দেখানো কোনও কিছুই চলমান vimবা অনুরূপ।
ক্রিস এস

উত্তর:


26

বড়দের উত্তর সম্ভবত সবচেয়ে সম্ভবত। আপনি আপনার মূল অ্যাকাউন্টগুলিকে vi স্থায়ীভাবে ভিমে পরিবর্তন করতে চাইবেন না যেমন আপনার সংস্থানগুলি কম থাকে সবসময় কাজ করার জন্য প্রায় গ্যারান্টিযুক্ত, আমি ভিম সম্পর্কে তেমন নিশ্চিত নই।

আপনি সম্ভবত ব্যবহার করছেন (রঙ)

/usr/bin/vim 

আপনার সাধারণ ব্যবহারকারীর অধীনে এবং

/bin/vi

সুডো বা মূলের অধীনে। আপনি ব্যবহার করে পরীক্ষা করতে পারেন:

which vi

একবার আপনার সাধারণ ব্যবহারকারীর অধীনে এবং অন্যটি সুডোর মাধ্যমে

sudo which vi

man which 

আপনার আরও বিশদ প্রয়োজন হলে


আমি ব্যবহারের তেজ রুট অ্যাকাউন্ট পরিবর্তন হয়নি কিন্তু বুদ্ধিমান পরিবর্তে উবুন্টু ষষ্ঠ <ফাইল> যা দেখিয়েছেন যে ষষ্ঠ তেজ ওরফে অন্য হয়েছিল আমার ইউজার আমাকে ব্যবহার করতে উবুন্টু তেজ <ফাইল> বলে
স্কট Lundgren

17

কোনও আরএইচইএল সিস্টেমে, কোনও সিনট্যাক্স হাইলাইটিং সমর্থন ছাড়াই /bin/viসাধারণত একটি সর্বনিম্ন সংস্করণ vim/usr/bin/vimপুরো বৈশিষ্ট্যযুক্ত সম্পাদক। এটি সম্ভবত আপনার ব্যবহারকারীর পরিবেশের viজন্য একটি উপাধি vim। এটা চেষ্টা কর:

sudo vim /some/file

আপনি কি এখন সিনট্যাক্স হাইলাইট করবেন?


হ্যাঁ! আমার মনে হচ্ছে যে আচরণটি আমি চাইছিলাম তার জন্য ডুব দেওয়ার উত্তরটি আমার প্রয়োজন ছিল
স্কট লন্ডগ্রেন

11

আপনার viসম্ভবত /bin/viপ্যাকেজটি রয়েছে vim-minimalযা সিনট্যাক্স হাইলাইটিং সমর্থন করে না। আপনার জন্য sudo viপ্রবর্তন/bin/vi

বাশ কেবলমাত্র আপনার কমান্ড লাইনের প্রথম শব্দের উপরে উপন্যাস প্রসারিত করে, তাই এতে:

sudo vi

vivimএমনকি যদি আপনার উপনামটি সংজ্ঞায়িত করা থাকে তবে তার বিকল্প প্রতিস্থাপন করা হবে না ।

সমাধানটি অন্য একটি নাম (ব্যবহারকারীকে অনুরোধ করার জন্য sudo) সংজ্ঞায়িত করা হয়েছে :

ওরফে সুডো = 'সুডো'

দ্বিতীয় পরে স্থান নোট করুন sudo

এটি ব্যবহার করে sudo, বাশ viইন-এর জন্য উপন্যাস প্রসারণ করবে sudo vialiasবাশ ডক এর বিভাগে এটি বলে:

যদি উলামের মানটির শেষ অক্ষরটি ফাঁকা হয় তবে তারপরের পরবর্তী কমান্ড শব্দটিও ওরফে প্রসারণের জন্য পরীক্ষা করা হয়।

আপনি আপনার কমান্ডটি প্রবেশ করার পরে, সম্প্রসারণের ফলাফলটি দেখতে আপনি Ctrl+ Alt+ টিপুন ।Ebash

ক্রেডিট:

https://bbs.archlinux.org/viewtopic.php?id=36796

http://www.shellperson.net/using-sudo-with-an-alias


কেবলমাত্র aliasing viমধ্যে /root/.bashrcকাজ করবে না।

এটি আরও লক্ষণীয় হতে পারে যে vi/etc/profile.d/vim.sh এ কয়েকটি ডিস্ট্রোজে মূলের জন্য অ্যালাইজড নয়:

if [ -n "$BASH_VERSION" -o -n "$KSH_VERSION" -o -n "$ZSH_VERSION" ]; then
  [ -x /usr/bin/id ] || return
  ID=`/usr/bin/id -u`
  [ -n "$ID" -a "$ID" -le 200 ] && return
  # for bash and zsh, only if no alias is already set
  alias vi >/dev/null 2>&1 || alias vi=vim
fi

এটি পরিবর্তন করলেও সমস্যার সমাধান হবে না।


সুডোর সাথে এলিয়াস রাখার দুর্দান্ত কৌশল!
কোরি হেন্ডারসন

এটি পছন্দ করুন - সহজ এবং মার্জিত !!! এটা সঠিক উত্তর.
ফিল্মজে

3

ডিফল্টভাবে 5.4 vi এ ডিফল্ট হয়। কোন সংস্করণটি শুরু হয়েছিল তা আমি ভুলে গিয়েছি This এটি আপনার প্রয়োজনীয় আবশ্যক নামটি যুক্ত করবে:

cat <<_EOF >>/root/.bashrc

alias "vi"="/usr/bin/vim"
_EOF

2

আমি দেখতে পেয়েছি যে আমার ভিএম সংস্করণে ( sudo apt-get install vimডেবিয়ান 7 দিয়ে ইনস্টল করুন) syntax onকমান্ডটি প্রতি ব্যবহারকারী ব্যবহারকারীর ভিত্তিতে সংজ্ঞায়িত করা হয়েছে ~/.vimrc। তবে ডিফল্টরূপে ইনস্টলটি লোড করার /root/.vimrcজন্য কোনও ফাইল তৈরি করে নি sudo vi। সুতরাং আমি সবেমাত্র কপির ~/.vimrcসাথে /root/কপির অনুলিপি করেছিলাম এবং এই কৌশলটি করেছেন:sudo cp ~/.vimrc /root/


1

এটি কারণ আপনার মূল ব্যবহারকারীটির ভিম কনফিগারেশন ফাইল নেই। সুতরাং কেবল আপনার আদর্শ ব্যবহারকারী ভিএম কনফিগারেশন ফাইলটি মূল ডিরেক্টরিতে অনুলিপি করুন।

sudo cp -r ~/.vi* /root/ এরকম কিছু.

এনবি: পরীক্ষা করুন যে আপনার ~/vi*কাছে উইময়ের জন্য নয়, তার সাথে ফাইল করে নেই কিনা ।


0

1) আপনি কি সত্যই ভিএম ব্যবহার করছেন এবং ভিআই না ব্যবহার করে দেখুন (যা দুর্ভাগ্যবশত তাজা ইনস্টল হওয়া সিস্টেমে প্রায়শই ডিফল্ট থাকে)

2) আপনার /etc/vim/vimrcলাইন আছে তা পরীক্ষা করুনsyntax on

3) সমস্ত ধরণের ফাইলের সিন্টেক্স-হাইলাইটিং তথ্য ডিফল্টরূপে উপলব্ধ থাকে না ....


এখানে / etc / vim / vimrc ছিল না, তবে / etc / vimrc এর ডিফল্টরূপে সিনট্যাক্স হাইলাইট হয়েছে: যদি & t_Co> 2 || hlsearch endif এ সেট ("gui_running") সিনট্যাক্স আছে
স্কট লন্ডগ্রেন

-1

যারা এখনও সহায়তা খুঁজছেন তাদের জন্য, এই আদেশগুলি ব্যবহার করে দেখুন।

  • sudovi = which sudo vi
  • usrvi = which vi
  • যদি এই দুটি অবস্থান একই থাকে তবে চালিয়ে যাবেন না।

তা না হলে ...

  • mv $sudovi $sudovi.save
  • ln -s $usrvi $sudovi (প্রতীকী লিঙ্ক)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.