ในกลุ่มฉันจะทำการแมปใหม่โดยไม่ต้องทำการแมปอีกด้วย <Ctrl + i> ได้อย่างไร


14

ฉันชอบที่จะใช้แท็บเพื่อข้ามระหว่าง windows ที่แยกดังนั้นฉันมีmap <tab> <C-W><C-W>ใน. vimrc ของฉัน แต่ฉันสังเกตเห็นว่าสิ่งนี้ทำเพื่อให้ Ctrl + ฉันไม่ทำงานเป็น Ctrl + I อีกต่อไป แต่เป็น Ctrl + W, Ctrl + W ฉันจะทำการแมปใหม่<tab>ได้<C-i>อย่างไรแต่ไม่ใช่?

คำตอบ:


10

เนื่องจากวิธีการที่การป้อนข้อมูลด้วยแป้นพิมพ์ได้รับการจัดการภายในจึงไม่สามารถทำได้ในทุกวันนี้แม้ใน GVIM คีย์ผสมบางอย่างเช่นCtrl+ ที่ไม่ใช่ตัวอักษรไม่สามารถแมปได้และCtrl+ ตัวอักษรกับCtrl+ Shift+ ตัวอักษรไม่สามารถแยกความแตกต่างได้ (เว้นแต่เทอร์มินัลของคุณจะส่งรหัสtermcap ที่แตกต่างกันซึ่งส่วนใหญ่ไม่ได้) ในโหมดแทรกหรือบรรทัดคำสั่งให้ลองพิมพ์คีย์ผสม หากไม่มีสิ่งใดเกิดขึ้น / ถูกใส่เข้าไปคุณจะไม่สามารถใช้คีย์ผสมได้ นอกจากนี้ยังใช้กับ<Tab>/<C-I> , <CR>/ <C-M>/ <Esc>/ <C-[>ฯลฯ (ข้อยกเว้นเท่านั้นคือ<BS>/ <C-H>.) นี่เป็นอาการปวดจุดที่รู้จักและเรื่องของการอภิปรายต่างๆเกี่ยวกับ vim_dev และช่อง #vim IRC

บางคน (สำคัญที่สุด Paul LeoNerd Evans) ต้องการแก้ไข (แม้สำหรับคอนโซล Vim ในเทอร์มินัลที่สนับสนุนสิ่งนี้) และได้ลอยข้อเสนอต่าง ๆ cp http://groups.google.com/group/vim_dev/browse_thread/thread/626e83fa4588b32a/bfbcb22f37a8a1f8

แต่ ณ วันนี้ยังไม่มีแพตช์หรืออาสาสมัครมาข้างหน้าแม้ว่าหลายคนแสดงความต้องการที่จะมีสิ่งนี้ในการปล่อย Vim 8 ครั้งใหญ่ในอนาคต


1
ปัญหาการจับคู่รหัส / การจดจำคีย์นี้ได้รับการแก้ไขใน Vim 8 ณ ตอนนี้ (ปี 2017) หรือไม่ ฉันพบว่าฉันยังคงสามารถทำซ้ำตัวอย่างของจอนได้ใน
VIM

@llinfeng: ไม่น่าเสียดายที่ไม่มี Bram กำลังทำงานเกี่ยวกับการรวมเทอร์มินัลเข้าเป็นกลุ่ม ดูเหมือนว่าจะใช้ห้องสมุดที่ผลิตโดย Paul Evans ดังนั้นในที่สุดอาจนำไปสู่การปรับปรุงคีย์ที่จัดการได้เช่นกัน (แต่นี่เป็นการเก็งกำไรอย่างแท้จริงในเวลานี้)
Ingo Karkat

0

ไม่ใช่ทางลัดทั้งหมดที่เป็นไปได้ใน Vim โดยเฉพาะถ้ามันออกภายใต้เทอร์มินัล ฉันไม่แนะนำให้ใช้ทางลัดแท็บเพื่อจุดประสงค์นั้น แต่ทางเลือกอื่นอาจเป็นดังนี้:

" Note: Allows faster switching between windows with "Ctrl+w"! By Questor
nnoremap <silent> <C-w> <C-w><C-w>
inoremap <silent> <C-w> <Esc><C-w><C-w>
vnoremap <silent> <C-w> <Esc><C-w><C-w>

ดูตัวอย่างการใช้งานในhttps://github.com/eduardolucioac/groovim/blob/master/.vimrc

[] 's

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