อะไรคือความมหัศจรรย์ที่ทำให้ฉันสามารถรีโมตไฟล์แบบแท็บขณะที่ฉันพิมพ์คำสั่ง scp


16

สันนิษฐานว่านี่เป็นคุณสมบัติที่มีให้โดยปลั๊กอินบางตัวที่ฉันเปิดใช้งานในการตั้งค่า oh-my-zsh ของฉัน (ฉันใช้ zsh มาหลายปีแล้ว)

ฉันสังเกตเห็นตั้งแต่ฉันเพิ่มพับลิกคีย์ของฉันไปยังเซิร์ฟเวอร์ (ตอนนี้ฉันสามารถ SSH ไปยังเซิร์ฟเวอร์โดยไม่ต้องป้อนรหัสผ่าน) เมื่อฉันเขียนscpคำสั่งในเชลล์ของฉันฉันสามารถพา ธ ไฟล์รีโมตแบบแท็บได้จริง ๆ !

เช่น

$ diff <(scp Remoteuser@remote.domain.net:/var/www/html/

ฉันกดแท็บแล้วใช้งานได้! (สำหรับสิ่งที่ฉันพยายามทำให้สำเร็จด้วยคำสั่งเองฉันจะใช้scpเพื่อ "คัดลอก" ไปยัง stdout และให้อาหารเป็นไฟล์ต่าง ๆ ด้วยวิธีนี้ฉันสามารถเห็นการเปลี่ยนแปลงที่แน่นอนที่ฉันปรับใช้กับเซิร์ฟเวอร์ก่อน วิ่งrsync)

ฉันอยากรู้ว่าชิ้นส่วนใดที่ทำให้งานนี้เป็นอย่างดี มันเป็นสิ่งที่สร้างไว้ใน scp ที่รวมเข้ากับ z shell หรือไม่? หรืออย่างอื่น?

คำตอบ:


16

โอ้ฉันพบคำอธิบายแล้ว

อ้างส่วนที่เกี่ยวข้อง:

เชลล์ zsh มาพร้อมกับคุณสมบัติที่ยอดเยี่ยม (มากกว่าหนึ่ง) เช่นระยะไกลแท็บ หากคุณต้องการคัดลอกไฟล์ไปที่ scp เพียงกด tab ที่ส่วนใด ๆ ของชื่อไฟล์บนรีโมตโฮสต์ zsh สามารถสร้างเซสชัน ssh บนพื้นหลังและดึงข้อมูลที่เกี่ยวข้องสำหรับคุณดังนั้นคุณสามารถแท็บคอมไพล์ไฟล์ระยะไกล

โพสต์จะแสดงzstyleการประกาศบางอย่างที่บรรลุผลสำเร็จ แต่ฉันขอแนะนำให้ใช้แพ็คเกจ zsh เช่นoh-my-zshดังกล่าวข้างต้นเพื่อรับสิ่งนี้ได้รับการดูแลโดยชุมชน OSS สำหรับคุณ

สิ่งที่ดูเหมือนจะมีความเกี่ยวข้องดังที่เห็นในระบบของฉันใน. oh-my-zsh dir ของฉัน:

$ ack scp 
plugins/common-aliases/common-aliases.plugin.zsh
85:zstyle -e ':completion:*:(ssh|scp|sftp|rsh|rsync):hosts' hosts 'reply=(${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) /dev/null)"}%%
[# ]*}//,/ })'

<...>

ที่น่าตื่นตาตื่นใจ !! คุณลักษณะนี้เป็นเอกสิทธิ์zshของ เป็นไปได้bashไหม
shivams

1
@shivams นี้อาจจะเกี่ยวข้องกับความต้องการของคุณทุบตี ดูเหมือนว่าการตั้งค่า oh-my-zsh นั้นง่ายกว่ามากบวกกับ zsh ก็ดีมาก ฉันคิดว่าถ้าคุณแคร์จริงๆมันมีไม่มากที่ zsh สามารถทำอย่างนั้นไม่สามารถทุบตีได้ (และสิ่งที่ตรงกันข้ามก็เป็นจริงเช่นกัน) เป็นเพียงเรื่องของจำนวนงานที่คุณยินดีที่จะใส่เข้าไป
Steven Lu

7
@ shivams สำหรับฉันมันมักจะทำงานในทุบตี - ฉันเพิ่งกด "แท็บ" โดยสัญชาตญาณวันหนึ่งในคำสั่ง scp และค่อนข้างประหลาดใจที่เห็นว่ามันเติมข้อความอัตโนมัติ! ไปรอบ ๆ ดูเหมือนว่าคุณจำเป็นต้องติดตั้งแพคเกจทุบตีเสร็จถ้าคุณยังไม่ได้ คำถาม unix.se นี้เกี่ยวข้อง
Pont
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.