Jak sprawić, by gVim działał w systemie Windows tak, jak w systemie Linux?

13

Jestem częstym użytkownikiem edytora Vima w systemie Linux, a teraz chcę go używać w systemie Windows.

Pobrałem Vima na Windowsa, którym jest gVim. Kilka funkcji Vima nie działa w gVim 7.4, takich jak blok wizualny, rxkomenda i kilka innych kombinacji klawiszy.

Chcę, aby ten sam / oryginalny Vim z Linuksa był używany w systemie Windows. Czy ta wersja jest dostępna również dla systemu Windows? Czy mogę używać ustawień podobnych do formatu Unix?

SibiCoder
źródło
2
Wypróbuj Vima z tuxproject.de/projects/vim/x64
mur 21.04.16
7
Należy także sprawdzić swój _vimrcplik za linię mówi coś podobnego source $VIMRUNTIME/mswin.vim. Ten plik umożliwia wiele elementów konfiguracyjnych przyjaznych dla MSWindows (w tym wiele mapowań).
Roflo 21.04.16
7
Używam gvim codziennie w systemie Windows, zarówno graficznego interfejsu użytkownika gvim, jak i graficznego vima za pośrednictwem konsoli cmder. Ja również byłem sfrustrowany, dopóki nie wyłączyłem pliku konfiguracyjnego mswin.vim i wprowadziłem kilka innych poprawek. Po prostu usunąłem plik _vimrc, który został zainstalowany wraz z programem, i skopiowałem mój Linux .vimrc do systemu Windows, a następnie stamtąd.
Dan Jones
6
Inni komentatorzy nawiązywali do tego, ale nikt tak naprawdę nie powiedział wprost: blok wizualny działa dobrze w systemie Windows Vim. Musisz tylko wyłączyć powiązania klawiszy „przyjazne dla systemu Windows”, które zastępują ctrl-vkombinację klawiszy za pomocą mapowania wklejania. Możliwe (prawdopodobnie?), Że twoje inne problemy z Windows Vimem wynikają z tego samego problemu, chociaż nie wspominasz o tym, czym one są, więc trudno powiedzieć na pewno.
Bogaty
4
OOTB gvim w systemie Windows działa tak samo jak w systemie Linux (modulo różne ustawienia domyślne dla kilku opcji). Musisz go skonfigurować inaczej.
Antony

Odpowiedzi:

14

Kiedy muszę pracować w systemie Windows (który jest częstszy niż chciałbym), używam Cygwin, aby uzyskać terminal nieco mniej gówniany niż oryginalna linia poleceń Windows. Cygwin zapewnia środowisko, które stara się być blisko konsoli Bash ze standardowymi poleceniami Linuksa i oczywiście nie jest bezbłędne.

Zobacz stronę projektu Cygwin. Podczas instalacji pojawi się okno, w którym możesz wybrać pakiety, które chcesz zainstalować. Pasek wyszukiwania pozwala spojrzeć na pakiety do instalacji, wśród innych przydatnych rzeczy (jak git, tmux, curl, wget, itd.) Można wpisać vimi wybrać pakiety, na przykład vim, vim-common, vim-doc, gvim. Spowoduje to zainstalowanie edytora Vima bardzo blisko tego, do czego przywykłeś w Linuksie.

Kiedy wszystko zostanie zainstalowane (co może być trochę dłuższe), będziesz mógł uruchomić Cygwin, który wyświetli terminal, i będziesz mógł uruchomić Vima jak zwykle i korzystać z Linuksa .vimrci zwykłego menedżera wtyczek. Główną wadą jest kompatybilność kolorów, które często wymagają modyfikacji i nadal wyglądają kiepsko.

Zauważ , że używam Cygwina z przyzwyczajenia, ale istnieją inne rozwiązania ( na przykład cmder ). Żadna z nich nie jest bezbłędna, więc możesz spróbować kilku i znaleźć swoją ulubioną.

Zauważ też, że mintty to dobry sposób na uczynienie Cygwina nieco mniej beznadziejnym.

statox
źródło
1
Ma kilka problemów. Nie wyświetla poprawnie znaków Unicode. Niektóre znaki wielobajtowe są ukryte.
SibiCoder
1
Tak, właśnie dlatego sprecyzowałem, że „Żaden z nich nie jest bezbłędny”: jak dotąd Cygwin (i odpowiedniki) są po prostu obejściem. Nie jestem ekspertem od systemu Windows, ale być może nowa współpraca między Canonical i Microsoft doprowadzi do lepszych alternatyw.
statox
Obecnie używam Babun, chociaż myślę, że bazowy cygwin nie jest tak świeży jak instalacja waniliowa.
Rolf
Od systemu Windows 10, a zwłaszcza od dodanych do niego dodatkowych aktualizacji (zawijanie, openssh, poprawne przepełnienie tekstu, obsługa kolorów 24-bitowych), że proste polecenie DOS jest teraz lepsze. Renderowanie czcionek w monitach DOS / PowerShell jest zwykle najlepsze, jakie widziałem w aplikacjach terminalowych Windows. Plus, jeśli zainstalujesz Git dla Windows, to zawiera prawie wszystkie narzędzia wiersza poleceń systemu Linux, których potrzebujesz, dodajesz C:\Program Files\Git\usr\binlub dodajesz do ścieżki.
icc97
11

