Eu tenho a seguinte linha em um arquivo (observe a guia no começo):
$q = "select pl.id, pl.pltag tag, tf.nome família, tg.nome Gênero, ts.nome espécie, l.nome localidade
Quando eu tento editá-lo, digamos, substitua Gênero por gênero, eu movo o cursor para "G", mudo Insert to Replace (pressionando a tecla insert novamente) e, em seguida, digitando "g" sobre ele. Parece que funcionou, mas quando eu paro e salvo, descubro que o arquivo agora tem:
tg.nomeGgênero
Parece que a primeira aba está confundindo o Vim? Ou talvez os diacríticos usados na língua portuguesa (aceitos pelo Postgresql)? Estou usando terminal no Ubuntu Desktop 14.04, conectado por ssh a outra máquina com o Ubuntu Server 14.04, onde estou editando o arquivo.
Embora o Vim não diga nada sobre o local, o psql diz o seguinte:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US:en",
LC_ALL = (unset),
LC_PAPER = "pt_BR.UTF-8",
LC_ADDRESS = "pt_BR.UTF-8",
LC_MONETARY = "pt_BR.UTF-8",
LC_NUMERIC = "pt_BR.UTF-8",
LC_TELEPHONE = "pt_BR.UTF-8",
LC_IDENTIFICATION = "pt_BR.UTF-8",
LC_MEASUREMENT = "pt_BR.UTF-8",
LC_TIME = "pt_BR.UTF-8",
LC_NAME = "pt_BR.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Talvez LC_ALL = (unset)
seja a fonte do problema?
A saída de stty -a
, conforme solicitado nos comentários:
(minha máquina)
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
(servidor)
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc ixany imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke