วิธีใช้ Sublime บน SSH


236

ฉันพยายามใช้ Sublime Text 2 เป็นตัวแก้ไขเมื่อฉัน SSH ในเซิร์ฟเวอร์งานของฉันและฉันก็นิ่งงัน ฉันพบhttp://urbangiraffe.com/2011/08/13/remote-editing-with-sublime-text-2/ (ในโพสต์อื่น ๆ ) ที่ดูเหมือนว่าอาจช่วยได้ แต่ฉันไม่ได้ทำตามอย่างแน่นอน โดยเฉพาะอย่างยิ่งกับสิ่งที่ฉันควรจะใส่ค่าสำหรับตัวแปรระยะไกลในบรรทัดที่ 5 ฉันตั้ง "/ ผู้ใช้ / เส้นทาง / เพื่อ / ท้องถิ่น / คัดลอก" ไปยังไดเรกทอรีรากท้องถิ่นของฉัน แต่ฉันไม่ทราบว่ามันถูกต้องหรือมีมากขึ้น ทำ. ความคิดใด ๆ ฉันใช้ OSX10.8


12
ฉันพบว่าการใช้งานosxfuseและsshfsบน mac ของฉันนั้นง่ายกว่าการติดตั้งรีโมตไดเร็กทอรีในเครื่องแล้วแก้ไขผ่าน ST2
AGS

มีปลั๊กอิน ST2 ยอดนิยมสำหรับ sftp นี่คือคำอธิบายต่อไปของระบบการซึ่งผมเชื่อว่าจะหมาย AGS: superuser.com/questions/134140/... ฉันมีปัญหากับการโหลดอัตโนมัติในการเข้าสู่ระบบและต้องใช้สคริปต์การเข้าสู่ระบบแบบแก้ปัญหาที่ทำด้วย Platypus ฉันต้องการ macfuse รุ่นที่ดีกว่า - ฉันจะดูว่าฉันสามารถค้นหาลิงก์ได้หรือไม่ถ้าคุณสนใจ
ฏหมาย

ด้วย Snow Leopard (10.6.8) ฉันต้องการคอร์ที่ได้รับการอัปเดตสำหรับ MacFuse (เช่น macfuse-core-10.5-2.1.9.dmg) - นี่คือลิงค์ไปยังที่ที่ฉันได้รับ: blog.urbaninsight.com/2011 / 04/18 / … ถ้าคุณสนใจนั่นน่าจะช่วยให้คุณปวดหัวได้มาก
ฏหมาย

มันจะไม่สดและอาจไม่เหมาะสำหรับการดูไฟล์บันทึกและสิ่งของ แต่บ่อยครั้งที่การตั้งค่า gitolite อาจคุ้มค่า เพียงแค่คอมไพล์ดึงและคุณมีทุกอย่างในท้องถิ่นที่จะเล่นกับ จากนั้นผู้คนจำนวนมากมีอินเทอร์เน็ตความเร็วสูงในทุกวันนี้และจะไม่รู้สึกถึงความล่าช้าในอินเทอร์เน็ต ... ทุกอย่างขึ้นอยู่กับการตั้งค่าของคุณ

คำตอบ:


161

มีสามวิธี:

  • ใช้ปลั๊กอิน SFTP (เชิงพาณิชย์) http://wbond.net/sublime_packages/sftp - โดยส่วนตัวแล้วฉันแนะนำสิ่งนี้เพราะหลังจากการตั้งค่าคีย์ SSH สาธารณะด้วยวลีรหัสผ่านมันปลอดภัยง่ายและคุ้มค่าทุกเงินที่http://opensourcehacker.com/2012/ 10/24 / SSH คีย์และ passwordless เข้าสู่ระบบพื้นฐานสำหรับนักพัฒนา /

  • เมาท์รีโมตเป็นระบบไฟล์โลคัลโดยใช้osxfuseและsshfsดังที่กล่าวไว้ในความคิดเห็น นี่อาจเป็นเรื่องยากเล็กน้อยขึ้นอยู่กับรุ่น OSX และทักษะของคุณกับระบบไฟล์ UNIX

  • แฮ็คบางอย่างเช่น rmate ซึ่งทำการแก้ไขไฟล์บนอุโมงค์ระยะไกลโดยใช้ดีมอนท้องถิ่นบางตัว (ยากมากยุ่งยาก แต่เข้ากันได้กับ sudo) http://blog.macromates.com/2011/mate-and-rmate/