Począwszy od rocznicowej aktualizacji systemu Windows 10, możesz używać Bash na terminalu Ubuntu do uruchamiania podsystemu Linux, w którym możesz apt installwszystko, do czego jesteś przyzwyczajony w Ubuntu. System plików Windows jest zamontowany, więc możesz używać Vima wewnątrz powłoki do edycji plików.

Chad Gilbert
źródło
2
Pamiętaj, że nadal korzystasz z Vima za pośrednictwem konsoli Windows, która jest bardzo ograniczona pod względem kolorów i podświetlania składni. Nawet przy aktualizacji twórców, która ma przynieść 256 kolorów do konsoli, nie udało mi się poprawić podświetlania składni.
icc97
@ icc97 Nie pamiętam dokładnie, co zrobiłem (nie rozumiem tak dobrze kolorów i terminali), ale udało mi się uzyskać kolory, które wyglądają dobrze na vimie i naprawić problem z niebiesko-czarnym tekstem, który pojawił się w bash na wyjściu terminalowym ubuntu. Teraz jest trochę kolorowy, ale działa dobrze. Również z Xming gVim działa dobrze w Ubuntu w systemie Windows (właśnie przetestowałem interfejs i próbowałem zapisać pliki itp.).
Formagella,
@Formagella Jestem trochę nitpicker z moimi kolorami. Spędziłem godziny, starając się, aby nasycone kolory działały na podobnym poziomie jak Linux Vim - napisałem kilka z tego, co zrobiłem w tym numerze . GVim ma jednak całkiem doskonałe podświetlanie składni (i pogrubienie / kursywa) w systemie Windows, więc przestałem się męczyć i po prostu tego użyłem. Biorąc pod uwagę, że jesteś w wierszu polecenia, po prostu podświetlanie składni OK jest świetne i bardzo przydatne w sesjach SSH, ale poddałem się edycji w pełnym wymiarze godzin.
icc97
1
Dostępna jest teraz wersja Mintty działająca jako terminal Bash na Ubuntu w systemie Windows oraz implementacja Solarized zaprojektowana dla Mintty. Zrobiłem to właśnie teraz i było to stosunkowo bezbolesne doświadczenie!
Amndeep7,
@Formagella W końcu mam kolory poprawnie działające w konsoli Windows, zajęło to poprawkę w Vimie . Ale od Vima 8.1 + 24-bitowego schematu kolorów możesz uzyskać piękne kolory w prostym wierszu poleceń DOS i WSL. Mam osobną odpowiedź, która eksperymentuje z różnymi schematami kolorów konsoli Windows i zaczyna działać.
icc97
4

Jak Roflo i Rich wspominali w swoich komentarzach tutaj i tutaj , twoim problemem z niemożnością użycia bloku wizualnego (nie jestem pewien, co to za rxpolecenie) jest to, że ogólnosystemowe $VIM\_vimrcźródła vimrc ( ), $VIMRUNTIME\mswin.vimktóre definiują odwzorowania w stylu Windows, takie jak Ctrl+ vdla wklej, Ctrl+ cdo kopiowania, Ctrl+ xdo wycinania.

Najłatwiejszym sposobem na obejście tego jest utworzenie _vimrcplików w katalogu domowym (pamiętaj, że _vimrczamiast wersji vim używa systemu Windows .vimrc). Jak widać :h vimrc, vim szuka vimrc w kilku lokalizacjach i używa tylko pierwszej, którą znajduje, ignorując resztę. Ten z katalogu domowego jest zawsze najpierw przeszukiwany / używany.

Minimalne kroki:

  • otwórz gvim lub vim
  • :e ~/_vimrc
  • :w
doubleDown
źródło
0

Kolejna dość niewielka, ale nie mniej ważna aktualizacja dotyczyła systemu Windows 10 dla kompilacji 1803. Dodali 24-bitową obsługę konsoli (monit cmd / powershell). W Vim 8.1 ( https://www.vim.org//download.php/#pc ) oni dodano wsparcie dla termguicolorsktórego środki można uzyskać pełną 24-bitowego koloru wewnątrz konsoli Vima. Niedawno opublikowałem odpowiedź dotyczącą uruchomienia obsługi kolorów .

Ale oznacza to, że jest prawie pełne wsparcie dla uruchamiania Vima w wierszu poleceń DOS - więc nie musisz instalować żadnego podsystemu Linux ani żadnych innych zależności poza samym Vimem, aby Vim działał. Uważam, że nadal jest nieco powolny, ale świetnie jest widzieć postęp.

wprowadź opis zdjęcia tutaj

Rzeczy, które działają w konsoli Vima (w systemie Windows 10 kompilacja 1803+):

  • Linia lotnicza z czcionkami Powerline
  • 24-bit colortheme(np. Vim-solarized8, delikatny)
  • Prawie każda wtyczka (np. Dowolna wtyczka Tim Pope, FZF i Ripgrep)
  • vimdiff
  • Okno konsoli przyciąga się poprawnie, a tekst płynie poprawnie - jest to lepsze niż GVim

Rzeczy, które nie działają / problemy:

  • Jest wolniejszy niż GVim
  • Czcionki pogrubione / kursywą
  • Znaki UTF-8 są ograniczone - np. Niektóre domyślne ikony linii lotniczych nie są wyświetlane
icc97
źródło