রিমোট ইম্যাক্স দৃষ্টান্তের সাথে সংযোগ রাখতে আমি কীভাবে ইমালস্ক্লিয়েন্ট ব্যবহার করব?


44

আমি একটি কম্পিউটারে ইম্যাক চালাতে সক্ষম হতে চাই:

server $ emacs --daemon

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

local $ emacsclient -c server

এটা কি সম্ভব? যদি তাই হয়, কিভাবে?


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

@ পাপ্রিকা আমার ধারণা ওপি স্থানীয়ভাবে একটি রিমোট ইম্যাক্স কনফিগারেশন ব্যবহার করতে চায়। অতএব ট্রাম্প উপযুক্ত নাও হতে পারে। এই কারণেই আমি আমার উত্তরটিকে অস্বীকারের সাথে উপসর্গ করেছিলাম।
Vamsi

3
আছে: বিষয় উপর Stackoverflow আলোচনা হয়েছে stackoverflow.com/questions/12546722/...
ক্র্যাশ Coredump

উত্তর:


21

রিমোট কম্পিউটারে চলমান ইমাস ইনস্ট্যান্সের সাথে সংযোগ রাখতে আপনি ইমালস্ক্লিয়েন্ট ব্যবহার করতে পারবেন না। এই ক্লায়েন্ট-সার্ভার ধারণাটি স্থানীয় নোডগুলির সাথে নয় (স্থানীয়) প্রক্রিয়াগুলির সাথে সম্পর্কিত। তবে, আপনি রিমোট কম্পিউটারে লগ ইন করতে, সেখানে চলমান একটি ইম্যাক্স সার্ভারের সাথে সংযুক্ত করতে এবং স্থানীয়ভাবে ইমস্ক্লিয়েন্টের পর্দা প্রদর্শন করতে বিভিন্ন নেটওয়ার্ক প্রযুক্তি ব্যবহার করতে পারেন। নেটওয়ার্কিং ব্যবহৃত অপারেটিং সিস্টেমের উপর নির্ভর করে এসএসএইচ (টার্মিনাল / এক্স-ফরওয়ার্ডিং), ভিএনসি, আরডিপি ইত্যাদির মাধ্যমে নেটওয়ার্কিং করা যেতে পারে net

আপডেট :
কিছু লোক নির্দেশিত হিসাবে, ইমালস্ক্লিয়েন্টের কাছে আসলে টিসিপির মাধ্যমে সার্ভারের সাথে সংযোগ স্থাপনের বিকল্প রয়েছে। তবে, এম্যাকস্ক্লিয়েন্টটি কখনই দূরবর্তীভাবে ব্যবহার করা উচিত নয়, নন-ইউএনআইএক্স সিস্টেমের সাথে সামঞ্জস্য করার জন্য টিসিপি সকেট বিকল্পের প্রয়োজন (যেমন উইন্ডোজের মতো ইউনিক্স ডোমেন সকেট পাওয়া যায় না এমন অপারেটিং সিস্টেম)।


4
এই পোস্ট অনুযায়ী আপনার বিবৃতি ঠিক সঠিক নয়। আপনি আরো নির্দিষ্ট হতে পারে?.
ডিজেজে

5
@ পাপ্রিকা: না, টিসিপি সংযোগের জন্য ব্যবহৃত প্রমাণীকরণ প্রক্রিয়াটি বিশেষত রিমোট-অ্যাক্সেসের ক্ষেত্রে তৈরি করা হয়েছিল। আমি উইন্ডোজ দিকে টিসিপি ব্যবহারের জন্য চাপ দিয়েছিলাম যাতে কোডটি পসিক্সেও দূরবর্তী সংযোগের জন্য কার্যকর হয়, এইভাবে উইন্ডোজ-নির্দিষ্ট কোড হ্রাস করে এবং পসিক্সের কার্যকারিতা যুক্ত করে।
স্টিফান

9

সম্ভবত আপনি যা চেয়েছিলেন তা নয় তবে ধরে নিচ্ছেন যে এক্স-ফরওয়ার্ডিংয়ের মাধ্যমে আপনার ssh সেটআপ রয়েছে, আপনি সার্ভারে এমস্কিলিয়েন্ট শুরু করতে পারেন এবং এটিকে দূরবর্তী ডিসপ্লেতে ফরোয়ার্ড করতে পারেন। (অস্বীকৃতি: কোড সরাসরি ওয়েবফোমে টাইপ করা হয়)

 local> ssh server -f emacsclient -c --display=$DISPLAY