นอกจากนี้ในทางทฤษฎีคุณสามารถติดตั้ง X11 บนเซิร์ฟเวอร์ระยะไกลและเรียกใช้ Sublime ที่นั่นผ่านการส่งต่อ VNC หรือ X11 แต่จะไม่มีจุดทำเช่นนี้


1
ดูเพิ่มเติมที่เกี่ยวข้องกับ superuser.com question superuser.com/questions/581292/…
Mikko Ohtamaa

11
คำสั่งผสม SSHFS / osxfuse เหมาะสำหรับฉัน! ขอบคุณ สำหรับคนอื่นที่มีปัญหานี้: github.com/osxfuse/osxfuse/wiki/SSHFS
thumbtackthief

สามารถใช้กับปลั๊กอิน sftp ใช้เครื่องมือเช่นเปลือกโต้ตอบและแทนเช่นใน emacs?
Edmondo1984

@ Edmondo1984 เพียงใช้เทอร์มินัลตัวจริงเพื่อสิ่งนั้น
Mikko Ohtamaa

1
SFTP ประเสริฐจริง ๆ แล้วช่วยให้คุณสามารถแก้ไขไฟล์จากระยะไกล แต่ไม่มีบานหน้าต่างโครงการ ST (ดังนั้นไม่ ไปที่ใดก็ได้ ) หรือทำอะไรบางอย่างเช่น rsync มีการทดลองใช้ฟรีเพื่อทดสอบ
Wernight

102

คุณสามารถใช้rsubซึ่งเป็นแรงบันดาลใจใน rmateTextMate จากคำอธิบาย:

Rsub เป็นการใช้งานคุณสมบัติ 'rmate' ของ TextMate 2 สำหรับ Sublime Text 2 ทำให้สามารถแก้ไขไฟล์บนเซิร์ฟเวอร์ระยะไกลได้โดยใช้การส่งต่อ / ส่งสัญญาณพอร์ต SSH

นี่คือบทแนะนำที่ดีเกี่ยวกับวิธีการตั้งค่าอย่างถูกต้อง


2
ฉันยังเห็นด้วยว่าการทำงาน rsub ให้ทำงานนั้นง่ายและอนุญาตให้ sudo ซึ่งยอดเยี่ยมมาก ฉันพบปัญหาบางอย่างเพื่อให้ทำงานได้ถูกต้อง แต่ SO ก็มีคำตอบเช่นกัน: stackoverflow.com/questions/18938950/…
Ross R

7
โปรดทำเครื่องหมายคำตอบนี้แทนคำตอบแรกตั้งแต่ฟรี
ธีโอดอร์

คู่มือทำงานได้อย่างสมบูรณ์แบบแม้สำหรับเทอร์มินัล noob ทั้งหมดอย่างฉัน ขอบคุณ!
Henrik

66

ฉันใช้ Windows และได้ใช้ 4 วิธี: SFTP , WinSCP , UnisonและSublime Text บน Linux ที่มี X11 ส่งต่อ SSH ไปยัง Windows (ใช่คุณสามารถทำได้โดยไม่ต้องตั้งค่ายุ่งและใช้เครื่องมือฟรี)

วิธีที่สี่ดีที่สุดถ้าคุณสามารถติดตั้งซอฟต์แวร์บนเครื่อง Linux ของคุณ

วิธีที่สี่:

MobaXterm

  1. ติดตั้งMobaXtermบน Windows
  2. SSH ไปยังกล่อง Linux ของคุณจาก MobaXterm
  3. บนกล่อง linux ของคุณให้ติดตั้ง Sublime Text 3 นี่คือวิธีการบน Ubuntu
  4. ที่พรอมต์คำสั่งเริ่มต้นประเสริฐด้วย subl
  5. แค่นั้นแหละ! ตอนนี้คุณมีข้อความประเสริฐที่ทำงานบน Linux แต่มีหน้าต่างแสดงอยู่บนเดสก์ท็อป Windows ของคุณ สิ่งนี้เป็นไปได้เพราะ MobaXterm จัดการการส่งต่อ X11 ผ่าน SSH สำหรับคุณดังนั้นคุณไม่ต้องทำอะไรที่ขี้ขลาดเพื่อให้มันดำเนินต่อไป อาจมีความล่าช้าเล็กน้อย แต่ไฟล์ของคุณจะไม่ซิงค์เนื่องจากคุณแก้ไขไฟล์ในเครื่อง Linux

