Щойно я встановив Cygwin, і функціональності BACKSPACE немає, тобто коли я натискаю клавішу Backspace, я отримую пробіл.
Я намагався дослідити цю проблему в Google, але не знайшов нічого переконливого.
stty
команди?
Щойно я встановив Cygwin, і функціональності BACKSPACE немає, тобто коли я натискаю клавішу Backspace, я отримую пробіл.
Я намагався дослідити цю проблему в Google, але не знайшов нічого переконливого.
stty
команди?
Відповіді:
У моєму випадку резервна область взагалі не працювала після створення порожнього ~ / .vimrc. Після зміни зміни це зробило роботу
Покладіть:
встановити bs = 2
в .vimrc
Знайдено це на веб-сторінці http://linux-journal.blogspot.com/2005/04/fix-vim-backspace-doesnt-work.html
Для мене: У командному рядку Windows введіть
echo export TERM=cygwin >> C:/cygwin/home/YourUser/.bashrc
Це додасть його до .bashrc
і все може працювати чудово!
TERM
змінна середовища msys
через налаштування змінної середовища Windows, як це запропоновано в StackOverflow, щоб допомогти з git
проблемами в Windows. Просто скинути його cygwin
в .bashrc
не допоможе, але витягувати TERM
запис з налаштувань Windows , і зробили. Дякую, що вказали на мене в правильному напрямку!
Я знайшов рішення проблеми, яка була такою, як описана вище.
Просто запустіть інсталяцію Cygwin ще раз і перевстановіть termcap
і terminfo
. Якщо ви використовуєте поле пошуку, ви можете швидко їх знайти. Замість того, щоб говорити "Зберігати" для кожного, натисніть на нього, щоб він сказав "Перевстановити". Можливо, вам доведеться встановити прапорець "Сховати застаріле", term
щоб відобразитись у пошуку.
Моя папка terminfo повністю відсутня. Не знаю чому. Сподіваюся, що це комусь допоможе.
Під час встановлення типу TERM ви повідомляєте хосту, який TERMCAP використовувати для малювання у вікні терміналу. Більшість хостів * NIX не знають, що таке термін "cygwin", тому вони не знають, як робити маніпуляції на екрані з символами, такі як вставки, видалення, прокрутки, зміни шрифту тощо.
Якщо ви зміните змінну TERM в CYGWIN перед telnet або SSH на хост, ви отримаєте набагато кращі результати:
В CYGWIN:
d@test01 ~
$ TERM=ansi;export TERM
$ ssh suntest1
d@suntest1's password:
Sun Microsystems Inc. SunOS 5.8 Generic patch October 2001
d pts/1 test01 Fri Oct 12 00:15 still logged in
$ echo $TERM
ansi
$_
Тепер хост знає, що у вас є тип терміналу ANSI, і він може використовувати його файл ANSI TERMCAP, щоб розповісти, як спілкуватися.
Якщо ви не можете змусити це працювати, і більшість все працює належним чином, крім області простору, ви можете перепрограмувати "getty" на хості, до якого ви підключаєтесь, щоб розпізнати те, що ви хочете, і ось як це (найстаріший, найпоширеніший і найбільш універсальний спосіб вирішення проблем із зворотним простором / видаленням):
Ви виконуєте ssh або telnet своєму хосту, а в хості виконуєте команду stty. Якщо ви натиснете клавішу "BACKSPACE", і вона не повертається назад, це тому, що термінал, ймовірно, шукає іншого символу на основі типу TERM. Замість того, щоб переглядати все це, ви можете вручну встановити визначення зворотної області в CLI або у вашому .profile, .bashrc або .bash-профільному файлі у вашому каталозі $ HOME за вашим бажанням або на основі аромату * NIX ви використовуючи.
Отже, якщо ви натискаєте ^ H (це CONTROL-H) і ваша клавіша створює резервну копію, але ви натискаєте клавішу BACKSPACE, і вона не намагається використовувати stty так:
stty erase \*<HIT YOUR BACKSPACE KEY HERE>*[ENTER]
Більшість часу це буде виглядати так:
stty erase \^?[ENTER]
'\' Повідомляє, що наступний символ буде контрольним символом, який не можна роздрукувати, і прийняти його, а не "інтерпретувати" його.
Після натискання клавіші [ENTER] ви зможете натиснути клавішу [BACKSPACE] і повернути її назад / видалити все, що ви ввели.
Ви можете встановити це у своїй оболонці.
Тепер, якщо ви все ще використовуєте VI, іноді переклад не працює, і вам потрібно насправді набрати ^ H in vi, але це нормально.
Ви могли сказати:
stty стирати k [ENTER]
і це буквально перевело б "k" в символ стирання / видалення ..
-D
Гаразд, у мене виникла ця проблема з оновленням установки Cygwin вручну. У будь-якому разі я знайшов цю посаду , яка привела мене до рішення для моєї установки.
У старшій cygwin був файл /etc/terminfo/c/cygwin
, але в новій cygwin очікували, що файл буде /etc/terminfo/63/cygwin
.
Після того, як я скопіював файл "cygwin" в це місце, ключ зворотної області оболонки bash спрацював нормально, як і вкладка та інші.
Зміна TERM
змінної cygwin
та додавання SET TERM=cygwin
до .bat
файлу для мене не працювало, але я її виправив. Ось, що я зробив: У менеджері пакунків через установку я вибрав для встановлення xterm: X11 terminal emulator
, після установки я додав SET TERM=xterm
у .bat
файл (як запропоновано вище), запустив термінал і в Опціях -> Вибране меню терміналуType=xterm
, потім перезапустив термінал. Backspace почав працювати правильно!
Примітка: якщо ви вже встановили cygwin - просто запустіть інсталятор і додайте xterm пакет.
Я бігаю:
Я згоден з усіма відповідями тут. Але тут є набагато простіший спосіб: http://lifepluslinux.blogspot.in/2014/08/backspace-doesnt-work-in-vim-on-cygwin.html
Провівши 2 дні часу за читанням матеріалів в Інтернеті. Я знайшов цього, який працював на мене. Я не знаю, чи відповідає цей випадок кожному. Але це спрацювало як шарм для мене завдяки Юкселю
Проблема була у файлах 'termInfo', кроки, які він запропонував
підтвердьте, чи проблема пов'язана з терміналом, набравши в CygWin Terminal, це повинно дати (ігноруйте попередження)
less my_session.log
УВАГА: термінал не працює повністю
Отримайте інформацію про 'TermCap', до якого шляху чи каталогу він пов’язаний, набравши нижче код у терміналі CygWin
infocmp -C
ви повинні або отримати
infocmp: не вдалося відкрити файл terminfo / usr / share / terminfo / 63 / cygwin
Або ви також можете отримати щось, починаючи з тексту на кшталт "Реконструйовано через infocmp ..."
Запустіть наведений нижче код у терміналі CygWin, щоб запустити діагностику, щоб отримати додаткові відомості про шлях збереження файлів
cygcheck -s
що має відповідати вам, як у тексті нижче
Діагностика налаштування Cygwin
...
C: / cygwin / система бінарний, noacl
C: / cygwin / bin / usr / bin system binary, noacl
C: / cygwin / lib / usr / lib система двійкова, noacl
C: \ cygwin \ etc \ terminfo / usr / share / terminfo system binary, noacl
префікс cygdrive / cygdrive користувача binary, noacl, posix = 0, auto
...
C: \ cygwin \ etc \ terminfo / usr / share / terminfo system binary, noacl
з результату ви отримали з 3-го кроку. тепер скопіюйте всі файли та папки, які існують всередині / usr / share / terminfo, у папку C: \ cygwin \ etc \ terminfo - ПРИМІТКА: ця папка може відрізнятися від вашої залежно від установки
Будь ласка, дотримуйтесь зображення нижче
options
Keys
вкладкуBackarrow sends ^H
Це єдине, що працювало для мене, тим більше, що якщо вам доведеться SSH на сервер (не всі виправлення працюватимуть), я використовував, щоб додати stty erase ^?
до свого .bashrc, але це вирішило проблему лише 80% часу.
Ніколи не відчували своєї проблеми. Спробуйте встановити емулятор терміналу Mintty ( http://code.google.com/p/mintty/ ).
Він доступний через інсталятор Cygwin. Кращий термінал для cygwin.