ฉันจะรับ gVim บน Windows ให้ทำงานบน Linux ได้อย่างไร


13

ฉันเป็นผู้ใช้งาน Vim editor บน Linux และตอนนี้ฉันต้องการใช้บน Windows

ฉันดาวน์โหลด Vim สำหรับ Windows ซึ่งเป็น gVim ฟีเจอร์ต่าง ๆ ของ Vim ไม่ทำงานใน gVim 7.4 เช่น visual block rxคำสั่งและคีย์ผสมอื่น ๆ

ฉันต้องการ Vim เดิมจาก Linux ที่จะใช้บน Windows รุ่นนั้นมีให้สำหรับ Windows ด้วยหรือไม่ หรือฉันสามารถใช้การตั้งค่าที่คล้ายกับรูปแบบ Unix ได้หรือไม่?


2
ลองใช้ Vim จากtuxproject.de/projects/vim/x64
muru

7
นอกจากนี้ให้ตรวจสอบ_vimrcไฟล์ของคุณเพื่อหาบรรทัดที่มีลักษณะคล้ายsource $VIMRUNTIME/mswin.vimกัน ไฟล์ดังกล่าวช่วยให้การตั้งค่าต่างๆเป็นมิตรกับการใช้งานของ MSWindows (รวมถึงการแมปจำนวนมาก)
Roflo

7
ฉันใช้ gvim ทุกวันบน Windows ทั้ง gvim GUI และ vim ที่ไม่ใช่กราฟิกผ่านคอนโซล cmder ฉันก็ผิดหวังเช่นกันจนกว่าฉันจะปิดไฟล์ config mswin.vim และปรับแต่งอีกสองสามอย่าง ฉันเพียงแค่ลบไฟล์ _vimrc ที่ติดตั้งกับโปรแกรมและคัดลอก Linux .vimrc ของฉันไปยัง Windows จากนั้นไปที่นั่น
Dan Jones เมื่อ

6
ผู้แสดงความคิดเห็นคนอื่นพูดพาดพิงถึงเรื่องนี้ แต่ไม่มีใครบอกว่าจริง ๆ แล้ว: บล็อกภาพทำงานได้ดีใน Windows Vim คุณเพียงแค่ต้องปิดการใช้งานการเชื่อมโยงคีย์ "มิตรกับ Windows" ซึ่งจะแทนที่ctrl-vคีย์ผสมของคำสั่งด้วยการวางการแมป เป็นไปได้ (เป็นไปได้หรือไม่) ที่ปัญหาอื่น ๆ ของคุณใน Windows Vim เกิดจากปัญหาเดียวกันแม้ว่าคุณจะไม่ได้กล่าวถึงสิ่งที่พวกเขาทั้งหมดดังนั้นจึงเป็นการยากที่จะพูดได้อย่างแน่นอน
รวย

4
OOTB gvim บน Windows ใช้งานได้เช่นเดียวกับบน Linux (modulo เป็นค่าเริ่มต้นที่แตกต่างกันสำหรับตัวเลือกสองสามตัว) คุณต้องกำหนดค่าให้แตกต่างกัน
แอนโทนี

คำตอบ:


14

เมื่อฉันต้องทำงานกับ Windows (ซึ่งบ่อยกว่าที่ฉันต้องการ) ฉันใช้ Cygwin เพื่อรับเทอร์มินัลน้อยกว่าคำสั่ง Windows ต้นฉบับเล็กน้อย Cygwin จัดเตรียมสภาพแวดล้อมที่พยายามที่จะอยู่ใกล้กับคอนโซล Bash ด้วยคำสั่ง Linux มาตรฐานและแน่นอนว่ามันยังห่างไกลจากความไร้ที่ติ

ดูหน้าโครงการ Cygwin ในระหว่างการติดตั้งคุณจะสิ้นสุดในหน้าต่างที่ให้คุณเลือกแพ็คเกจที่คุณต้องการติดตั้ง แถบค้นหาที่ช่วยให้การมองหาแพคเกจที่จะติดตั้งในหมู่สิ่งที่มีประโยชน์อื่น ๆ (เช่นgit, tmux, curl, wgetฯลฯ ) คุณสามารถพิมพ์vimและเลือกแพ็กเกจเช่นvim, vim-common, ,vim-doc gvimสิ่งนี้จะติดตั้ง Vim editor ใกล้กับสิ่งที่คุณคุ้นเคยบน Linux

เมื่อทุกอย่างถูกติดตั้ง (ซึ่งบางครั้งอาจยาวไปหน่อย) คุณจะสามารถเริ่ม Cygwin ซึ่งจะแสดงเทอร์มินัลและคุณจะสามารถเริ่ม Vim ได้ตามปกติและใช้ Linux .vimrcและตัวจัดการปลั๊กอินตามปกติของคุณ ข้อเสียเปรียบหลักคือความเข้ากันได้ของสีที่มักจะต้องมีการปรับแต่งและยังดูเส็งเคร็ง

