ฉันไม่สามารถแก้ไขไฟล์ข้อความโดยใช้ vim ใน cygwin ได้
ฉันต้องกดiหลายครั้งเพื่อแทรกข้อความ บางครั้งมันใช้งานได้และบางครั้งก็ใช้ไม่ได้ เมื่อใดก็ตามที่ฉันเลื่อนเคอร์เซอร์ขึ้นลงฉันต้องกดฉันหลายครั้ง
มีปัญหาอะไร ไม่backspaceทำงานใน Cygwin?
ฉันไม่สามารถแก้ไขไฟล์ข้อความโดยใช้ vim ใน cygwin ได้
ฉันต้องกดiหลายครั้งเพื่อแทรกข้อความ บางครั้งมันใช้งานได้และบางครั้งก็ใช้ไม่ได้ เมื่อใดก็ตามที่ฉันเลื่อนเคอร์เซอร์ขึ้นลงฉันต้องกดฉันหลายครั้ง
มีปัญหาอะไร ไม่backspaceทำงานใน Cygwin?
คำตอบ:
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
ไฟล์แทน ในกรณีนี้ให้เปลี่ยนชื่อไฟล์และการเปลี่ยนแปลงจะถูกนำไปใช้
วิธีที่ง่ายที่สุดคือการคัดลอกไฟล์ vimrc ตัวอย่างของ Cygwin VIM
cp /usr/share/vim/vim*/vimrc_example.vim /etc/vimrc
วิธีนี้จะแก้ไขปัญหาสำหรับทุกบัญชีในระบบของคุณ หากด้วยเหตุผลบางอย่างคุณต้องการเปลี่ยนเฉพาะผู้ใช้รายใดรายหนึ่งเท่านั้น
cp /usr/share/vim/vim*/vimrc_example.vim ~/.vimrc
ฉันมีปัญหากับปุ่มลูกศรในขณะที่พยายามเป็นกลุ่มใน Windows 8.1 โดยใช้ cygwin ปัญหาคือการพิมพ์ A / B / C / D ในขณะที่นำทางด้วยปุ่มลูกศรในโหมดการแทรก วิธีแก้ปัญหาสำหรับฉันคือ:
cp vimrc_example.vim ~/.vimrc
โดยทั่วไปคำสั่งดังกล่าวคัดลอกไฟล์ไปยังvimrc_example.vim
/home/<user name>/.vimrc
คุณแน่ใจหรือว่าคุณไม่ได้ใช้ vi แทนที่จะเป็นกลุ่ม?
ลองด้วยวิธีนี้:
ครั้งแรก:
cp /usr/share/vim/vim73/vimrc_example.vim ~/.vimrc
จากนั้นเพิ่มบรรทัดนี้ใน./.bashrc
ไฟล์ของคุณ:
alias vi="vim"
ไม่มีคำสั่งเหมือนกันทุกประการ ดูเหมือนว่าคุณมีปัญหาอินพุต แป้นพิมพ์ของคุณอาจเลอะหรือเทอร์มินัลของคุณอยู่บนฟริตซ์หรืออะไรบางอย่าง
ขึ้นอยู่กับลักษณะของโปรแกรมเทอร์มินัลของคุณเมื่อคุณกดปุ่มเคอร์เซอร์มันจะส่งลำดับของตัวอักษรที่เริ่มต้นด้วยปุ่ม ESC ตัวอย่างเช่นปุ่มลูกศรขึ้นส่ง ESC สามตัวอักขระ A ในโหมดอินพุตการกดปุ่มเคอร์เซอร์อาจยุติโหมดอินพุตเมื่อเห็น ESC และตัวอักษรต่อมาอาจถูกตีความว่าเป็นคำสั่ง vim เนื่องจากออกจากโหมดอินพุตคุณต้องกด i อีกครั้งเพื่อแทรกข้อความต่อไป บางทีนี่อาจเป็นสิ่งที่เกิดขึ้นกับคุณ
ตรวจสอบว่าเทอร์มินัลของคุณมีตัวเลือกที่สามารถเปลี่ยนการจำลองเช่น VT-100, VT-220 หรือการตั้งค่าที่ระบุสิ่งที่ถูกส่งเมื่อกด Backspace หรือ Del คีย์ การเปลี่ยนการตั้งค่าเหล่านั้นอาจทำให้คุณต้องทำงาน หากคุณใช้คอนโซลคำสั่งดั้งเดิมของ Windows คุณอาจไม่ได้รับตัวเลือกเหล่านั้น
คุณอาจต้องหลีกเลี่ยงการใช้ปุ่มลูกศรในโหมดป้อนข้อมูล กด ESC เพื่อออกจากโหมดป้อนข้อมูลจากนั้นเลื่อนเคอร์เซอร์จากนั้น i อีกครั้งเพื่อรับอินพุตเพิ่มเติม นั่นคือวิธีที่เราต้องใช้ตัวจับเวลาเก่าก่อนที่กลุ่มจะมีความฉลาดพอที่จะตีความปุ่มเคอร์เซอร์ในโหมดอินพุต
ESC
และการกดi
สำคัญหรือไม่?