หมายเหตุ: เมื่อเรียกใช้ subl ถ้ามันบ่นสำหรับบางไลบรารี - ให้แน่ใจว่าคุณติดตั้งพวกเขาเพื่อเรียกใช้ sublimetext จาก mobaxterm ได้สำเร็จ

หากคุณไม่สามารถติดตั้งซอฟต์แวร์บนกล่อง Linux ของคุณได้สิ่งที่ดีที่สุดคือ Unison ทำไม?

  • แจกฟรี
  • มันเร็วมาก
  • มันน่าเชื่อถือและไม่สนใจว่าคุณจะใช้เครื่องมือแก้ไขแบบใด
  • คุณสามารถสร้างรายการเพิกเฉยที่กำหนดเองได้

SFTP

ตั้งค่า: ติดตั้งแพคเกจข้อความ Sublime SFTP แพ็คเกจนี้ต้องมีใบอนุญาต

  1. สร้างโฟลเดอร์ใหม่
  2. เปิดเป็นโครงการข้อความ Sublime
  3. ในแถบด้านข้างคลิกขวาที่โฟลเดอร์และเลือก Map Remote
  4. แก้ไขไฟล์ sftp-config.json
  5. คลิกขวาที่โฟลเดอร์ในขั้นตอนที่ 1 เลือกดาวน์โหลด
  6. ทำงานในพื้นที่

ใน sftp-config ฉันมักจะตั้ง:

"upload_on_save": true,
"sync_down_on_open": true,

สิ่งนี้นอกเหนือจากเทอร์มินัล SSH ไปยังเครื่องทำให้ฉันมีประสบการณ์การแก้ไขระยะไกลที่ราบรื่น

WinSCP

  1. ติดตั้งและเรียกใช้WinSCP
  2. ไปที่การตั้งค่า (Ctrl + Alt + P) และคลิกที่โอนแล้วเพิ่ม ตั้งชื่อสถานีล่วงหน้า
  3. ตั้งค่าโหมดถ่ายโอนเป็นไบนารี (คุณไม่ต้องการให้มีการแปลงบรรทัด)
  4. ตั้งค่าการปรับเปลี่ยนไฟล์เป็น "ไม่เปลี่ยนแปลง"
  5. คลิกปุ่มแก้ไขถัดจาก File Mask และตั้งค่าการรวมและแยกไฟล์และโฟลเดอร์ (มีประโยชน์เมื่อคุณมีโฟลเดอร์. git / .svn อยู่หรือคุณต้องการแยกผลิตภัณฑ์บิลด์จากการซิงโครไนซ์)
  6. คลิกตกลง
  7. เชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลของคุณและไปยังโฟลเดอร์ที่สนใจ
  8. เลือกโฟลเดอร์ว่างในเครื่องของคุณ
  9. เลือกการตั้งค่าการถ่ายโอนที่สร้างขึ้นใหม่ที่ตั้งไว้ล่วงหน้า
  10. สุดท้ายให้กด Ctrl + U (คำสั่ง> อัปเดตไดเรกทอรีระยะไกล) และตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมาย "ซิงโครไนซ์เมื่อเริ่มต้น" และ "อัปเดตไดเรกทอรีย่อย"

จากนั้นเป็นต้นมา WinSCP จะทำให้การเปลี่ยนแปลงของคุณตรงกัน

ทำงานในโฟลเดอร์ท้องถิ่นโดยใช้ SublimeText เพียงตรวจสอบให้แน่ใจว่าข้อความ Sublime ถูกตั้งค่าให้เดาว่าจุดสิ้นสุดบรรทัดจากไฟล์ที่ถูกแก้ไข

ความพร้อมเพรียงกัน

ฉันได้พบว่าหากซอร์สต้นไม้มีขนาดใหญ่มาก (ประมาณไม่กี่ร้อย MB ที่มีลำดับชั้นลึก) ดังนั้นวิธี WinSCP ที่อธิบายไว้ข้างต้นอาจช้าลงเล็กน้อย คุณจะได้รับประสิทธิภาพที่ดีขึ้นมากโดยใช้ความพร้อมเพรียงกัน ข้อเสียคือ Unison ไม่อัตโนมัติ (คุณต้องทริกเกอร์ด้วยปุ่มกด) และต้องการส่วนประกอบเซิร์ฟเวอร์ที่จะทำงานบนเครื่อง linux ของคุณ อีกด้านหนึ่งคือการถ่ายโอนนั้นรวดเร็วอย่างไม่น่าเชื่อมีความน่าเชื่อถือและไม่สนใจไฟล์โฟลเดอร์และส่วนขยายที่ง่ายต่อการติดตั้ง


