เมื่อเร็ว ๆ นี้ฉันได้ลดจำนวนปลั๊กอินที่ใช้อยู่อย่างมากดังนั้นฉันจึงค้นหาคำตอบโดยใช้ฟีเจอร์ Vim ในตัวเท่านั้น
ฉันสังเกตเห็นข้อบกพร่องในเวิร์กโฟลว์ของฉันเมื่อฉันแก้ไขบัฟเฟอร์มากมาย: ฉันอยู่บนบัฟเฟอร์และฉันต้องการสลับไปยังอีกอันหนึ่งซึ่งฉันจำชื่อไม่ได้และไม่ใช่บัฟเฟอร์สำรอง . ดังนั้นการใช้งานจึง:b#
เป็นไปไม่ได้และการใช้งานเสร็จสิ้นด้วยคำสั่ง:b
จะไม่สะดวกเลย
โดยให้ฉันทำสิ่งต่อไปนี้:
- ใช้งานครั้งแรก
:buffers
เพื่อรับรายการบัฟเฟอร์ที่เปิดอยู่ - จำจำนวนบัฟเฟอร์ที่ฉันต้องการใช้
- กดEnterเพื่อปิดรายการบัฟเฟอร์
- ใช้
:bX
กับX
จำนวนบัฟเฟอร์ที่จะใช้
เวิร์กโฟลว์นี้ดูเหมือนจะหนักสำหรับฉันดังนั้นฉันจึงเพิ่มบรรทัดต่อไปนี้ใน
.vimrc
:
" Improve the navigation in the buffers
nnoremap <Leader><S-b> :B<CR>
command! B call Buffers()
function! Buffers()
execute "buffers"
let buffer=input("Enter a buffer:")
execute "b" . buffer
endfunction
สิ่งนี้ให้ฉันคำสั่ง:B
(และการแมป) ซึ่งเรียกฟังก์ชั่น:buffers
รออินพุตและในที่สุดก็เรียก:b
ตามด้วยอินพุต
มันใช้งานได้ดี แต่ฉันประหลาดใจที่ฉันต้องพัฒนาฟังก์ชั่นดังกล่าว: โดยปกติ Vim จะมีเวิร์กโฟลว์เริ่มต้นที่มีประสิทธิภาพพอสมควรดังนั้นฉันจึงสงสัยว่าถ้ามีวิธีที่ดีกว่าในการเปลี่ยนไปใช้บัฟเฟอร์ที่ฉันไม่รู้อะไรยกเว้น ว่ามันได้เปิดแล้วในเซสชั่นการแก้ไขของฉัน
:b#
ไม่ใช่สิ่งที่ฉันกำลังมองหา แต่ใช่ความจริงที่ว่าคุณสามารถบันทึกการกดแป้นพิมพ์โดยการป้อนโดยตรง:b
โดยไม่ต้องกดenter
ก่อนที่น่าสนใจ (อันที่จริงอาจจะเบาเกินไปที่จะเป็นคำตอบ แต่มันก็คุ้มค่าความคิดเห็น :-))
#
ตัวละครในฐานะหมายเลขแสตนด์แทนที่จะเป็นตัว#
อักษร
:ls
ตามด้วย:b#
(ไม่จำเป็นต้องกดปุ่ม return หรือ escape ก่อนสามารถไปจากรายการบัฟเฟอร์ใน 'ls' ได้โดยตรง) (การโพสต์เป็นความคิดเห็นเพราะดูเหมือนจะไม่เพียงพอที่จะเป็นคำตอบได้หรือไม่สงสัยด้วย พลาดอะไรบางอย่างและตอบคำถามผิด ๆ )