V ভিমেতে পাঠ টার্মিনালের সাথে মেলে না


10

আমি ম্যাকভিম ব্যবহার করছি এবং যখন আমি এটি টার্মিনাল ( mvim) থেকে চালু না করি তখন এর $ PATH আমি আমার .bash_profile এ যা সেট করেছি তা অন্তর্ভুক্ত হয় না। এটির কাছে কেবল ডিফল্ট মান রয়েছে বলে মনে হয় /usr/bin:/bin:/usr/sbin:/sbin

আমি ওএস এক্স 10.5.8 চালাচ্ছি। এমনকি যদি আমি এটি আমার .vimrc এ ম্যানুয়ালি সেট করতে পারি তবে তা ঠিক হবে, যদিও আমি এটি টার্মিনালের মতো একই জায়গা থেকে টানতে পছন্দ করব। আমি let $PATH += /blah/foo:/bar/etcকোনও সাইট এর পরামর্শ অনুসারে চেষ্টা করেছি, তাতে কোনও লাভ হয়নি।

সম্পাদনা / সমাধান: নীচে আমার উত্তর দেখুন। এটি সমাধানের জন্য ম্যাকভিমের একটি বিকল্প রয়েছে।


উত্তর:


12

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

তারা কেন এটি এভাবে করতে পছন্দ করে তা আমি বলতে পারি না তবে এটি সত্য বলে প্রতীয়মান। অগ্রাধিকারগুলিতে (উন্নত ট্যাবের নীচে) আপনি "লগইন শেলটিতে ভিম প্রক্রিয়া চালু করতে" চয়ন করতে পারেন তবে এটি কেবল $PATHআমার জন্য কিছুটা উন্নতি করতে পারে।

সর্বোত্তম আমি বলতে পারি, ম্যাকভিম ব্যবহার করে /usr/libexec/path_helper- যা পরিবর্তে /etc/pathsফাইলের (1) পাওয়া আইটেম এবং (2) /etc/paths.d/ডিরেক্টরিতে পাওয়া অতিরিক্ত কিছু ব্যবহার করে । ব্যবহারকারীর হোম ডিরেক্টরিতে ( .profileযেমন বা এর মাধ্যমে ) করা কোনও পরিবর্তন উপেক্ষা করা হয়।

সংক্ষেপে, আপনি ওএসএক্স ডিফল্ট পেতে এবং নিজের সাথে যুক্ত হওয়া কোনও অ্যাপ্লিকেশন পান /etc/paths.d। (উদাহরণস্বরূপ, ম্যাকটেক্স আমার সিস্টেমে এটি করে।) সুতরাং আপনি যদি আপনার ম্যাকভিম পাথটি সামঞ্জস্য করতে চান তবে একটি উপায় হ'ল আইটেম সহ একটি ফাইল যুক্ত করা /etc/paths.d। (আমি /etc/pathsতখন থেকে সরাসরি সম্পাদনা করব না আপনি সিস্টেম আপডেটের মাধ্যমে পরিবর্তনগুলি পূর্বাবস্থায় ফেলার ঝুঁকিটি চালান))

আমাকে এটি জানাতে ধন্যবাদ। আমি ম্যাকভিমে একটি ইচ্ছুক তালিকা ফাইল করতে যাচ্ছি।


আমি এটিও ভেবে দেখতাম তবে আমি কয়েকটি জিনিস '/etc/paths.d/' যুক্ত করেছি যা টার্মিনালে প্রদর্শিত হয় তবে ম্যাকভিমের সাথে নয়।
ডোনট

এবং প্রকৃতপক্ষে, ম্যাকভিমের পথে যা আছে তার চেয়ে আমার '/ ইত্যাদি / পাথ' ফাইলটিতে আরও রয়েছে।
ডোনট

@ দুনট: ভাল, এটা বিজোড়। আমার মেশিনে, আমি যদি এতে কিছু যুক্ত করি তবে /etc/paths.dপরের বার ম্যাকভিম বুট করার পরে এটি প্রদর্শিত হবে। আপনি সেখানে কোন ফর্ম্যাট রাখছেন? প্রতিটি লাইনে $ PATH ডিরেক্টরি সহ (যেমন, / usr / টেক্সবিন) আমার বিশ্বাস, এটি প্রতি লাইনে একটি আইটেম হওয়া উচিত।
টেলিমাচুস

আমি আপনার প্রথম অনুচ্ছেদটি সম্পূর্ণরূপে মিস করেছি: "একটি লগইন শেলের মধ্যে ভিম প্রক্রিয়া চালু করতে" নির্বাচন করা আমার পক্ষে কৌশলটি করেছে। আমার উত্তর দেখুন।
ডানট

7