+1 สำหรับSFTP setupลิงก์ ฉันไม่รู้ว่า SFTP เป็นซอฟต์แวร์ Windows หรือแพ็คเกจย่อย
เควินเมเรดิ ธ

ฉันใช้ sftp สำหรับ ST2, PuTTY และ FileZilla เล็กน้อยเพื่อการวัดที่ดี มันเป็นเซ็ตอัพที่ดีที่สุดที่ฉันพบหลังจากลองหลายครั้ง อย่างไรก็ตามฉันไม่ชอบเก็บชุดไฟล์ในเครื่องไว้ ฉันชอบ ST มากกว่าบรรณาธิการเทอร์มินัล liek vi หรือ nano ทำให้ ST3 บนเซิร์ฟเวอร์นั้นฟังดูดีมาก ขอบคุณสำหรับเคล็ดลับ -
Bosworth99

หากคุณเป็นผู้ใช้ cyberduck ( cyberduck.io/?l=th ) ซับลิเท็กซ์จะทำงานร่วมกันเป็นอย่างดี
sakurashinken

33

ตามคำตอบของ @ ubik ต่อไปนี้เป็นขั้นตอนง่าย ๆ (สามครั้ง) เพื่อให้คำสั่ง 'subl' ทำงานบนเซิร์ฟเวอร์ระยะไกลของคุณ:

  1. [ ท้องถิ่น ] ติดตั้งrsubแพ็คเกจในข้อความ Sublime โดยใช้Sublime Package Manager
  2. [ ท้องถิ่น ] ดำเนินการคำสั่ง Bash ต่อไปนี้ (สิ่งนี้จะตั้งค่าอุโมงค์ SSHซึ่งเป็นซอสลับของ rsub):

    printf "Host *\n    RemoteForward 52698 127.0.0.1:52698" >> ~/.ssh/config
  3. [ เซิร์ฟเวอร์ ] ดำเนินการคำสั่ง Bash ต่อไปนี้บนเซิร์ฟเวอร์ระยะไกลของคุณ (ซึ่งจะติดตั้งคำสั่งเชลล์ 'subl'):

    sudo wget -O /usr/local/bin/subl https://raw.github.com/aurora/rmate/master/rmate; sudo chmod +x /usr/local/bin/subl

และ voila! ตอนนี้คุณใช้ Sublime Text บน SSH

คุณสามารถเปิดไฟล์ตัวอย่างใน Sublime Text จากเซิร์ฟเวอร์ด้วยสิ่งที่ต้องการ subl ~/test.txt


1
ฉันได้รับ: /usr/local/bin/subl: connect: Connection refused /usr/local/bin/subl: line 200: /dev/tcp/localhost/52698: Connection refused Unable to connect to TextMate on localhost:52698. คิด?
thumbtackthief

1
ใช่: เพิ่ม -R 52698: localhost: 52698 ในคำสั่ง ssh ของคุณ ดูที่นี่: stackoverflow.com/questions/18938950/…
Ross R

เคล็ดลับ Noob ที่ฉันพบว่ามีประโยชน์: อย่าลืมให้ Sublime ทำงานบนเครื่องของคุณ ที่จริงเริ่มเซิร์ฟเวอร์
Magne

@RossR - สิ่งนี้ไม่ทำงาน ฉันมีลักษณะเช่นนี้: "RemoteForward 52698 127.0.0.1,52698 -R 52698: localhost: 52698" และยังคงแสดงข้อผิดพลาดเดียวกัน: "ไม่สามารถเชื่อมต่อกับ TextMate บน localhost: 52698"
FooBar

1
การทำงานข้างต้นคุณเพียงแค่ต้องรีสตาร์ทเซิร์ฟเวอร์ระยะไกลหลังจากนั้นหรือคุณจะได้รับการเชื่อมต่อที่ถูกปฏิเสธข้อผิดพลาด
ctf0

10

