Я часто работаю на удаленных серверах. Есть один сервер, который, кажется, «путается» с количеством доступных столбцов (моя лучшая догадка), но только при работе в Vim (не bash). В частности, когда я открываю файл с длинными строками, все сначала выглядит нормально. Но по мере того, как я перемещаюсь, текст перемешивается. Курсор будет выглядеть так, как будто он находится над определенным словом, но на самом деле я нахожусь на другой строке. Я это знаю, потому что если я ищу слово, которое закрывает курсор, под моим курсором внезапно появляется слово из другой строки. Кроме того, часть текста, кажется, переносится на следующую строку (даже если у меня есть «set nowrap»). И он переносится гораздо быстрее, чем того требует окно.
Если я выполняю "ls" в командной строке, текст расширяется до конца окна. Так что я думаю, что это особенность Vim.
Что я проверил: 1. Я проверил, что $TERM совпадает с $TERM на моей локальной машине (думая, что тут какое-то недопонимание). Оба — «xterm-color». 2. Я проверил, что Vim не установил какое-то нечетное количество столбцов (verbose set columns?). Возвращаемое значение совпадает с шириной моего окна. 3. Я много гуглил и не смог найти ничего похожего.
Я ценю любую помощь. Дайте мне знать, как я могу прояснить ситуацию.
Моя локальная машина — Mac OS X Mountain Lion. Удаленный сервер — Debian (Squeeze). Удаленный Vim — 7.2.
EDIT-1: Я не знаю, связаны ли следующие моменты, но вот еще несколько симптомов: 1. Если я разделяю экран в Vim, строки с информацией о файлах между ними перемешиваются (должно быть, это связано, я думаю) 2. «Установить линейку» не работает
EDIT-2: Я только что понял, что "less" переносит текст слишком рано (задолго до конца окна) и в том же самом месте, где пытается это сделать Vim. Так что я предполагаю, что это как-то связано с bash. Единственное отличие от "less" в том, что строки не путаются, как в Vim.
EDIT-3: Теперь это, наверное, очевидно, и мне следовало проверить другие редакторы раньше, но, естественно, у emacs те же проблемы, что и у Vim. Это проблема bash? Проблема Term?
EDIT-4: Я только что попробовал получить удаленный доступ к тем же файлам с помощью iTerm (вместо Terminal.app), и все работает отлично. Я не знаю, что с этим делать. В каком-то смысле моя проблема решена, но я бы хотел понять, что происходит, если кто-то может пролить свет.
решение1
Я не уверен, что именно происходило или что исправило это, но, как упоминалось выше, я получил доступ к удаленному файлу с помощью iTerm (вместо Termanal.app), и все отформатировалось так, как ожидалось. Исходя из этого, я предположил, что что-то не так между Terminal.app и удаленным сервером. Пользователь romainl предложил мне явно установить $TERM в xterm-256color
моем ~/.bashrc
( set TERM=xterm-256color
) на удаленном сервере и повторить попытку с Terminal.app. Когда я это сделал, текст отформатировался правильно, хотя и с неправильной подсветкой синтаксиса. Затем я удалил ранее упомянутую строку из моего ~/.bashrc
на удаленном сервере, закрыл сеанс и начал заново. На этот раз все сработало так, как ожидалось. Возможно, просто Terminal.app глючил.
Еще раз спасибо всем, кто поделился своими знаниями.
решение2
У меня была сложная команда :highlight в моем .vimrc, которая вызывала эту проблему, делающую vi непригодным для использования. Вы можете устранить/подтвердить это, запустив vi без конфигурации.
Сначала выйдите из сеанса ssh, а затем войдите в систему, чтобы получить чистую оболочку, затем:
vi -u NONE -U NONE -N file.txt