Este está me deixando louco. Estou usando o XTerm (330) e o vim mais recente 8.0.1365 (no FreeBSD).
Às vezes, nem sempre, cerca de 1 em cada 5, quando abro um arquivo com o vim, uma linha engraçada é inserida acima da linha 1. Depois de muito coçar a cabeça, percebi que era a última linha que eu excluí em uma sessão anterior. Em outras palavras, parece que ""P
(colar o "
registro) é executado.
Após mais algumas investigações, descobri que isso só acontece quando *sunKeyboard: true
defini os recursos do XTerm e quando uso uma fonte renderizada, como -fa "DejaVu Sans Mono:size=24"
. (Eu disse que era estranho, não disse?). Eu não tenho nenhum .vimrc
e nenhum .vim
diretório, para evitar quaisquer truques plug-in de jogo em mim.
Eu posso reproduzir o efeito um pouco com os seguintes comandos:
#!/bin/sh
rm -f .viminfo; echo inserted >bar; echo x >baz
vim -c d -c wq bar
echo '*sunKeyboard: true' > XTerm
export XAPPLRESDIR=$PWD
for i in 1 2 3 4 5 6; do
xterm -fa "DejaVu Sans Mono:size=24" -e vim baz
done
Isto irá criar os arquivos necessários, colocar inserted
no "
registro e chamar o vim algumas vezes. Se você vir um arquivo de uma linha x
na primeira linha, está tudo bem; insira q
para a próxima chamada. Se, no entanto, você vê
inserte2
x
você reproduziu o problema. Observe também que o último caractere da linha 1 foi substituído por 2
. Isso parece vir do .
registro. Aqui estão os registros:
:reg
--- Registers ---
"" inserted^J
"1 inserted^J
". 2
"% baz
- Tentando o script várias vezes, você pode reproduzir o problema? Certifique-se de mover-se
.vimrc
e.vim
temporariamente fora do caminho. - Se sim, você pode me dizer o que está acontecendo aqui?
- Alguma sugestão de como chegar ao fundo disso?
ATUALIZAR
Parece que eu não sou o único: https://github.com/vim/vim/issues/2238
:reg
comando não mostra mais o ".
conteúdo.
:echo v:termresponse
?
^[[>19;331;0c
. A página do github é um labirinto torcido, do qual não faço ideia como obter informações. Na parte inferior, aparece "fechado", mas não consigo encontrar um número de patch, como "corrigido em 8.0. ####". Obrigado por reservar um tempo para comentar!
set t_RS=
ouset t_SH=
em seu vimrc funciona?