ฉันใช้ MacOS และวิธีที่สะดวกที่สุดสำหรับฉันคือการใช้CyberDuckซึ่งฟรี (ใช้ได้กับ Windows) คุณสามารถเชื่อมต่อกับระบบไฟล์ SSH ระยะไกลของคุณและแก้ไขไฟล์ของคุณโดยใช้โปรแกรมแก้ไขในเครื่อง สิ่งที่ CyberDuck ทำคือการดาวน์โหลดไฟล์ไปยังสถานที่ชั่วคราวในระบบปฏิบัติการท้องถิ่นของคุณและเปิดไฟล์ด้วยเครื่องมือแก้ไขของคุณ เมื่อคุณบันทึกไฟล์ CyberDuck จะอัปโหลดไปยังระบบระยะไกลของคุณโดยอัตโนมัติ ดูเหมือนความโปร่งใสราวกับว่าคุณกำลังแก้ไขไฟล์ระยะไกลโดยใช้โปรแกรมแก้ไขในเครื่องของคุณ นักพัฒนาของ Cyberduck ยังทำMountainDuckสำหรับการติดตั้งระบบไฟล์ระยะไกล


1
ฉัน upvoted แม้ว่าเรื่องนี้ไม่ได้ทำงานกับ sudo ... (แฟ้มที่เข้าถึงความต้องการที่จะใช้ super เขียน)
ติอา Coelho

1
มาโพสต์โซลูชั่นที่แน่นอนนี้ ตราบใดที่คุณใช้ CyberDuck จะสะดวกมาก อย่างไรก็ตามโปรดทราบว่ามันจะทำงานเฉพาะในขณะที่ CyberDuck กำลังทำงานอยู่ คุณสามารถใช้วิธีเดียวกันนี้ในการเปิดไฟล์ในโปรแกรมแก้ไขอื่น ๆ แต่ฉันพบว่าไม่ใช่ว่าไฟล์ทั้งหมดจะทำงานได้อย่างน่าเชื่อถือและอาจสูญเสียการเชื่อมต่อหรือเปลี่ยนเป็นเงียบ ๆ เพื่อบันทึกภายในเครื่องเท่านั้นแทนที่จะเป็นระยะไกล (เช่น Microsoft Excel) ไม่เคยมีปัญหาเดียวกับเรื่องนี้โดยใช้ประเสริฐแม้ว่า
user5359531

8

คุณสามารถลองสิ่งที่ฉันกำลังทำอยู่เรียกว่า ' xeno ' มันจะช่วยให้คุณสามารถเปิดไฟล์ / โฟลเดอร์ใน Sublime Text (หรือตัวแก้ไขท้องถิ่นใด ๆ ) ผ่านการเชื่อมต่อ SSH และประสานการเปลี่ยนแปลงกับเครื่องระยะไกลโดยอัตโนมัติ ควรทำงานกับระบบ POSIX เกือบทั้งหมด (ฉันใช้จาก OS X เพื่อเชื่อมต่อกับเครื่อง Linux และแก้ไขไฟล์ใน Sublime Text) ฟรีและโอเพนซอร์ส ฉันชอบคำติชม

สำหรับข้อมูลเพิ่มเติม: โดยทั่วไปแล้วมันคือ Mashup Git / SSH ที่เขียนใน Python ที่ช่วยให้คุณสามารถแก้ไขไฟล์และโฟลเดอร์ในเครื่องระยะไกลในโปรแกรมแก้ไขในเครื่อง คุณไม่จำเป็นต้องกำหนดค่าโมดูลเคอร์เนลคุณไม่จำเป็นต้องมีการเชื่อมต่อแบบถาวรมันเป็นไปโดยอัตโนมัติทั้งหมดและจะไม่รบกวนการควบคุมแหล่งข้อมูลที่มีอยู่เพราะใช้พื้นที่เก็บข้อมูล Git ที่ไม่อยู่ในที่ทำงาน นอกจากนี้เนื่องจากมันสร้างขึ้นบน Git จึงรวดเร็วและสนับสนุนการรวมไฟล์โดยอัตโนมัติที่อาจมีการเปลี่ยนแปลงที่ปลายทั้งสองซึ่งต่างจาก SSHFS / SFTP ซึ่งจะอุดตันไฟล์ใด ๆ ที่มีการประทับเวลาที่เก่ากว่า


และฉันได้เขียนโพสต์บล็อกง่ายๆพร้อมสคริปต์และตัวเลือกการกำหนดค่าที่ทำให้ ST2 + Xeno เป็นคอมโบที่น่าทึ่ง .. www.yeraze.com
Yeraze

5

คุณสามารถใช้ sftp เพื่อติดตั้งรีโมตไดเร็กทอรีบนเครื่องระบุตำแหน่งของคุณจากนั้นเปิดไฟล์โดยใช้ข้อความ Sublime ตามปกติ

