สูญเสียเคอร์เซอร์ปุ่มซ้าย / ขวาในโหมดแทรก VIM หรือไม่


8

เมื่อฉันแก้ไขไฟล์. sql ใน VIM ฉันไม่สามารถใช้ปุ่มเคอร์เซอร์ซ้าย / ขวาได้ในขณะที่อยู่ในโหมดแทรก ในโหมดปกติพวกเขาทำงานได้ดี ในไฟล์ประเภทอื่น - พวกมันทำงานได้ดีเช่นกัน ใน ~ / .vim / ftplugin / sql.vim มีพวงของ "iab" s แต่ไม่มาก

ฉันพบว่าเมื่อใช้ vim กับ vimrc มาตรฐานไม่ได้กำหนดเองปัญหาจะไม่เกิดขึ้น

มีอะไรผิดปกติ? มีตัวเลือกใดบ้างที่สามารถตั้งค่าได้ซึ่งจะปิดใช้งานเคอร์เซอร์ (ขึ้นและลง) บางปุ่มในโหมดแทรก?

คำตอบ:


6

อาจเป็นไปได้ว่าคีย์ต่างๆถูกแมปกับคำสั่ง พิมพ์:mapCtrlVเพื่อดูว่าลูกศรขวาถูกแมปและลูกศรซ้ายเหมือนกันหรือไม่


1
ทั้งคู่แสดง "ไม่พบการแมป" แต่หลังจากทำ: imap ฉันเห็น: i <Left> @<C-R>=sqlcomplete#DrillOutOfColumns()<CR>และi <Right> @<C-R>=sqlcomplete#DrillIntoTable()<CR> ฉันสามารถติดตามมันกลับไปfiletype plugin indent onใน. vimrc ของฉันดังนั้นฉันจึงปิดการใช้งาน แต่ฉันไม่รู้ว่า sqlcomplete # นี้คืออะไรและทำไมมันถึงทิ้ง และเคอร์เซอร์ขวา

1
เสียงเหมือนฟังก์ชั่นที่จัดทำโดยสิ่งนี้: vim.org/scripts/script.php?script_id=1572
Ignacio Vazquez-Abrams

@depesz: การเปิดใช้งาน 'ปลั๊กอินชนิดไฟล์' โดยทั่วไปหมายถึงฟังก์ชันการทำงานพิเศษอาจโหลดในบัฟเฟอร์สำหรับไฟล์ที่มีนามสกุลไฟล์ที่เชื่อมโยงกับ "ปลั๊กอิน" ที่มีอยู่ การจับคู่ปลั๊กอิน kay พิเศษจะสามารถโหลดได้เฉพาะเมื่อแก้ไขไฟล์ประเภทนั้นเช่นมีนามสกุลอยู่ในชื่อไฟล์ การปิดใช้งานปลั๊กอินทั้งหมด (เช่นสิ่งที่คุณทำ) จะแก้ไข "ปัญหา" หรือคุณอาจหลีกเลี่ยงปัญหาด้วยการเปลี่ยนชื่อไฟล์ที่มีปัญหาเพื่อให้มีนามสกุลต่างกัน (หรือคุณสามารถถอนการติดตั้งเพียงแค่ปลั๊กอิน SQLComplete โดยสันนิษฐานว่าเป็นปลั๊กอินที่ทำให้เกิดปัญหา)
Herbert Sitz

@ เฮอร์เบิร์ต: ฉันไม่ทราบเกี่ยวกับปลั๊กอิน "SQLComplete" นี้ - ไม่เคยติดตั้งเลยไม่เคยต้องการ อาจมาพร้อมกับการติดตั้งเป็นกลุ่มใน Ubuntu

15

เพิ่มสิ่งต่อไปนี้ในไฟล์ ~ / .vimrc หรือ ~ / .vim / ftplugin / sql.vim ของคุณ:

let g:omni_sql_no_default_maps = 1

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