বাশআরসিআর: এক্স উইন্ডো কীভাবে পাওয়া যায় তা পাওয়া যায় কীভাবে?


10

আমার মধ্যে একটি অংশ রয়েছে ~/.bashrc, যা v এডিটোরকে জিভিএম হিসাবে সেট করে। আমি এক্স উইন্ডোতে থাকাকালীন এটি ঠিকঠাক কাজ করে। যাইহোক, আমি যদি আমার ওয়ার্কস্টেশনে (অন্য একটি ওয়ার্কস্টেশন থেকে) ছুটে যাই gvim "অভিযোগ প্রদর্শন করতে পারে না" অভিযোগ করতে শুরু করে।

সুতরাং আমি ifবাশার্কে একটি বিবৃতি রাখতে চাই, যদি এক্স উইন্ডো পাওয়া যায় তবে gvim ব্যবহার করুন, অন্যথায় এটি ভিএম হতে দিন let

আমি কীভাবে এটি অর্জন করতে পারি?

উত্তর:


11

এটি করার একটি উপায় DISPLAY পরিবেশের পরিবর্তনশীলটির অস্তিত্ব পরীক্ষা করে:

if [ "$DISPLAY" ]
then
    EDITOR=gvim
else
    EDITOR=vim
fi

কিছু ক্ষেত্রে, আপনার gvim এক্স সার্ভারের সাথে যোগাযোগ করতে সক্ষম না করা সত্ত্বেও DISPLAY সেট করা হবে। এই ক্ষেত্রে, রানিংএক্স প্রোগ্রামটি ব্যবহার করুন :

if RunningX
then
    EDITOR=gvim
else
    EDITOR=vim
fi


7

$DISPLAYআপনি এক্স এ থাকলে পরিবেশের ভেরিয়েবলটি এমন কোনও কিছুর জন্য সেট করা উচিত, এবং যদি আপনি কোনও ডিসপ্লেতে সংযুক্ত না হন তবে আনসেট করুন।

সুতরাং আপনি এটি ব্যবহার করতে পারেন:

if [ -n "$DISPLAY" ]; then
    alias vim='gvim'
else
    alias vim='vim'
fi

তবে আরও একটি সমাধান রয়েছে। একে ssh এক্স ফরওয়ার্ডিং বলা হয়।

চালান

ssh -X yourworkstation

তারপরে আপনি যে মেশিনে প্রবেশ করছেন তাতে ভিএম চালাতে পারবেন এবং এটি এক্সটি চালাচ্ছে এমন মেশিনে প্রদর্শিত হবে it


3

এটি আপনার .bashrc এ রাখুন:

if [ -z "${DISPLAY:-}" ]; then
  EDITOR='vim'
else
  EDITOR='gvim'
fi

1

যদিও এটি আপনার প্রশ্নের উত্তর নয়, আমি মনে করে এটি কার্যকর হতে পারে যে আপনি যদি একটি ওয়ার্কস্টেশন থেকে এক্স * চালাচ্ছেন অন্য ওয়ার্কস্টেশনে, আপনি যদি ssh এর সাথে এক্স ফরওয়ার্ডিং সেটআপ করেন তবে আপনি gvim ব্যবহার করতে পারেন। উইন্ডোটির তথ্যটি কেবলমাত্র নেটওয়ার্কের মাধ্যমে প্রেরণ করা হবে এবং স্থানীয়ভাবে চালানো হলে gvim ঠিক এর মতো পপআপ করবে।

নিম্নলিখিতগুলি। / .Ssh / কনফিগারেশনে যুক্ত করুন

Host *
   ForwardX11 yes 

এখন আপনি কেবল gvim চালাতে সক্ষম হবেন।

আপনি যদি ওয়ার্কস্টেশন অফ অরিজিন্ড হ'ল উইন্ডোজ এবং এক্স চালনা করেন না, আপনি আসলে সাইগউইন ব্যবহার করে স্থানীয়ভাবে একটি এক্স সার্ভার শুরু করতে পারেন। এটি সেটআপ হয়ে গেলে আপনি এক্স 11 ফরওয়ার্ডিং করতে পটিটি এর মতো জনপ্রিয় এসএসএস ক্লায়েন্টকে কনফিগার করতে পারেন এবং তারপরে জিভিআইএম একটি দেশীয় উইন্ডো-সজ্জিত উইন্ডো হিসাবে প্রদর্শিত হবে pop


0

এক্সরগাল স্টার্টআপে সেট করে এমন একটি পরিবেশের ভেরিয়েবলগুলি পরীক্ষা করুন, যেমন এক্স্কলএল-তে বর্তমান এক্স 11 সেশন সম্পর্কে তথ্য রয়েছে।


0

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

তবে .. আমি আরও একটি ভাল যেতে চাই। আমি প্রায়শই স্ক্রিন সেশন ব্যবহার করি। আমি বাড়িতে স্ক্রিন সেশন শুরু করতে পারি, ডিসপ্লে সংজ্ঞায়িত হয়। তারপরে, আমি অন্য কোথাও থেকে shুকি, DISPLAY এখনও সংজ্ঞায়িত করা হয় এবং এটি বাস্তবে প্রদর্শিত হয় ... বাড়িতে! সুতরাং .. তারপর আমি 'এক্সপোর্ট $ DISPLAY =' করব will এটি ঠিক আছে তবে যেহেতু সেই উত্তরটি ইতিমধ্যে চেক করা হয়েছিল এবং সেই সময়টিতে একটি বৈধ ডিআইআইএসএল ভেরিয়েবলটি খুঁজে পেয়েছিল b প্রাথমিকভাবে চালানো এডিটোরটি এখনও gvim এ সেট থাকবে।

আমি এখানে একটি অনুরূপ সমস্যার সমাধান অনুসন্ধান করতে এসেছি, আমি এক্স-জিইউআই ম্যানপেজ ব্রাউজিংয়ের জন্য ইয়েল্পটি ব্যবহার করতে চেয়েছিলাম তবে এক্স ব্যবহার না করার সময় স্বয়ংক্রিয়ভাবে ট্র্যাডিশনাল ম্যান কমান্ডের কাছে নেমে যাই I আমি এখানে যা পড়েছি তার ভিত্তিতে, আমি এটি নিয়ে এসেছি:

man () {
    if RunningX
    then
        yelp "man:$@";
    else
        /usr/bin/man "$@";
    fi
}

আমি ভাবছি যে এডিটর সমস্যার জন্য কেউ নীচের মতো কিছু করতে পারে:

EDITOR=vim
vim () {
    if RunningX
    then
        gvim "$@";
    else
        vim "$@";
    fi
}

আমি কেবল সেই দীর্ঘ গল্পটি ডাব্লু / ও পোস্ট করেছি তবে আমি এটি পরীক্ষা করে দেখিনি। আমি নিজেকে বাশ নবাগত বিবেচনা করি। আমি আমার 'ম্যান কমান্ড' পরীক্ষা করেছি, এটি কার্যকর! আমি যদিও আমার সম্পাদকের জন্য ইম্যাক্স ব্যবহার করছি এটি এক্স এর জন্য নিজের চেক করে I

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