Чи відрізняються команди cygwin vim від звичайних vim?


28

Я не можу редагувати текстові файли за допомогою vim in cygwin.

Мені доводиться натискати iбагато разів, щоб вставити текст. Іноді це працює, а іноді ні. Кожного разу, коли я рухаю курсор вниз, я повинен натискати I багато разів.

У чому може бути проблема? Чи backspaceпрацює в cygwin?


Ви працюєте в нативної консолі Windows, в іншому емуляторі терміналу, який працює як нативний додаток, в емуляторі терміналів, що працює під X? Яка версія Windows? Чи має значення затримка між натисканням ESCта натисканням i?
Жил "ТАК - перестань бути злим"

Відповіді:


34

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

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

touch ~/.vimrc

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

Оновлення

Ви можете додати нижче набори в ~ / .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 за допомогою GUI замість 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.
Янік Жируар


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 для виходу з режиму введення, потім перемістіть курсор, а потім знову для отримання додаткового вводу. Ось як нам старожилам довелося це робити, перш ніж vim отримав достатньо розумний інтерпретацію клавіш курсору у режимі введення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.