Отличаются ли команды cygwin vim от обычных vim?


28

Я не могу редактировать текстовые файлы, используя Vim в Cygwin.

Я должен нажать iмного раз, чтобы вставить текст. Иногда это работает, а иногда нет. Всякий раз, когда я перемещаю курсор вверх вниз, я должен нажать I много раз.

В чем может быть проблема? Работает ли backspaceв cygwin?


Вы работаете внутри собственной консоли Windows, в другом эмуляторе терминала, работающем как собственное приложение, в эмуляторе терминала, работающем под X? Какая версия винды? Имеет ли значение задержка между нажатием ESCи нажатием i?
Жиль "ТАК - перестать быть злым"

Ответы:


35

Cygwin vim поставляется с конфигурацией по умолчанию vim, которая оставляет vim в режиме совместимости с vi, где он пытается эмулировать исходный vi как можно ближе. Среди других ограничений, клавиши со стрелками не работают в этом режиме, и Backspace просто перемещает курсор влево, а не стирает символ.

Создание пустого ~/.vimrcдостаточно для отключения режима совместимости vi:

touch ~/.vimrc

Сказав это, iчтобы войти в режим вставки должен работать в любом случае. Вам нужно будет предоставить более подробную информацию о том, где и как вы используете vim. Кроме того, вы на самом деле используете vim, который поставляется с Cygwin, или нативную версию vim для Windows?

Обновить

Вы можете добавить следующие наборы в ~ / .vimrc, чтобы сделать так же, как по умолчанию vim

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

Если vim не берет ваш файл vimrc, он может искать .vircфайл. В этом случае переименуйте файл, и изменения будут применены.


Было бы неплохо, если бы вы сказали, как отключить совместимость.
Гидеон

Знаете ли вы, где по умолчанию находится домашнее местоположение cygwin? Я хочу создать .virc с помощью графического интерфейса вместо 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

Не работал до перезагрузки ПК. Но это работает!
3бдалла

Отличный ответ, простой и решающий все проблемы, с которыми я столкнулся при новой установке Cygwin, а подсветка синтаксиса - неожиданный бонус
crobicha

Это, безусловно, лучший ответ!
Теодор Р. Смит

1
где находится этот файл? Я искал это в / usr / share /, но потом я не вижу ни одного каталога с именем vim.
neo33

3

У меня были проблемы с клавишами со стрелками при попытке vim в Windows 8.1 с помощью Cygwin. Проблема заключалась в печати A / B / C / D при навигации с помощью клавиш со стрелками в режиме вставки. Решение сработало для меня:

cp vimrc_example.vim ~/.vimrc

В основном, выше команда копирует vimrc_example.vimфайл в /home/<user name>/.vimrc.


Это исправило это для меня. У меня была та же проблема с ключом вставки и стрелками, не работающими в vim. Это было на Windows 10.
Яник Girouard


1

Попробуйте так:

  • первый:

    cp /usr/share/vim/vim73/vimrc_example.vim ~/.vimrc
    
  • Затем добавьте эту строку в ваш ./.bashrcфайл:

    alias vi="vim"
    

0

Нет команды точно такие же. Похоже, у вас есть проблема с вводом. Либо ваша клавиатура испорчена, либо ваш терминал на фрице или что-то в этом роде.


0

В зависимости от характеристик вашей терминальной программы, когда вы нажимаете клавишу курсора, она отправляет последовательность символов, начинающуюся с клавиши ESC. Например, клавиша «Стрелка вверх» отправляет три символа ESC [A. Если vim находится в режиме ввода, нажатие клавиши курсора может прекратить режим ввода, когда ESC виден, и последующие символы могут быть интерпретированы как команды vim. Поскольку он выходит из режима ввода, вам нужно снова нажать i, чтобы продолжить вставку текста. Возможно, это то, что происходит с тобой.

Проверьте, есть ли в вашем терминале параметры, которые могут изменить эмуляцию, например VT-100, VT-220, или параметр, который указывает, что отправляется при нажатии клавиш Backspace или Del. Изменение этих настроек может привести к желаемому поведению. Если вы используете командную консоль Windows, вы, вероятно, не получите эти опции.

Возможно, вам придется избегать использования клавиш курсора в режиме ввода. Нажмите ESC для выхода из режима ввода, затем переместите курсор, затем снова нажмите i, чтобы получить больше информации. Вот как нам, старожилам, пришлось сделать это, прежде чем vim стал достаточно умным, чтобы интерпретировать клавиши курсора в режиме ввода.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.