คำสั่ง cygwin vim นั้นแตกต่างจากคำสั่งปกติหรือไม่?


28

ฉันไม่สามารถแก้ไขไฟล์ข้อความโดยใช้ vim ใน cygwin ได้

ฉันต้องกดiหลายครั้งเพื่อแทรกข้อความ บางครั้งมันใช้งานได้และบางครั้งก็ใช้ไม่ได้ เมื่อใดก็ตามที่ฉันเลื่อนเคอร์เซอร์ขึ้นลงฉันต้องกดฉันหลายครั้ง

มีปัญหาอะไร ไม่backspaceทำงานใน Cygwin?


คุณกำลังทำงานภายในคอนโซล Windows ดั้งเดิมในเทอร์มินัลอีมูเลเตอร์อื่นที่ทำงานเป็นแอปพลิเคชั่นดั้งเดิมในเทอร์มินัลอีมูเลเตอร์ที่ทำงานภายใต้ X หรือไม่? Windows รุ่นใด ความล่าช้าระหว่างการกดESCและการกดiสำคัญหรือไม่?
Gilles 'หยุดความชั่วร้าย'

คำตอบ:


34

Cygwin vim จัดส่งมาพร้อมกับการกำหนดค่าเริ่มต้นของ vim ซึ่งปล่อยให้ vim อยู่ในโหมดความเข้ากันได้ vi ซึ่งพยายามเลียนแบบ vi ต้นฉบับให้ใกล้เคียงที่สุด ท่ามกลางข้อ จำกัด อื่น ๆ ปุ่มลูกศรไม่ทำงานในโหมดนั้นและ Backspace เพียงแค่เลื่อนเคอร์เซอร์ไปทางซ้ายแทนที่จะลบตัวอักขระ

การสร้างช่องว่าง~/.vimrcนั้นเพียงพอที่จะปิดใช้งานโหมดความเข้ากันได้ vi:

touch ~/.vimrc

ต้องบอกว่าiเพื่อเข้าสู่โหมดแทรกควรทำงานต่อไป คุณจะต้องให้รายละเอียดเพิ่มเติมเกี่ยวกับสถานที่และวิธีการเรียกใช้กลุ่มของคุณ นอกจากนี้คุณกำลังใช้งาน vim ที่มาพร้อมกับ Cygwin หรือ vim เวอร์ชัน Windows ดั้งเดิมหรือไม่

ปรับปรุง

คุณสามารถเพิ่มชุดด้านล่างใน ~ / .vimrc เพื่อให้คล้ายกับกลุ่มเริ่มต้น

set nocompatible
set backspace=indent,eol,start
set backup
set history=50
set ruler
set background=dark
set showcmd
set incsearch
syntax on
set hlsearch

หากเป็นกลุ่มไม่ได้รับไฟล์ vimrc ของคุณมันอาจจะมองหา.vircไฟล์แทน ในกรณีนี้ให้เปลี่ยนชื่อไฟล์และการเปลี่ยนแปลงจะถูกนำไปใช้


คงจะดีถ้าคุณจะบอกว่าจะตั้งไม่เข้ากันได้
gideon

คุณรู้หรือไม่ว่าตำแหน่งบ้านเริ่มต้นของ cygwin อยู่ที่ไหน ฉันต้องการสร้าง. virc โดย GUI แทน cygwin
Alex

13

วิธีที่ง่ายที่สุดคือการคัดลอกไฟล์ vimrc ตัวอย่างของ Cygwin VIM

cp /usr/share/vim/vim*/vimrc_example.vim /etc/vimrc

วิธีนี้จะแก้ไขปัญหาสำหรับทุกบัญชีในระบบของคุณ หากด้วยเหตุผลบางอย่างคุณต้องการเปลี่ยนเฉพาะผู้ใช้รายใดรายหนึ่งเท่านั้น

cp /usr/share/vim/vim*/vimrc_example.vim ~/.vimrc

ดูการอ้างอิงที่นี่


1
นี่ควรเป็นคำตอบที่ยอมรับได้เพราะตัวอย่างจะเปิดใช้งานการเน้นไวยากรณ์โดยค่าเริ่มต้นและอาจเป็นค่าเริ่มต้นอื่น ๆ ที่ผู้คนคุ้นเคย
JohnEye