โปรดทราบว่าฉันใช้ Cygwin หมดนิสัย แต่มีวิธีแก้ไขปัญหาอื่น ๆ (เช่นcmderเป็นต้น) ไม่มีสิ่งใดที่ไร้ที่ติดังนั้นคุณอาจต้องการลองหลาย ๆ ครั้งและค้นหารายการโปรดของคุณ

นอกจากนี้ยังทราบว่าminttyเป็นวิธีที่ดีที่จะทำให้ Cygwin น้อยเส็งเคร็งน้อย


1
มันมีหลายประเด็น มันไม่แสดงอักขระ Unicode อย่างถูกต้อง อักขระหลายไบต์บางตัวถูกซ่อนไว้
SibiCoder

1
ใช่นั่นคือเหตุผลที่ฉันระบุว่า "ไม่มีสิ่งใดที่ไร้ที่ติ": จนถึงตอนนี้ Cygwin (และสิ่งที่เทียบเท่า) เป็นวิธีแก้ปัญหา ฉันไม่ใช่ผู้เชี่ยวชาญด้าน Windows แต่อาจเป็นการทำงานร่วมกันใหม่ระหว่าง Canonical และ Microsoft จะนำไปสู่ทางเลือกที่ดีกว่า
statox

ฉันใช้babunวันนี้แม้ว่าฉันคิดว่า cygwin พื้นฐานไม่สดเหมือนการติดตั้งวานิลลา
Rolf

ตั้งแต่ Windows 10 และโดยเฉพาะอย่างยิ่งตั้งแต่การอัปเดตเพิ่มเติมที่พวกเขาได้เพิ่มเข้ามา (curl, openssh, แก้ไขข้อความล้น, สนับสนุนสี 24 บิต) ว่า DOS prompt ตรงตอนนี้ดีกว่า การแสดงแบบอักษรในการแจ้งเตือนของ DOS / powershell นั้นดีที่สุดที่ฉันเคยเห็นสำหรับแอพเทอร์มินัล Windows นอกจากนี้หากคุณติดตั้ง Git สำหรับ Windows ดังนั้นที่มีเครื่องมือบรรทัดคำสั่ง linux เกือบทั้งหมดที่คุณต้องการเพิ่มC:\Program Files\Git\usr\binหรือคล้ายกับเส้นทางของคุณ
icc97

11

ในฐานะที่เป็นของ Windows 10 Anniversary Update คุณสามารถใช้Bash บนเทอร์มินัล Ubuntuเพื่อเรียกใช้ระบบย่อย Linux ที่คุณสามารถapt installทำสิ่งใดก็ตามที่คุณคุ้นเคยกับภายใน Ubuntu ระบบไฟล์ Windows ของคุณถูกเมาท์เพื่อให้คุณสามารถใช้ Vim ภายในเชลล์เพื่อแก้ไขไฟล์ของคุณ


2
อย่าลืมว่าคุณยังคงเข้าถึง Vim ผ่านคอนโซล Windows ซึ่ง จำกัด ด้วยสีและการเน้นไวยากรณ์ แม้จะมีการปรับปรุงผู้สร้างซึ่งควรจะนำ 256 สีไปยังคอนโซลฉันยังไม่ได้จัดการเพื่อปรับปรุงการเน้นไวยากรณ์
icc97

@ icc97 ฉันจำไม่ได้ว่าฉันทำอะไร (ฉันไม่เข้าใจสีและเทอร์มินัลที่ดี) แต่ฉันสามารถรับสีที่ดูดีในกลุ่มและแก้ไขปัญหาด้วยข้อความสีน้ำเงิน - ดำ - ดำที่ปรากฏใน bash บนเทอร์มินัลการส่งออกของ Ubuntu ตอนนี้มันมีสีสันนิดหน่อย แต่ก็ใช้ได้ดี นอกจากนี้ยังมี Xming gVim ทำงานได้ดีใน Ubuntu บน Windows (ฉันเพิ่งทดสอบส่วนต่อประสานและลองบันทึกไฟล์ ฯลฯ )
Formagella

@ รูปแบบที่ฉันฉัน nitpicker เล็กน้อยกับสีของฉัน ผมใช้เวลาชั่วโมงพยายามที่จะได้รับสี solarized ทำงานให้มีมาตรฐานของลินุกซ์ที่เป็นกลุ่มที่คล้ายกัน - ผมเขียนขึ้นบางส่วนของสิ่งที่ฉันทำในนี้ปัญหา อย่างไรก็ตาม GVim มีการเน้นไวยากรณ์ที่สมบูรณ์แบบ (และตัวหนา / ตัวเอียง) ใน Windows ดังนั้นฉันจึงหยุดดิ้นรนและใช้มัน ระบุว่าคุณอยู่ในพรอมต์ DOS เพียงแค่เน้นการเน้นไวยากรณ์ที่ดีมากและมันมีประโยชน์มากสำหรับเซสชัน SSH แต่สำหรับการแก้ไขเต็มเวลาฉันเลิก
icc97

