আমি কীভাবে দূরবর্তীভাবে এসএসএসের মাধ্যমে ফাইলগুলি সম্পাদনা করব?


82

আমাকে কিছু সার্ভারে রাখা কিছু ফাইল সম্পাদনা করতে হবে যা আমি ssh এর মাধ্যমে পৌঁছাতে পারি।

আমি vimআমার ওয়ার্কস্টেশনটিতে কাস্টমাইজ করা এই ফাইলগুলি সম্পাদনা করতে পছন্দ করব ( vimদূরবর্তী সার্ভারে আমার সেটিংস পরিবর্তন করার অধিকার নেই )। কখনও কখনও আমি sublime textবা অন্য জিইউআই সম্পাদকের সাথে একটি ফাইল সম্পাদনা করতে চাই ।

অবশ্যই, আমি এই ফাইলগুলি ডাউনলোড করতে, এগুলি স্থানীয়ভাবে সম্পাদনা করতে এবং সেগুলিতে আবার সার্ভারে আপলোড করতে পারি। আরও মার্জিত সমাধান আছে?

উত্তর:


65

আপনি এটি করতে পারেন sshfs ব্যবহার করে একটি রিমোট ফোল্ডারটি ফাইল-সিস্টেম হিসাবে মাউন্ট করে। এটি করতে প্রথমে কিছু প্রাক-প্রয়োজনীয়তা:

# issue all these cmds on local machine
sudo apt-get install sshfs 
sudo adduser <username> fuse

এখন, মাউন্ট প্রক্রিয়া করুন:

mkdir ~/remoteserv    
sshfs -o idmap=user <username>@<ipaddress>:/remotepath ~/remoteserv

এর পরে, কেবল মাউন্ট করা ফোল্ডারে যান এবং আপনার নিজস্ব স্থানীয় কাস্টমাইজড ভিএম ব্যবহার করুন।


4
আশ্চর্যজনকভাবে, ইনস্টলেশন পদক্ষেপটি বিতরণগুলিতে ব্যর্থ হবে যা debভিত্তিক নয় এবং তাই না apt-get। (যে ক্ষেত্রে, yumবা zypperউপস্থিত থাকতে পারে)) তাদের স্থানীয় মেশিনেও রুট প্রয়োজন, যা উপলব্ধ বা নাও থাকতে পারে। (এই এটি একটি খারাপ সমাধান বলতে হয় না, কিন্তু এটি একটি বড় পূর্বশর্ত দিয়ে আসে।)
উলরিখ কালো