ในการเมาท์รีโมตไดเร็กทอรีโดยใช้ sftp ให้ป้อนคำสั่งต่อไปนี้บนตัวจัดการไฟล์ Linux

sftp://user@remote_box.com:22/home/user/code_directory

มันอาจดูช้าขึ้นอยู่กับความเร็วอินเทอร์เน็ตของคุณ แต่สิ่งนี้ใช้ได้สำหรับฉัน


5

ฉันรู้ว่านี่เก่าไปแล้ว แต่ฉันมีวิธีที่ยอดเยี่ยมในการทำสิ่งนี้ซึ่งคุ้มค่าที่จะแบ่งปัน

อะไรคือสิ่งที่จำเป็นต้องใช้ในConemuและWinSCP คำแนะนำง่าย ๆ เหล่านี้

  1. เปิด WinSCP.exe และลงชื่อเข้าใช้เซิร์ฟเวอร์ระยะไกลที่ฉันต้องการ (ฉัน
    พบว่าการลงชื่อเข้าใช้ก่อนที่จะทำการแนบ ... )

  2. ในการตั้งค่าสำหรับ WinSCP - การตั้งค่าสองรายการที่จะเปลี่ยนแปลง เลือกส่วนต่อประสานประเภท Explorer และแทนที่จะเป็นผู้บัญชาการดังนั้นคุณจะไม่เห็นไฟล์ในตัวเครื่อง ถ้าคุณไม่ต้องการ (แต่ดูเหมือนว่ามันจะดูดที่นี่) ตั้งค่า Sublime เป็นเครื่องมือแก้ไขเริ่มต้นของคุณ

  3. ด้วย ConEmu Attach to...เปิดคลิกขวาที่แถบแท็บและเลือกตัวเลือก กล่องโต้ตอบจะเปิดขึ้นพร้อมกับแอปพลิเคชันที่ทำงานอยู่ของคุณ เลือก WinSCP แล้วเลือกตกลง ConEmu จะมีแท็บเปิดพร้อม WinSCP ที่แสดงไฟล์ระยะไกลของคุณ

  4. คลิกขวาที่ WinSCP New console...แท็บและเลือก เมื่อกล่องโต้ตอบเปิดขึ้นให้ป้อนพา ธ ไปยัง Sublime executable บนระบบของคุณ ก่อนที่คุณจะกดStartในกล่องที่ระบุว่าNew console splitเลือกปุ่มตัวเลือกto rightและตั้งค่าเปอร์เซ็นต์ ฉันมักจะเลือก 75% แต่คุณสามารถกำหนดสิ่งนี้ตามความชอบของคุณและสามารถเปลี่ยนแปลงได้ในภายหลัง

    1. ตอนนี้คุณจะเห็น Sublime ในหน้าต่างเดียวกับที่ทำงานทางด้านขวาของ WinSCP ใน Sublime จากเมนูมุมมองเลือกSidebar->Hide Sidebarและแบมตอนนี้คุณมีไฟล์ระยะไกลในลักษณะเดียวกับที่คุณทำในท้องถิ่น - แน่นอนว่ามีคำเตือนเล็กน้อยที่มาพร้อมกับการแก้ไขอะไรจากระยะไกล แม้ว่า WinSCP จะเบาลงอย่างรวดเร็ว

ฉันมีจอภาพสองจอ - เบราว์เซอร์ Chrome ของจอแสดงผลด้านซ้ายจอภาพด้านขวาแสดงเครื่องมือแก้ไขรหัส นอกจากนี้ในConEmuฉันสร้างแท็บอื่นและ ssh ในเว็บไซต์ที่ฉันกำลังทำงานอยู่ดังนั้นฉันสามารถทำสิ่งต่าง ๆ เช่นเรียกใช้gulpหรือgruntจากระยะไกลและจัดการไฟล์จากบรรทัดคำสั่ง เร่งการพัฒนาอย่างจริงจัง

นี่คือภาพหน้าจอ:

หน้าจอตั้งค่า


5

นี่เป็นวิธีที่ง่ายที่สุดในการแก้ไขไฟล์ในเครื่องซึ่งอาศัยอยู่บนรีโมตโฮสต์ที่คุณเคยตั้งค่า ssh เป็น IP ระยะไกล

# issue on local box

sudo apt-get install sshfs   # on local host install sshfs ( linux )

# on local box create secure mount of remote directory

export REMOTE_IP=107.170.58.249 # remote host IP