ไม่ทำงานจนกว่าพีซีจะรีสตาร์ท แต่มันใช้งานได้!
3bdalla

คำตอบที่ดีเยี่ยม, ที่เรียบง่ายและแก้ไขทุกปัญหาที่แตกต่างกันผมเห็นด้วยสด Cygwin ติดตั้งและการเน้นไวยากรณ์เป็นโบนัสที่ไม่คาดคิด
crobicha

นี่คือคำตอบที่ดีที่สุด !!
Theodore R. Smith

1
ไฟล์นั้นอยู่ที่ไหน? ฉันค้นหาสิ่งนั้นใน / usr / share / แต่ฉันไม่เห็นไดเรกทอรีใด ๆ ที่เรียกว่า vim
neo33

3

ฉันมีปัญหากับปุ่มลูกศรในขณะที่พยายามเป็นกลุ่มใน Windows 8.1 โดยใช้ cygwin ปัญหาคือการพิมพ์ A / B / C / D ในขณะที่นำทางด้วยปุ่มลูกศรในโหมดการแทรก วิธีแก้ปัญหาสำหรับฉันคือ:

cp vimrc_example.vim ~/.vimrc

โดยทั่วไปคำสั่งดังกล่าวคัดลอกไฟล์ไปยังvimrc_example.vim/home/<user name>/.vimrc


นั่นแก้ไขให้ฉัน ฉันมีปัญหาเดียวกันกับปุ่มแทรกและลูกศรไม่ทำงานเป็นกลุ่ม นั่นเป็นใน Windows 10
Yanick Girouard


1

ลองด้วยวิธีนี้:

  • ครั้งแรก:

    cp /usr/share/vim/vim73/vimrc_example.vim ~/.vimrc
    
  • จากนั้นเพิ่มบรรทัดนี้ใน./.bashrcไฟล์ของคุณ:

    alias vi="vim"
    

0

ไม่มีคำสั่งเหมือนกันทุกประการ ดูเหมือนว่าคุณมีปัญหาอินพุต แป้นพิมพ์ของคุณอาจเลอะหรือเทอร์มินัลของคุณอยู่บนฟริตซ์หรืออะไรบางอย่าง


0

ขึ้นอยู่กับลักษณะของโปรแกรมเทอร์มินัลของคุณเมื่อคุณกดปุ่มเคอร์เซอร์มันจะส่งลำดับของตัวอักษรที่เริ่มต้นด้วยปุ่ม ESC ตัวอย่างเช่นปุ่มลูกศรขึ้นส่ง ESC สามตัวอักขระ A ในโหมดอินพุตการกดปุ่มเคอร์เซอร์อาจยุติโหมดอินพุตเมื่อเห็น ESC และตัวอักษรต่อมาอาจถูกตีความว่าเป็นคำสั่ง vim เนื่องจากออกจากโหมดอินพุตคุณต้องกด i อีกครั้งเพื่อแทรกข้อความต่อไป บางทีนี่อาจเป็นสิ่งที่เกิดขึ้นกับคุณ

ตรวจสอบว่าเทอร์มินัลของคุณมีตัวเลือกที่สามารถเปลี่ยนการจำลองเช่น VT-100, VT-220 หรือการตั้งค่าที่ระบุสิ่งที่ถูกส่งเมื่อกด Backspace หรือ Del คีย์ การเปลี่ยนการตั้งค่าเหล่านั้นอาจทำให้คุณต้องทำงาน หากคุณใช้คอนโซลคำสั่งดั้งเดิมของ Windows คุณอาจไม่ได้รับตัวเลือกเหล่านั้น

คุณอาจต้องหลีกเลี่ยงการใช้ปุ่มลูกศรในโหมดป้อนข้อมูล กด ESC เพื่อออกจากโหมดป้อนข้อมูลจากนั้นเลื่อนเคอร์เซอร์จากนั้น i อีกครั้งเพื่อรับอินพุตเพิ่มเติม นั่นคือวิธีที่เราต้องใช้ตัวจับเวลาเก่าก่อนที่กลุ่มจะมีความฉลาดพอที่จะตีความปุ่มเคอร์เซอร์ในโหมดอินพุต

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