4
ঠিক আছে. এটা বের করে আনা। এই সমস্ত কিছু স্থানীয় মেশিনে করা হয়। ওএস এক্সের ক্ষেত্রে একটি ইনস্টল করতে হবে osxfuseএবং sshfs। এগুলি হোমব্রিউ দিয়ে ইনস্টল করা যেতে পারে ( brew install sshfsএবং brew cask install osxfuse, অথবা osxfuse.github.io
অনুপ্রেরণা

95

আপনি এটির মাধ্যমে এটি করতে পারেন scp:

vim scp://user@myserver[:port]//path/to/file.txt

//সার্ভার এবং পাথের মধ্যে দুটি স্ল্যাশ লক্ষ্য করুন , যা সঠিকভাবে নিখুঁত পাথ সমাধান করার জন্য প্রয়োজন। (প্রথম স্ল্যাশ অন্বিত দ্বিতীয় স্ল্যাশ দূরবর্তী ব্যবহারকারীর রুট ডিরেক্টরিটি নির্দিষ্ট করে, যথারীতি হয়। আরম্ভ করার জন্য home ডিরেক্টরিতে সময়ে, আপনি করতে চাই [:port]/~/path/to/file.txt।) [:port]ঐচ্ছিক।

এটি ভিএম এর নেটআরডব্লিউএম স্ট্যান্ডার্ড প্লাগইন দ্বারা পরিচালিত হয় । আরও বেশ কয়েকটি প্রোটোকল সমর্থিত।


6
হ্যাঁ, ফাইলটি একটি অস্থায়ী ফাইলে পুনরুদ্ধার করা হয়, সেটি সংরক্ষণে সার্ভারে আপলোড করা হয়।
ফ্লোহিম নিজে

1
ধন্যবাদ. যাইহোক, ফাইলটি সংরক্ষণের চেষ্টা করার সময় আমি একটি ত্রুটি পেয়েছি:E382: Cannot write, 'buftype' option is set
লুম

2
আপনি :set buftype=""​ভিএম চেষ্টা করতে পারেন ।
ফ্ল্লোহিম নিজে 12'15

2
তদতিরিক্ত, ভিম ~/.ssh/configরিমোট হোস্টগুলির সাথে পড়বে এবং সমাধান করবে vim scp://[host]/path
জঙ্গারি

2
@ স্টিলানুব::e scp://...
ফ্লোহিম নিজে

6

আপনি যখন বলছেন যে ভিম সেটিংস সম্পাদনা করার অধিকার আপনার নেই তখন তার অর্থের উপর নির্ভর করে, যেভাবে আপনি চান সেভাবে সার্ভারে ভিম ব্যবহার করার উপায় থাকতে পারে। যদি আপনি আপনার ব্যবহারকারীর পরিবর্তন করতে না পারেন .vimrc(কারণ আপনি ভাগ করা ব্যবহারকারী হিসাবে লগ ইন করছেন, উদাহরণস্বরূপ) তবে আপনি এখনও ফাইল তৈরি করতে পারেন, নামক একটি ফাইল হিসাবে তৈরি করতে পারেন, বলুন, Loom.vimrcএবং তারপরে -uস্যুইচটি ব্যবহার করে ভিমকে কল করুন :

vim -u ~/Loom.vimrc file_to_edit

তারপরে আপনি একটি উপনাম ব্যবহার করতে পারেন: alias vim='vim -u ~/Loom.vimrc'আপনাকে সাধারণ উপায়ে ভিম ব্যবহার করার অনুমতি দেবে এবং এটি এখনও আপনার কাস্টম .vimrcফাইলটি লোড করবে । আপনি লগ আউট করার পরে এই উপনামটি স্থির থাকবে না, সুতরাং আপনার কাস্টমাইজড ভিমটি দুর্ঘটনাক্রমে অন্য কারও সম্পর্কে চিন্তা করার দরকার নেই।


2

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

কেবলমাত্র ক্ষেত্রে ক্ষেত্রে এখানে রিভিশন কন্ট্রোল সফ্টওয়্যারটির একটি তালিকা দেওয়া আছে ।


আপনি কি পরিবর্তনগুলি পরিবর্তিত করার মতো কিছুকে ব্যবহার করার পরামর্শ gitদিচ্ছেন, এটিকে এমন কিছুর দিকে ঠেলাঠেলি করছেন githubএবং githubআপনার স্থানীয় মেশিনে পরিবর্তনগুলি এখানে টানতে চান ?
alpha_989

জটিল কোড পরিবর্তনের জন্য এটি সম্ভবপর .. তবে সাধারণ কোড পরিবর্তনের জন্য সম্ভবত .. @ ফ্ল্যো হিমেলফ বা শিভামস যা উল্লেখ করেছেন তা কার্যকর করা সহজ .. ..
alpha_989

1

মিঃ পটসের উত্তরটি প্রসারিত করার জন্য: আপনি উপরেরগুলিও করতে পারেন, তারপরে .bash_profile (বা আপনার শেল যা কিছু ব্যবহার করুন) তে এটি লিখুন:

if [[ "$(who mom loves | awk ' { print $1 }' )" == "Loom" ]]; then 
         alias vim="vim -u ~/.Loom_vimrc"  
         fi  

যেখানে লুমটি আপনার আসল ইউজারআইডি যেখানে আপনি লগইন করেছেন।

যদি আপনি একটি ভাগ করা অ্যাকাউন্ট হিসাবে লগ ইন করেন (এবং কোনও স্বতন্ত্র অ্যাকাউন্ট নয় তবে sudo su - ing, তবে ভন নিউমান আপনার হারিয়ে যাওয়ার জন্য আপনার আত্মার প্রতি দয়া করতে পারেন।

আমি এটিকে একটি মন্তব্যে রেখেছি, তবে কোডটি বিন্যাসে মোটেও পেলাম না।


0

আপনার যদি ইতিমধ্যে ভিম সেশন চলমান থাকে

:silent e scp://user@myserver[:port]//path/to/file.txt

:silentসামনে দমন করবে Press Enter to Continueবার্তা

এবং

e scp://user@myserver[:port]//path/to/file.txtহয় Exremnote ফাইল সম্পাদনা করার মোড কমান্ড।

BitVise SSHDউইন্ডোজ 10 এ চলমান, এবং উবুন্টু 16.04 এ চালানো ভিআইএম ব্যবহার করে পরীক্ষিত


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