เวิร์กโฟลว์ประจำวันทั่วไปของฉันใน Vim เกี่ยวข้องกับการมีบานหน้าต่างแนวตั้งสองบาน รหัสการผลิตทางด้านซ้ายและการทดสอบทางด้านขวา
ฉันสลับภาษา (และกรอบการทดสอบ) บ่อยครั้งดังนั้นฉันต้องการสร้างการแมปใหม่สำหรับการเรียกใช้รหัสทดสอบของฉันในแต่ละเซสชัน lib/importer.rb
สมมติว่าฉันทำบางโครงการทับทิมและฉันขับรถออกมาจากชั้นใน spec/lib/importer_spec.rb
รายละเอียดที่มาพร้อมกับอาศัยอยู่ใน
หากต้องการสร้างการแมปของฉันสำหรับการเรียกใช้ข้อมูลจำเพาะฉันจะมุ่งเน้นไปที่บานหน้าต่างแสดงรายละเอียดและป้อนข้อมูลต่อไปนี้:
:nnoremap -g :!rspec %<cr>
หมายเหตุ: ฉันใช้ยัติภังค์ / ลบเป็นรหัสผู้นำของฉัน
นี้ทำงาน -gแต่ถ้าบานหน้าต่างข้อมูลจำเพาะมีโฟกัสเมื่อฉันตี หากบานหน้าต่างการผลิตมีโฟกัสและฉันกดปุ่มแผนที่rspecจะลองและเรียกใช้รหัสการผลิตซึ่งไม่สมเหตุสมผล
เพื่อหลีกเลี่ยงปัญหานี้ฉันสามารถเขียนพา ธ สัมบูรณ์ไปยังไฟล์ข้อมูลจำเพาะ:
:nnoremap -g :!rspec spec/lib/importer_spec.rb<cr>
ใช้งานได้แม้ว่ามันจะค่อนข้างยุ่งยากในการเขียน
ในขณะที่อ่านVim ที่ใช้งานได้เมื่อคืนฉันรู้ว่าในโหมดคำสั่งคุณสามารถใช้ส่วน%
ขยาย - คุณเขียน%
แล้วกดtabและเปอร์เซ็นต์จะถูกแทนที่ด้วยพา ธ สัมบูรณ์ไปยังไฟล์ในบานหน้าต่างที่เน้นอยู่ในปัจจุบัน
ถ้าฉันทำสิ่งนี้:
:!rspec %
... และจากนั้นtabฉันได้รับสิ่งนี้:
:!rspec spec/lib/importer_spec.rb
และนั่นยอดเยี่ยม! อย่างไรก็ตามถ้าฉันทำสิ่งนี้:
:nnoremap -g :!rspec %
... และจากนั้นtabฉันได้รับสิ่งนี้:
:nnoremap -g :!rspec %^I
ฉันเป็นคนดีและฉันก็จ่ายภาษี ทำไมสิ่งนี้ถึงเกิดขึ้นกับฉัน