না, এটি প্রশ্নের সাথে সম্পর্কিত নয়।
Herxbd

4

এটি আপনি যা চান তা হতে পারে না তবে কেবল যদি এটি আপনাকে কোনওভাবে সহায়তা করতে পারে তবে দেখুন।

আমি সাধারণত ভ্যাগ্র্যান্টের সাথে বুটস্ট্র্যাপ করা ভার্চুয়াল মেশিনের অভ্যন্তরে কাজ করি, আমি আমার ~/.emacs.dডিরেক্টরিটি আমার মেশিনের (স্থানীয়) এবং ভার্চুয়াল মেশিনের (রিমোট) মধ্যে Vagrantfileফাইলগুলি নীচে রাখার মধ্যে সিঙ্ক করেছি :

config.vm.synced_folder "~/.emacs.d", "/home/vagrant/.emacs.d"

এছাড়াও, আমার ইমাস কনফিগারেশন স্বয়ংক্রিয়ভাবে শুরুতে একটি সার্ভার শুরু করে:

(require 'server)
(setq server-use-tcp t
      server-socket-dir "~/.emacs.d/server")
(unless (server-running-p)
    (server-start))

সুতরাং যখন আমি ভার্চুয়াল মেশিনের মধ্যে একটি ইমাসস সার্ভার চালু করি, তখন আমি এটির সাথে নিম্নলিখিতটির সাথে সংযোগ করতে পারি:

ssh -Y -i ~/.vagrant.d/insecure_private_key "<virtual machine hostname>" 'emacsclient -c -f ~/.emacs.d/server/server'

ভার্চুয়াল মেশিনের হোস্টনামটি আমার ~ / .ssh / কনফিগারারে ভার্চুয়াল মেশিনটির কনফিগার করা হোস্টের নাম:

Host <virtual machine hostname>
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /home/anler/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL
  ForwardAgent yes

দ্রষ্টব্য: ভার্চুয়াল মেশিনের মধ্যে ইমাসস সার্ভারটি চালু করার আগে আমি পরীক্ষা করে দেখছি যে ~/.emacs.d/server/serverফাইলটি উপস্থিত নেই (এটি যদি আমি কেবল এটি সরিয়ে ফেলি) কারণ অন্যথায় এটি কাজ করবে না।


ঠিক বুঝতে পেরেছি যে আপনি রিমোট সার্ভারে ইমালক্লিয়েন্টকে কল করছেন। সেক্ষেত্রে আপনাকে সার্ভার ফাইলটি স্পষ্টভাবে পাস করতে হবে না কারণ ইম্যাকস্ক্লিয়েন্ট এটি খুঁজে পাওয়া প্রথম সার্ভারের সাথে স্বয়ংক্রিয়ভাবে সংযোগ স্থাপন করবে।
ভামসী

আপনার পরিচয় ফাইলটি আপনার ফাইলে সঠিকভাবে সেট করা থাকলে আপনার কমান্ড লাইনে প্রাইভেট কী ফাইল নির্দিষ্ট করার দরকার নেই .ssh/config। আপনি কেবল নির্দিষ্ট করতে হবে Host। সন্দেহ হয় আপনি কমান্ডের আউটপুট ব্যবহার করতে পারেন: vagrant ssh-configআপনার ~/.ssh/configফাইল সেট করতে ।
আলেকজান্দ্রো ডি অলিভিরা

3

emacsclient এবং TRAMP

স্থানীয় ইমাসে স্বয়ংক্রিয়ভাবে দূরবর্তী ফাইলগুলি খুলুন

প্রথম সমাধান নিয়ে আমার সাফল্য আছে। দ্বিতীয়টি সহজ বলে মনে হচ্ছে, আমি এখনও এটি চেষ্টা করে দেখছি।


7
উত্তর আকর্ষণীয় দেখায় তবে দয়া করে কেবল লিঙ্কগুলি পোস্ট করবেন না। কিছু অংশ এবং স্নিপেটস অন্তর্ভুক্ত করুন যাতে উত্তরটি নিজের পায়ে দাঁড়ায়।
মালবারবা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.