64 votes

vim backspace quitte ^?

Dans Vim, quand j'ai touché backspace - clé dans l' insert mode, il laisse ^? caractère et ne supprime pas le caractère, il est à supposer pour les supprimer.

J'ai la suite dans ma .vimrc

syntax on
set number
set expandtab
set incsearch
set nocompatible
set backspace=indent,eol,start
fixdel

Ce qui se passe dans le mode de commande trop. Quand j'ai tort de type W au lieu de w pour enregistrer, j'appuyez sur backspace clé et il me donne les éléments suivants:

:W^?

Aucune idée sur ce problème et comment le corriger?!

Mise à JOUR: avant de poster cette question DONC, j'ai fait une base de recherche google et j'ai essayé toutes les suggestions de la première page de résultat de recherche, mais sans succès.

@strcat j'utilise vim version 7.0.237, KDE console 1.6.4, Linux 2.6.18 x86_64 machine.

@graywh w.r.t chat -v, pour les supprimer, je reçois ^[[3~ et pour le retour, je reçois ^?.

La sortie de l' stty -a est comme suit

speed 38400 baud; rows 38; columns 194; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; 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 -cdtrdsr
-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

83voto

evil otto Points 6069

^? est le caractère de suppression; le caractère de retour arrière est - ^H. Un seul de ces est reconnu par votre terminal en tant que "effacer", et elle est déterminée par les paramètres du terminal, stty. (bash et autres coquillages comprendre ceci comme un problème et de faire des choses spéciales à reconnaître à la fois)

Si votre émulateur de terminal (ssh, putty, xterm, peu importe) n'est pas d'accord avec votre terminal paramètres, puis vous voyez ce comportement. Habituellement, c'est la droite par défaut, mais très souvent, les gens mettent stty des commandes dans leur .bashrc qui rompt les choses.

Vous avez probablement quelque chose comme stty erase ^H dans votre bashrc. Si vous le faites, de se débarrasser de lui, ou de changer votre terminal les réglages de la touche retour arrière envoyez ^H à la place de DEL (^?)

Vous pouvez également résoudre ce avec vim mappages, mais c'est ignorer le problème de base.

8voto

Morgan Points 6578

À partir de la vim wiki Backspace_and_delete_problems, j'ai continué à lire :help :fixdel il suggère ceci:

if &term == "termname"
  set t_kb=^V<BS>
  fixdel
endif

Où "^V" est CTRL-V et de la "" est la touche retour arrière
(ne tapez pas les quatre personnages!). Remplacer "termname"
avec votre nom de terminal.

Pour moi l' fixdel rend le retour arrière fonctionnent comme les supprimer. Ma première erreur a été également faire le CTRL-V de la touche retour arrière dans gvim, sur le système que vous ne pouvez pas obtenir la clé pour travailler correctement de sorte qu'il colle la touche retour arrière que la problématique de la session voit.

J'ai maintenant dans ma .vimrc:

if &term == "xterm-256color"
  set t_kb=^?
endif

5voto

Veuillez consulter le lien ci-dessous pour aider à résoudre votre problème:

http://vim.wikia.com/wiki/Backspace_and_delete_problems

EDIT:

j'ai trouvé ce qu'elle ressemble à un problème similaire à celle décrite par vous:

http://lj4newbies.blogspot.com/2007/05/backspace-and-delete-keys-problem-in.html

4voto

Ryan Points 1893

Essayez ctrl + del / ctrl + backspace ou alt + del / alt + backspace , je ne me souviens pas lequel, mais je pense que cela fera l'affaire pour vous.

Si cela ne fonctionne pas, essayez shift + backspace / del . J'ai rencontré ce problème auparavant, il existe une touche combinée sur laquelle vous pouvez appuyer pour envoyer le code de caractère correct pour effectuer votre suppression.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X