sshfs myremoteuserid@${REMOTE_IP}:/your/remote/dir  /your/local/dir # for example

เสร็จแล้ว !!!

ตอนนี้ในโฮสต์ในพื้นที่เพียงแค่เริ่มแก้ไขไฟล์ ... เมื่อคุณแสดงรายการ dir ในเครื่องอาจไม่แสดงรายการอะไรเลยจนกว่าคุณจะ cd ลงในส่วนย่อยหรือแสดงรายการไฟล์เฉพาะ ... ขี้เกียจโหลด ... นี่ไม่ส่งผลกระทบต่อการแก้ไขไฟล์

subl /your/local/dir/magnum_opus.go # local file edit using sublime text

ดังนั้นข้างต้นเป็นจริงการแก้ไขไฟล์ระยะไกลที่

/your/remote/dir/magnum_opus.go  # remote file on box $REMOTE_IP

สำหรับ OSX หรือ Windows ดูตุตันคาเมนนี้จากกลุ่มชนที่ชื่นชอบใน Digital Ocean


4

โซลูชัน Mac อื่น ๆ ที่คล้ายกับ osxfuse คือเพียงแค่ใช้ไคลเอ็นต์ Transmit FTP จาก Panic Software ซึ่งช่วยให้คุณสามารถเมานท์โฟลเดอร์ระยะไกลเป็นดิสก์ภายในเครื่อง รองรับ SFTP ซึ่งมีความปลอดภัยมาก


ฉันชอบตัวเลือกนี้มาก การติดตั้งควรอนุญาตให้คุณเปิดไดรฟ์ทั้งหมดเป็นโครงการประเสริฐ
Mic Fok

3

ฉันได้รับการทำงานในโครงการที่เรียกว่าGiySync มันยังคงต้องการงานบางอย่าง แต่เป็นโอเพ่นซอร์สและฉันใช้มันทุกวันเป็นเวลาสองปี ฉันกำลังทำงานกับ OS X เวอร์ชันดั้งเดิมที่ฉันเรียกว่าGitSyncApp

ตอนนี้เป็น OS X เท่านั้น แต่ควรเพิ่มการรองรับ Linux และ Windows ด้วย

มันทำงานได้โดยดูเหตุการณ์ระบบไฟล์และใช้ในการคอมไพล์เพื่อซิงค์โฟลเดอร์โครงการในเครื่องท้องถิ่นและเซิร์ฟเวอร์ของคุณ

ฉันลองโซลูชันอื่น ๆ เช่น osx fuse, ขยายไดรฟ์, ส่งสัญญาณ, โซลูชันหลายอย่างที่ใช้ rsync ฯลฯ พวกเขาทั้งหมดทำงาน 'ตกลง' สำหรับโครงการขนาดเล็ก แต่ถ้าคุณทำงานกับรหัสจำนวนมากพวกเขาไม่ทำงานสำหรับฉัน

ตัวเลือกระบบไฟล์จำนวนมากทำการแคชเพื่อปรับปรุงประสิทธิภาพซึ่งไม่เป็นปัญหาจนกว่าจะเสร็จ เช่นถ้าคุณกำลังทำงานกับคนอื่นและคนอื่นจะเปลี่ยนไฟล์บนเซิร์ฟเวอร์

ฉันเจอปัญหาเช่นกันหากฉันอยู่บนเครือข่ายที่ไม่สม่ำเสมอหรือช้าซึ่งฉันต้องใช้ไฟล์เปล่า ๆ หรือไฟล์ที่ไม่ได้ซิงค์จากนั้นแคชก็แปลก หวังว่าคุณจะมุ่งมั่นเมื่อเร็ว ๆ นี้ การใช้ git แก้ปัญหานี้เพราะมันจะตรวจสอบความสมบูรณ์ของการกระทำของแต่ละคน

คุณสมบัติโบนัสสองอย่าง:

  1. คุณจบลงด้วยความมุ่งมั่นสำหรับการบันทึกทุกครั้ง มันไม่มีประโยชน์อย่างยิ่ง แต่ถ้าคุณต้องย้อนเวลากลับไปคุณสามารถทำได้
  2. มันทำงานร่วมกับโปรแกรมแก้ไขข้อความใด ๆ

0

