สลับเป็นกลุ่มตามค่าก่อนหน้า var


1

วิธีการเปลี่ยนค่าของ mouse จากที่ว่างเปล่าถึง a และในทางกลับกัน?

ฉันพบว่าตัวเองเปลี่ยนไปมากจากสองโหมดนี้ a ดีมากเมื่อฉันอยู่ในไฟล์แหล่งข้อมูลขนาดใหญ่มาเป็นเวลานานและต้องใช้ล้อเลื่อนเพื่อนำทางเป็นต้น

แต่โหมดเมาส์โง่นั้นสมบูรณ์แบบในการคัดลอก / วางจากที่ใดก็ได้ไปยังทุกที่

ฉันมีอยู่ใน. vimrc ของฉัน:

nmap <F11> :se mouse=<CR>
nmap <F12> :se mouse=a<CR>

แต่จะดีกว่าถ้าได้ F11 ฟรีอีกครั้ง (ฉันออกจากปุ่ม F) และเปลี่ยน F12 เป็นค่านั้น ... ทุกคนมีสูตรสำหรับประโยชน์นั้น?

คำตอบ:


1

@Heptite นั้นถูกต้องที่คุณเพียงแค่รักษาอาการด้วยการสลับ แต่อย่างใดนี่คือวิธีที่คุณจะสลับสิ่งนี้:

:nnoremap <F12> :let &mouse=(empty(&mouse) ? 'a' : '')<CR>
  • บันทึก: คุณควรใช้ :noremap; มันทำให้การทำแผนที่ภูมิต้านทานต่อการแมปและเรียกซ้ำ
  • หมายเหตุ: สำหรับตัวเลือกการเปิด / ปิดบูลีนแบบง่ายคุณสามารถใช้ :set inv{optionname}.

ขอบคุณ! และขอบคุณสำหรับคำแนะนำพิเศษ! จะนำมาใช้อย่างแน่นอน nnoremap ... สำหรับการสลับบูลีนของฉันฉันใช้ง่าย ! เช่นเดียวกับใน nmap <F7> :se wrap!<CR>
gcb

0

คุณควรดู:

:help 'paste'
:help 'pastetoggle'

(เครื่องหมายคำพูดเดี่ยวถูกพิมพ์เพื่อเป็นส่วนหนึ่งของคำสั่ง)

โดยเฉพาะสิ่งนี้จะทำสิ่งที่คุณต้องการ:

:set pastetoggle=<F12>

ฉันไม่ต้องการที่จะวางลงในกลุ่ม ฉันมักจะใช้ mouse= เพื่อคัดลอกจากกลุ่มได้อย่างง่ายดาย ไฟล์เป็นกลุ่ม, ดับเบิลคลิกและลาก, คลิกกลางในเทอร์มินัลอื่น ... จากนั้นฉันอาจต้องการเปลี่ยน mouse=a เพื่อนำทางรหัสด้วยล้อเลื่อน
gcb

คุณไม่จำเป็นต้องทำเช่นนั้นเพื่อคัดลอกจาก Vim คุณอาจต้องตั้งค่าตัวเลือก 'คลิปบอร์ด'
Heptite

ถ้าคุณเข้าถึงเสียงเรียกเข้าผ่านเซสชั่น ssh ให้พูดฉาบและมี mouse=aเมื่อคุณเลือกข้อความบางอย่างมันจะไม่ถูกวางลงในคลิปบอร์ดของกล่องระยะไกลโดยอัตโนมัติ เนื่องจากเสียงเรียกเข้าใช้การเคลื่อนไหวของเมาส์ไม่ใช่คอนโซลอีมูเลเตอร์ เมื่อคุณมี mouse= vim ไม่ได้ใช้เมาส์ดังนั้นตัวจำลองคอนโซลใช้เพื่อไฮไลต์ / คัดลอกจากเอาต์พุตเทอร์มินัลที่แสดง ฉันสามารถใช้ mouse=a จากนั้นกด "+y หลังจากเลือกเป็นกลุ่ม แต่นั่นเป็นปัญหามากเกินไป :)
gcb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.