1
ขณะนี้มีเวอร์ชั่นของ Minttyให้ทำหน้าที่เป็นเทอร์มินัลสำหรับ Bash บน Ubuntu บน Windows และการนำ Solarized ที่ออกแบบมาสำหรับ Mintty มาใช้ ฉันเพิ่งทำมันตอนนี้และมันก็เป็นประสบการณ์ที่ค่อนข้างเจ็บปวด!
Amndeep7

@Formagella ผมสีจนได้ทำงานอย่างถูกต้องใน Windows คอนโซลก็เอาการแก้ไขในกลุ่ม แต่ตั้งแต่ Vim 8.1 + colourscheme แบบ 24 บิตคุณสามารถรับสีสันที่น่ารักได้ใน DOS prompt และ WSL prompt ฉันมีคำตอบแยกต่างหากว่าการทดลองกับชุดสีคอนโซลต่างๆของ Windows และทำให้การทำงานคู่กัน
icc97

4

ตามที่ Roflo และ Rich กล่าวถึงในความคิดเห็นของพวกเขาที่นี่และที่นี่ปัญหาของคุณที่ไม่สามารถใช้ visual block (ฉันไม่แน่ใจว่าrxคำสั่งคืออะไร) เป็นเพราะ$VIM\_vimrcแหล่งvimrc ( ) ทั้งระบบ$VIMRUNTIME\mswin.vimซึ่งกำหนดการแมปสไตล์ Windows เช่นCtrl+ vสำหรับ วาง, Ctrl+ cสำหรับการคัดลอก, Ctrl+ xสำหรับการตัด

วิธีที่ง่ายที่สุดในการหลีกเลี่ยงปัญหานี้คือการสร้าง_vimrcไฟล์ในโฮมไดเร็กตอรี่ของคุณ (โปรดทราบว่า vim เวอร์ชัน Windows ใช้_vimrcแทน.vimrc) อย่างที่คุณเห็นใน:h vimrc, vim ค้นหา vimrc ในหลายตำแหน่งและใช้อันแรกที่พบในขณะที่ไม่สนใจส่วนที่เหลือ ไดเรกทอรีหนึ่งในโฮมไดเรกทอรีจะถูกค้นหา / ใช้งานก่อนเสมอ

ขั้นตอนน้อยที่สุด:

  • เปิด gvim หรือ vim
  • :e ~/_vimrc
  • :w

0

มีการปรับปรุงเล็กน้อยที่ค่อนข้างเล็ก แต่ไม่น้อยที่สำคัญเกิดขึ้นกับ Windows 10 สำหรับรุ่น 1803 พวกเขาเพิ่มการสนับสนุน 24 บิตสำหรับคอนโซล (พร้อมท์ cmd / powershell) ในกลุ่ม 8.1 ( https://www.vim.org//download.php/#pc ) พวกเขาเพิ่มการสนับสนุนสำหรับtermguicolorsซึ่งหมายความว่าคุณจะได้รับการสนับสนุนสีเต็มรูปแบบ 24 บิตภายในคอนโซลเป็นกลุ่ม ฉันเพิ่งโพสต์คำตอบของการได้รับการสนับสนุนการทำงานสี

แต่ความหมายก็คือมีการสนับสนุนอย่างเต็มที่สำหรับการใช้ Vim ใน DOS prompt - ดังนั้นคุณไม่จำเป็นต้องติดตั้งระบบย่อย Linux หรือการพึ่งพาอื่น ๆ นอกเหนือจาก Vim เพื่อให้ Vim ทำงานได้อย่างแท้จริง ฉันพบว่ามันยังค่อนข้างช้า แต่ก็ดีที่ได้เห็นความคืบหน้า

ป้อนคำอธิบายรูปภาพที่นี่

สิ่งที่ทำงานในคอนโซล Vim (ใน Windows 10 บิลด์ 1803+):

  • สายการบินพร้อมแบบอักษร Powerline
  • 24 บิตcolortheme(เช่น vim-solarized8, อ่อนโยน)
  • ค่อนข้างปลั๊กอินใด ๆ (เช่นปลั๊กอิน Tim Pope, FZF และ Ripgrep)
  • vimdiff
  • หน้าต่างคอนโซลจะยึดอย่างถูกต้องโดยมีข้อความไหลอย่างถูกต้อง - นี่จัดการได้ดีกว่า GVim

สิ่งที่ไม่ทำงาน / ปัญหา:

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