คุณอาจพิจารณาใช้ BitTorrent Sync ทั้งนี้ขึ้นอยู่กับความต้องการที่แน่นอนของคุณ สร้างโฟลเดอร์แชร์บนพีซีที่บ้านของคุณและพีซีที่ทำงานของคุณ แก้ไขไฟล์ในพีซีที่บ้านของคุณ (ใช้ Sublime หรืออะไรก็ได้ที่คุณต้องการ) และไฟล์เหล่านั้นจะซิงค์โดยอัตโนมัติเมื่อคุณบันทึก BitTorrent Sync ไม่ได้อาศัยเซิร์ฟเวอร์กลางที่จัดเก็บไฟล์ (เช่นเดียวกับ Dropbox และอื่น ๆ ) ดังนั้นในทางทฤษฎีแล้วคุณควรมีความชัดเจนในประเด็นใด ๆ เนื่องจากบุคคลที่สามเก็บข้อมูลที่มีความละเอียดอ่อน


0

วิธีแก้ปัญหาที่ใช้งานได้ดีสำหรับฉัน - แก้ไขในเครื่องบน Mac และทำให้ไฟล์ตรงกันโดยอัตโนมัติกับเครื่องระยะไกล

  1. ตรวจสอบให้แน่ใจว่าคุณมีรหัสผ่านในการเข้าสู่เครื่องระยะไกล หากไม่ทำตามขั้นตอนเหล่านี้http://osxdaily.com/2012/05/25/how-to-set-up-a-password-less-ssh-login/

  2. สร้างไฟล์ใน ~ / Library / LaunchAgents / filesynchronizer.plist ด้วยเนื้อหาดังต่อไปนี้:

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>filesynchronizer</string> <key>ProgramArguments</key> <array> <string>/usr/bin/rsync</string> <string>-avz</string> <string>/Users/USERNAME/SyncDirectory</string> <string>USERNAME@REMOTEMACHINE:~</string> </array> <key>WatchPaths</key> <array> <string>/Users/USERNAME/SyncDirectory</string> </array> </dict> </plist>

  3. ในหน้าต่างเทอร์มินัลทำงาน

    launchctl load ~/Library/LaunchAgents/filesynchronizer.plist

  4. แค่นั้นแหละ. การเปลี่ยนแปลงใด ๆ กับไฟล์ใด ๆ ใน ~ / SyncDirectory จะซิงโครไนซ์กับ ~ / SyncDirectory บนเครื่องระยะไกล การเปลี่ยนแปลงในท้องถิ่นจะแทนที่การเปลี่ยนแปลงระยะไกลใด ๆ

สิ่งนี้จะสร้างงาน launchd ที่ตรวจสอบ SyncDirectory และเมื่อใดก็ตามที่มีการเปลี่ยนแปลงใด ๆ ที่ทำงานจะมี rsync เพื่อซิงโครไนซ์ไดเรกทอรีกับเครื่องระยะไกล


นี่เป็นการซิงค์สองทางหรือไม่
กัด

ไม่มี เครื่องโลคัลเป็นรีโมตเท่านั้น
Ran Locar

0

lsyncdดูเหมือนจะเป็นทางเลือกที่ดีในการ sshfs หากคุณใช้ "-delay 0" จะใช้งานได้ตามเวลาจริง


0

ใช้ FileZilla

สิ่งนี้ใช้ได้กับผู้ใช้ Mac และ Windows (ฉันใช้กับ Mac) ฉันใช้คำตอบที่ระบุไว้หลายรายการในช่วงหลายปีที่ผ่านมาและพบว่าFileZillaเหมาะสมกับความต้องการของฉันเป็นอย่างดีเมื่อทำการแก้ไขไฟล์บนรีโมตโฮสต์ที่ฉันสามารถเข้าถึง SSH ได้ นอกจากนี้ยังติดตั้งได้อย่างรวดเร็ว

  • ฉันกำหนดค่าการเชื่อมต่อเซิร์ฟเวอร์ใหม่
  • เชื่อมต่อกับเซิร์ฟเวอร์
  • View/Editคลิกขวาที่ไฟล์ฉันต้องการที่จะแก้ไขและเลือก

สิ่งนี้จะแสดงตัวแก้ไขเริ่มต้นของฉัน (Sublime) แต่มันจะทำงานกับตัวแก้ไขใด ๆ ที่คุณติดตั้ง

  • เมื่อฉันบันทึกไฟล์ Filezilla จะแจ้งให้ฉันถามโดยอัตโนมัติว่าฉันต้องการ "อัปโหลดไฟล์นี้กลับไปที่เซิร์ฟเวอร์หรือไม่" ฉันคลิก "ใช่" จากนั้นจะอัปเดต
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.