5

Для жизни я не могу понять это.

При использовании браузера (неважно, какой), если я выделю текст, а затем вставлю в Vim или Neovim или Nano, я вижу символы, добавленные в начало и конец моего выбора.

Например, я выбираю "ответ" на этой странице, а затем вставляю его в терминал, который я получаю:

??????answer??????

Сохранение этих вставленных данных в файл с расширением .bin, а затем открытие в Vim с помощью этого помощника автоматической команды:

augroup Binary
   au!
   au BufReadPre  *.bin let &bin=1
   au BufReadPost *.bin if &bin | %!xxd
   au BufReadPost *.bin set ft=xxd | endif
   au BufWritePre *.bin if &bin | %!xxd -r
   au BufWritePre *.bin endif
   au BufWritePost *.bin if &bin | %!xxd
   au BufWritePost *.bin set nomod | endif
augroup END

Я получаю этот вывод:

0000000: fdbf bfb9 b083 616e 7377 6572 fdbf bfb9  ......answer....
0000010: b083 0a                                  ...

Итак, вы можете видеть, что я получаю

fdbf bfb9 b083

добавил в начало, и я получаю

fdbf bfb9 b083

добавлено в конец.

Любые идеи о том, что это такое?

Единственное недавнее серьезное изменение, которое я могу вспомнить, - это обновление OS X до Yosemite, так что это потенциально большое обновление.

РЕДАКТИРОВАТЬ: я подозреваю, что Терминал является источником проблемы. Я смог использовать iTerm2 без этой проблемы.

1 ответ1

3

Эта ошибка связана с функцией, известной как вставленный в скобки режим [1]. Neovim пока не поддерживает [2]. Вы получите ошибку выше, если приложение работает так, как будто оно может поддерживать этот режим, но не поддерживает его.

В neovim откройте окно терминала. С 'всегда' в буфере обмена выполните следующее:

pbpaste | xxd

Там не должно быть никаких ошибок. Теперь запустите следующее:

cat | xxd

Введите ⌘-v а затем Ctrl-D .

Вы должны ожидать увидеть ошибки. Во втором случае ввод обрабатывается приложением, которое упаковывает ввод специальными байтами. Заполненные байты отправляются как stdin.

[1] https://cirw.in/blog/bracketed-paste

[2] https://github.com/neovim/neovim/issues/3476.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .