Czy polecenia cygwin vim są inne niż normalne vim?

28

Nie mogę edytować plików tekstowych za pomocą vima w cygwin.

Muszę naciskać iwiele razy, aby wstawić tekst. Czasami działa, a czasem nie. Ilekroć przesuwam kursor w górę, muszę nacisnąć I wiele razy.

Co może być problemem? Czy backspacedziała w cygwin?

Randhir Singh
źródło
Czy działasz w natywnej konsoli Windows, w innym emulatorze terminali działającym jako natywna aplikacja, w emulatorze terminali działającym pod X? Jaka wersja systemu Windows? Czy opóźnienie między prasowaniem ESCa prasowaniem ma iznaczenie?
Gilles „SO- przestań być zły”

Odpowiedzi:

34

Cygwin vim jest dostarczany z domyślną konfiguracją vim, która pozostawia vim w trybie kompatybilności vi, w którym stara się jak najwierniej emulować oryginalny vi. Wśród innych ograniczeń klawisze strzałek nie działają w tym trybie, a backspace po prostu przesuwa kursor w lewo, zamiast kasować znak.

Utworzenie pustego miejsca ~/.vimrcwystarczy, aby wyłączyć tryb zgodności vi:

touch ~/.vimrc

To powiedziawszy, iaby wejść w tryb wstawiania, i tak powinno działać. Musisz podać więcej szczegółów na temat tego, gdzie i jak uruchamiasz vima. Ponadto, czy faktycznie korzystasz z vima dostarczanego z Cygwin, czy z natywną wersją vima dla Windows?

Aktualizacja

Możesz dodać poniższe zestawy w ~ / .vimrc, aby make był podobny do domyślnego vima

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

Jeśli vim nie odbiera pliku vimrc, może zamiast tego szukać .vircpliku. W takim przypadku zmień nazwę pliku, a zmiany zostaną zastosowane.

ak2
źródło
Byłoby miło, gdybyś powiedział, jak wyłączyć kompatybilność.
gideon
Czy wiesz, gdzie jest domyślna lokalizacja domu cygwin? Chcę utworzyć .virc za pomocą GUI zamiast cygwin
Alex
13

Najprostszym sposobem jest skopiowanie przykładowego pliku vimrc Cygwin VIM

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

To rozwiąże problem dla każdego konta w systemie. Jeśli z jakiegoś powodu chcesz to zmienić tylko dla konkretnego użytkownika, zrób to

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

Zobacz referencję tutaj

Gauraw
źródło
1
To powinna być zaakceptowana odpowiedź, ponieważ przykład faktycznie domyślnie włącza podświetlanie składni i prawdopodobnie wiele innych domyślnych ustawień jest przyzwyczajonych.
JohnEye,
Nie działał do momentu ponownego uruchomienia komputera. Ale to działa!
3bdalla
Doskonała odpowiedź, proste i rozwiązane wszystkie problemy, które widziałem ze świeżą instalacją Cygwina, a wyróżnianie składni to nieoczekiwany bonus
crobicha
To zdecydowanie najlepsza odpowiedź !!
Theodore R. Smith
1
gdzie znajduje się ten plik? szukałem tego w / usr / share /, ale potem nie widzę żadnego katalogu o nazwie vim.
neo33,
3

Miałem problem z klawiszami strzałek podczas próby vima w systemie Windows 8.1 przy użyciu programu Cygwin. Problem polegał na drukowaniu A / B / C / D podczas nawigacji za pomocą klawiszy strzałek w trybie wstawiania. Rozwiązaniem, które zadziałało dla mnie jest:

cp vimrc_example.vim ~/.vimrc

Zasadniczo, powyżej polecenia kopiującego vimrc_example.vimplik do /home/<user name>/.vimrc.

noufal
źródło
To naprawiło to dla mnie. Miałem ten sam problem z klawiszem wstawiania i strzałkami nie działającymi w vimie. Tak było w systemie Windows 10.
Yanick Girouard,
2

Czy na pewno nie używasz vi zamiast vima?

rfelsburg
źródło
1

Wypróbuj w ten sposób:

  • pierwszy:

    cp /usr/share/vim/vim73/vimrc_example.vim ~/.vimrc
    
  • następnie dodaj ten wiersz do swojego ./.bashrcpliku:

    alias vi="vim"
    
binghenzq
źródło
0

Nie, polecenia są dokładnie takie same. Wygląda na to, że masz problem z wejściem. Albo masz pomieszaną klawiaturę, albo terminal jest na fritcie, czy coś w tym rodzaju.

Caleb
źródło
0

W zależności od charakterystyki programu terminala, po naciśnięciu klawisza kursora, wysyła sekwencję znaków rozpoczynającą się od klawisza ESC. Na przykład klawisz Strzałka w górę wysyła trzy znaki ESC [A. W trybie vim w trybie wprowadzania naciśnięcie klawisza kursora może zakończyć tryb wprowadzania, gdy widoczny jest ESC, a kolejne znaki mogą być interpretowane jako polecenia vim. Ponieważ wychodzi z trybu wprowadzania, musisz ponownie nacisnąć i, aby kontynuować wstawianie tekstu. Być może tak się dzieje.

Sprawdź, czy twój terminal ma opcje, które mogą zmienić emulację, takie jak VT-100, VT-220, lub ustawienie, które określa, co jest wysyłane po naciśnięciu klawisza Backspace lub Del. Zmiana tych ustawień może dać pożądane zachowanie. Jeśli używasz natywnej konsoli poleceń systemu Windows, prawdopodobnie nie masz tych opcji.

Być może będziesz musiał unikać używania klawiszy kursora w trybie wprowadzania. Naciśnij ESC, aby wyjść z trybu wprowadzania, następnie przesuń kursor, a następnie ponownie, aby uzyskać więcej danych. Tak musieli to zrobić nasi old-timerzy, zanim vim był wystarczająco inteligentny, aby interpretować klawisze kursora w trybie wprowadzania.

żongler
źródło