เลื่อนหน้าจอไม่ใช่เคอร์เซอร์เมื่อใช้ scrollwheel


18

ฉันกำลังใช้ Vim ในเทอร์มินัลดังนั้นการเลื่อนด้วยล้อเลื่อนจะใช้\e[Aและ\e[Bไวยากรณ์ (ที่\eเป็นสัญลักษณ์\x1bหรือหลบหนี)

อย่างไรก็ตาม Vim ตีความสิ่งนี้โดยการเลื่อนเคอร์เซอร์ขึ้นหรือลงหนึ่งบรรทัด พฤติกรรมที่ต้องการคือหน้าจอถูกเลื่อนขึ้นหรือลงเช่น<C-e>และ<C-y>ทำ

ฉันจะบอกให้ Vim เลื่อนหน้าจอได้อย่างไรเมื่อฉันใช้ล้อเลื่อนขณะที่ยังคงเคอร์เซอร์อยู่ในบรรทัดเดียวกัน สิ่งนี้จะทำงานได้ในโหมดทั่วไปทั้งหมด (การเลือกแบบปกติการเลือกแบบภาพ)

ตัวอย่างเช่นฉันได้ลองแล้ว:nnoremap <esc>[A <C-e>(แทนที่<esc>ด้วยอักขระตัวอักษรตัวอักษรแทรกด้วยCtrl+V Esc) แต่สิ่งนี้พิสูจน์แล้วว่าไร้ประโยชน์

ฉันใช้ Vim 7.4.52 บน Ubuntu 14.04 กับ GNOME


คุณสามารถ จำกัด คำถามไว้ที่ระบบปฏิบัติการหรือสภาพแวดล้อมของหน้าต่างได้หรือไม่?
200_success

@ 200_ ประสบความสำเร็จเอาล่ะฉันได้แก้ไขสภาพแวดล้อมของฉันในคำถามแล้ว
Doorknob

ฉันคิดว่าคำถามนี้ควรติดแท็ก 'terminal' ด้วย มันไม่สามารถแก้ไขได้เพราะมีคำตอบ?
bsmith89

คำตอบ:


12

@Doorknob พูดในความคิดเห็นของเขา:set mouse=aแก้ไขปัญหาได้


1
มีวิธีการทำเช่นนี้โดยไม่ตั้งค่าmouse=aหรือไม่? ฉันไม่ต้องการให้คลิกโดยไม่ได้ตั้งใจทำให้ขั้นตอนการแก้ไขของฉันยุ่ง
wchargin

aในmouse=aย่อมาจากall(ไม่ผนวก) จาก:help mouse: "เมาส์สามารถเปิดใช้งานสำหรับโหมดที่แตกต่างกัน ... โดยปกติคุณจะเปิดใช้งานเมาส์ในทั้งสี่โหมดด้วย:: set mouse = a"อย่างน้อยใน vim ของฉันเมื่อฉันเปิดใช้งานว่ามันไม่ได้ยุ่งกับการสลับโหมด (เพิ่งเปิดใช้งานการเลื่อน - และ "คลิกเพื่อไปที่บรรทัด")
Fawix

2
แม้ว่าเธรดนี้จะเก่า แต่สำหรับคนที่ต้องการset mouse=aโดยไม่มีการคลิกโดยไม่ตั้งใจทำให้เกิด:map <LeftMouse> <nop>ปัญหา
Sunny Pun

0

พฤติกรรมที่คุณต้องการคือสิ่งที่เกิดขึ้นในเสียงเรียกเข้าของฉัน ฉันหาการตั้งค่าที่เปิด / ปิดไม่พบ อาจจะตรวจสอบ: ช่วยเลื่อน ? scrolloffอาจมีส่วนร่วม

คุณสามารถลองใช้เครื่องหมายเป็นวิธีแก้ปัญหา

  1. ma (ตั้งค่าเครื่องหมาย 'a')
  2. เลื่อนหน้าจอตามที่คุณต้องการ
  3. `a (ส่งเคอร์เซอร์เพื่อทำเครื่องหมาย 'a')

ฉันได้รับพฤติกรรมนี้แม้จะไม่โหลด vimrc ของฉัน ( vim -u NONE) นี่คือ Vim 7.4 บน Ubuntu 14.04 พร้อม GNOME
Doorknob

@Doorknob และฉันได้หน้าต่างแทนเคอร์เซอร์ที่กำลังเคลื่อนที่โดยที่ไม่มี.vimrc(เพิ่งset mouse=a) :help scrollingบอกว่าพฤติกรรมการเลื่อนเป็นแพลตฟอร์มเฉพาะ ฉันใช้เสียงเรียกเข้าใน iterm2 บน OSX
bsmith89

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