... и это сводит меня с ума.
По сути (это происходило в последние пару месяцев), я подключаюсь к нескольким серверам CentOS (одному Linode, другому VPS и общему хосту, к которому у меня есть доступ к оболочке), запустив 5.5, 5.7 и 6 с моего Mac работает под управлением OS X Lion, используя Terminal.
В принципе:
$ ssh username@example.com
[remote-host] $ nano somefile.txt
Как только я начинаю редактировать файл, если я использую клавиши со стрелками для перемещения вокруг курсора или начинаю удаление, а затем снова набираю текст, курсор немного перескочит, и если я сохраню файл и снова открою его, очевидно, что курсор был фактически прыгает повсюду на линии без видимой причины.
Я заканчиваю тем, что получаю такие вещи, как «Это неофициальный текст». Когда я набрал (в безумном редакторе курсора) «Это строка текста».
Это большая проблема, когда дело доходит до редактирования файлов конфигурации, потому что мне часто приходится редактировать одну строку, сохранять и закрывать, а затем снова открывать, чтобы убедиться, что строка правильная ... затем редактировать другую строку ... и это становится довольно раздражающим ,
Я обнаружил проблемы с рендерингом Linode Lish Shell Vim и Nano: линии не отображаются / позиции курсора неправильные , но я не знаю, насколько это связано, так как это конкретно относится к lish.
Ответы:
[ Обновление: Начиная с Mac OS X Mountain Lion 10.8, Терминал поддерживает escape-последовательность Backtab, устраняя эту проблему.]
Версия (s?) Nano на этих серверах иногда отправляет последовательность Backtab (ESC [Z) при перемещении курсора влево на один символ, но Терминал не поддерживает эту последовательность, поэтому nano считает, что курсор переместился, когда нет t и его представление о текущей позиции курсора не синхронизировано с терминалом.
По причинам, которые я не могу понять, nano отправляет Backtab при перемещении влево, а курсор находится на один символ справа от табуляции. Точно так же IIRC отправляет Tab (Control-I) при перемещении вправо, а курсор находится на один символ слева от остановки табуляции. Я не знаю, почему он делает это вокруг табуляции вместо того, чтобы всегда двигаться влево / вправо, используя одинаковые последовательности символов. Версия nano, поставляемая с Mac OS X Lion 10.7, этого не делает.
Nano делает это только тогда, когда terminfo говорит, что
cbt
возможность поддерживается. Termfo по умолчанию для терминала - этоxterm-256color
, который объявляет эту возможность и сопоставляет ее с последовательностью Backtab. Обходной путь - установитьTERM
переменную среды на то, что не объявляет эту возможность. Вы можете сделать это на локальном компьютере перед вызовомssh
или в файле запуска оболочки на удаленном хосте. Установка егоxterm-color
в крайнем случае будет делать, хотя это не рекомендуется, так как это отключает другие важные действия (например, 256 цветов, BCE, альтернативное сохранение содержимого экрана). (Более тяжелый подход заключается в настройке вашегоxterm-256color
(илиxterm
) файла terminfo на удаленном хосте для удаленияcbt
.)Рекомендуется настроить удаленный хост (так или иначе), чтобы настройки не применялись локально или к другим удаленным хостам, но самый простой обходной путь - изменить настройку предпочтения терминала, чтобы использовать
xterm-color
вместоxterm-256color
:Я рекомендую продублировать существующий профиль настроек, настроить его и использовать только при подключении к этим удаленным хостам.
источник
cbt=\E[Z
запись в.ti
исходном файле.У меня была такая же проблема. Я нашел этот поток, который рекомендовал, среди других решений, переменную среды на удаленном сервере:
Добавление этого в ~ / .bash_profile решило проблему для меня. Это простое решение, преимущество которого заключается в том, что он влияет только на конкретного пользователя на конкретном хосте.
источник
У меня была такая же проблема в программе MobaXTerm. Причиной проблемы был ключ -K, который я использовал для включения numpad в Nano при использовании PuTTY. Как я выяснил в MobaXTerm -K не нужен (по умолчанию работает numpad) и без него клавиши со стрелками работают правильно и не вставляют мусор случайным образом.
источник
OSX 10.7.4 с Centos в качестве гостевой ОС
В настройках терминала OSX, настройки, расширенные
Больше никаких проблем :)
источник
Для пользователей MobaXterm. Если вы не используете -K и все еще испытываете проблему. Убедитесь, что следующие строки закомментированы в вашем файле / etc / nanorc.
# set rebinddelete
# set rebindkeypad
источник
Вероятная проблема заключается в том, что да, и ваш локальный компьютер, и ваш сервер находятся в Unix-системах, в которых есть nano, но эти nano-версии могут отличаться.
источник
Если вы получаете «Это неофициальный текст» и то, что вы ввели «Это текстовая строка» (я должен предположить, что ваш отчет верен), то у вас есть нестабильный «управляющий» ключ, какой бы он ни был на Mac (команда ? яблоко?). Поскольку nano использует клавиши control +, чтобы «прыгать», и у вас меньше символов, чем набрано, у нас есть а) исчезающие символы б) последовательности элементов управления, появляющиеся из ничего, из чего следует, что а) становится б) логичным.
У вас также может быть какая-то неприятная программа для работы с горячими клавишами, макросами или чем-то еще. Я подозреваю, что это принадлежит суперпользователю, а не серверной ошибке, но я буду держать пометку, возможно, у кого-то есть реалистичный, связанный с SSH ответ.
источник