বিটিডাব্লু, "লগইন শেলটিতে ভিম প্রক্রিয়া চালু করুন" পছন্দটি ম্যাকভিমে আর পাওয়া যায় না (কমপক্ষে v7.3 নয়)। আমি দেখতে পাচ্ছি যে ফাইন্ডার থেকে ম্যাকভিম চালু করা ভুল পথ পায় তবে শেল থেকে এটি চালু করা ("এমভিআইএম" হিসাবে) সঠিক পথ পায়।


3

এটি .বাশ_ প্রোফাইলে থেকে উত্সাহিত নয়, তবে আপনি এটি আপনার .vimrc এ ব্যবহার করতে পারেন:

let $PATH=$PATH . ':/blah/foo'

আপনার কাছে থাকতে হবে: বা এটি সঠিক প্যাথ ভেরিয়েবল হবে না।


আমি কেবল এটি চেষ্টা করেছি এবং ম্যাকভিমের পক্ষে $ প্যাথ পরিবর্তন হবে বলে মনে হয় না। আমি এটি টার্মিনাল (উভয় /usr/bin/vim(অ্যাপল থেকে) এবং /opt/local/bin/vim(ম্যাকপোর্টগুলি থেকে) ভিমের সাথেও পরীক্ষা করেছি এবং এটি অপ্রয়োজনীয় বলে মনে হচ্ছে the টার্মিনালে ভিম ইতিমধ্যে আমার ডট ফাইলগুলি দ্বারা উত্সর্গীকৃত যথাযথ $
প্যাথটি তুলেছে

1
আমি এটি চেষ্টা করেও কোনও লাভ হয়নি।
ডোনট

2

আমি বিশ্বাস করতে পারি না আমি এটি আগে দেখিনি। ঠিক আছে, আমি এটি বিশ্বাস করতে পারি। যাইহোক, ম্যাকভিম একটি বিকল্প নিয়ে আসে যা এটি সমাধান করে। অগ্রাধিকার অধীনে কেবল "লগইন শেলের মধ্যে ভিম প্রক্রিয়া চালু করুন" পরীক্ষা করুন। এটাই, এটি কাজ করে। Snazzy। আমাকে বোকা বানাও.

ওহো

দুর্ঘটনাক্রমে আমি এই উত্তরটি বুঝতে পারি নি যে টেলিম্যাকাস ইতিমধ্যে আমাকে সঠিক উত্তর দিয়েছিল । উত্তর হিসাবে তার চিহ্নিত।


খুশি এটি সাজানো
টেলিমাচাস

1

এই ম্যাক ডেভ সেন্টার নিবন্ধটি কিছুটা কার্যকর হতে পারে।


এটি কাজ করতে পারে না। কিছু ভুল হতে পারে। নিবন্ধটিতে একটি অ্যাপের 'তথ্য সম্পত্তি তালিকার ফাইলটিতে' এলএসইএনভায়রনমেন্ট 'সম্পত্তি যুক্ত করার পরামর্শ দেওয়া হয়েছে যা আমি Library / লাইব্রেরি / পছন্দসমূহ / org.vim.MacVim.plist হিসাবে ধরে নিয়েছি। আমি কী হিসাবে এটি 'পথ' এবং 'পথ' এবং 'AT পথ' চেষ্টা করেছি) এবং একটি স্ট্রিংয়ের মান হিসাবে আমি কী চাই তার জন্য একটি অভিধান তৈরি করেছি। এখনও মনে হচ্ছে কিছু রহস্যময় উত্স থেকে PATH টানছে। প্লিস্ট ফাইলের স্ক্রিনশট
ডোনাট

1

পাথস.ডি ডিরেক্টরিতে কোনও ফাইল যুক্ত করতে আমার কোনও সমস্যা হয়নি। আমি মাইএসকিএল নামে একটি ফাইল যুক্ত করেছি, যার বিষয়বস্তু ছিল:

, / Usr / স্থানীয় / MySQL / বিন [প্রত্যাবর্তন]

তারপরে আমি এই ফাইলটিকে পাথস.ডি ডিরেক্টরিতে রেখেছি এবং এর মালিকানাটিকে রুট: হুইলে পরিবর্তন করেছি। এখন mysql ডিরেক্টরিটি আমার $ PATH ভেরিয়েবলটিতে স্বয়ংক্রিয়ভাবে যুক্ত হবে।

আমি পুরোপুরি তদন্ত করিনি, তবে সম্ভবত (ক) লাইনের শেষে [রিটার্ন] সহ, এবং / অথবা (খ) ফাইলটির মালিকানা রুটে সেট করা প্রয়োজন হতে পারে।


1

ম্যাকভিম উত্স তৈরি করবে ~/.zprofileএবং /etc/profile, যাতে আপনি নিজের PATHসেটিংসটি সেখানে রাখতে পারেন।

স্ট্যাক ওভারফ্লোতে https://github.com/b4winckler/macvim/wiki/Troubleshooting#for-zsh-users এবং এই প্রশ্নটি দেখুন ।

(ম্যাকভিম সংস্করণ 7.3 (65) এর সাথে পরীক্ষিত)।


1

আমি আজ এই মধ্যে দৌড়ে। ম্যাকভিমে আর "লগইন শেল" বিকল্প নেই, এবং ব্যবহারকারী-নির্দিষ্ট সেটিংয়ের জন্য সিস্টেম-প্রশস্ত ফাইলগুলি সম্পাদনা করা স্কেচিযুক্ত।

এখানে শুধুমাত্র ভিএম অপশন ব্যবহার করে একটি সমাধান দেওয়া হয়েছে (দেখুন :help :!এবং দেখুন :help shell)।

আপনার ~/.vimrcলাইন যুক্ত করুন

set shell=/bin/bash
set shellcmdflag=-l\ -c

এটি bash(ম্যাক) ভিম থেকে আপনার ডিফল্ট শেলকে তৈরি করে এবং অনুরোধ -lকরা কমান্ডগুলিতে পতাকা (লগইন শেল) যুক্ত করে :!{cmd}। কার্যকর করার সময় :shell, ব্যাশটি "ইন্টারেক্টিভ শেল যা লগইন শেল নয়" হিসাবে শুরু হয়।

কাজটি করার জন্য $PATH, আপনার এটির ~/.bash_profileজন্য :!এবং এর ~/.bashrcজন্য সেট করা দরকার :shell। (দেখুন INVOCATIONman bash)

আপডেট: এটি আমার অন্যান্য কম্পিউটারে প্রয়োজনীয় ছিল না, সুতরাং এর অন্য কারণ হতে পারে এর মূল কারণ।


1
আপনি zsh এর জন্য একই রকম কাজ করতে পারেন। সংজ্ঞায়িত করুন $PATHএবং পতাকাটি হয় বা এর মধ্যে .zprofileঅন্তর্ভুক্ত করুন । -lset shellset shellcmdflag
jladan

0

আমি ম্যাক্সের চেয়ে ইউনিক্স সম্পর্কে আরও জানি, সুতরাং নিম্নলিখিত পরামর্শগুলি কার্যকর হতে পারে বা নাও পারে। এটি আপনার .vimrc ফাইলটি রাখার চেষ্টা করুন:

! source ~/.bash_profile

এটি কৌতুকটি করতে পারে তবে সামান্য সতর্কতা রয়েছে: .ব্যাশ_প্রোফাইলে কেবল একবার উত্সাহিত করা হবে। এটিতে কিছু অ-আদর্শহীন কমান্ড থাকতে পারে (যে জিনিসগুলি কেবল একবার প্রয়োগ করা উচিত)। বিন্দু ক্ষেত্রে:

$PATH += /blah/foo:/bar/etc

যত বেশি ডাকা হয়, ততই আরও বেশি এবং অতিরিক্ত কাজ হয় $PATH। যাইহোক, যদি এটি এত বড় বিষয় না হয় তবে ইউনিক্সের প্রস্তাবনাটি হ'ল ওয়ান-টাইম কমান্ডটি আপনার ফাইল থেকে ~/.bashrcচালানো ।source ~/.bashrc.vimrc


দু'টি সোর্সিং .বাশ_ প্রোফাইলে বা .বাশার্ক কাজ করেনি। আমি ম্যানুয়ালি চলমান চেষ্টা করেছি :source .bash_profileতবে এটি কেবল ফাইলের প্রতিটি কমান্ডের জন্য "একটি সম্পাদক নয় কমান্ড" ত্রুটি এবং .bashrc সহ একই সাথে আসে।
ডোনট

দুঃখিত ... আমি কি ভাবছিলাম ... আপনি চেষ্টা করতে পারেন! উত্স .বাশ_প্রোফাইল
ডেভিড বার্গার

.বাশ_প্রোফাইল এবং .বাশার্ক উভয় চেষ্টা করেও তবুও যাওয়া হয়নি। আমার পাঠ্যপথটি পরিবর্তন করতে আমার .বাশ_প্রফাইলে যা ব্যবহার করা হচ্ছে তা এখানে: 'প্যাথ = / ইউএসআর / স্থানীয় / বিন: / প্রয়োগ / এস্প্রেসো.এপ / কনটেন্টস / শেয়ার্ডসপোর্ট / টুলস /: / অ্যাপ্লিকেশনস / ম্যাকভিম /: AT প্যাথ' এবং আমার .bashrc: 'রফতানি করুন PATH = / অ্যাপ্লিকেশনগুলি / এমএএমপি / বিন / পিএইচপি 5 / বিন: AT पथ'। এবং এটি .বাশ_প্রোফাইল যা আসলে আমার টার্মিনাল সেশনগুলিকে প্রভাবিত করে।
ডোনট

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