# [vim]touches directionnelles inutilisable en mode insertion

## Napoleon

Bonjour,

C’est un problème un peut idiot mais que j’ai du mal à résoudre…

Quand j’ouvre vim (et non pas vi) depuis urxvt :

En mode insertion les touches directionnelles ont un comportement curieux.

Les touches produisent les caractères suivants sur la ligne supérieure à celle où se trouve l'insertion:

Haut: A

Bas: B

Droite: C

Gauche: D 

Je précise que ce problème n’as lieux qu’avec vim sur urxvt mais sur xterm ou konsole, vim marche très bien et ne présente pas cette anomalie.

En outre d’après mes recherches il semblerait que ce problème soit fréquent avec vi, mais voila je n’utilise pas vi mais bien vim. Et même avec ou sans le mode nocompatible de vim, rien n’y fait, j’ai toujours des ABCD au lieux du déplacement du curseur.

Si quelqu’un à une idée de la manière de résoudre ce problème assez pénible,

Merci.

EDIT : version et uses complets de vim et urxvt 9.10.

----------

## Napoleon

Ah !

J’ai trouvé ici la solution à mon problème alors que je cherchait la solution à un autre problème concernant le couple rxvt o vim (en fait c’était la conservation du gras).

La solution consiste donc à modifier la valeur « rxvt-unicode » de la variable $TERM par « xterm », et ainsi, tout rentre dans l’ordre.

Néanmoins, est-ce véritablement une bonne chose que de changer la variable $TERM ?

Librement,

----------

## truc

 *Napoleon wrote:*   

> Néanmoins, est-ce véritablement une bonne chose que de changer la variable $TERM ?

 

Non, mais normalement tu ne devrais pas avoir besoin de faire ça si tu as le bon terminfo d'installé (ou termcap) pour urxvt. Regarde un peu de ce coté là.

```
find /usr/share/terminfo/ -iname '*rxvt*'

/usr/share/terminfo/r/rxvt-xpm

/usr/share/terminfo/r/rxvt-256color

/usr/share/terminfo/r/rxvt-cygwin

/usr/share/terminfo/r/rxvt-16color

/usr/share/terminfo/r/rxvt-color

/usr/share/terminfo/r/rxvt-cygwin-native

/usr/share/terminfo/r/rxvt-88color

/usr/share/terminfo/r/rxvt+pcfkeys

/usr/share/terminfo/r/rxvt-unicode-256color

/usr/share/terminfo/m/mrxvt-256color

/usr/share/terminfo/m/mrxvt

/usr/share/terminfo/s/screen.rxvt

/usr/share/terminfo/s/screen-bce.rxvt

/usr/share/terminfo/s/screen-bce.mrxvt

/usr/share/terminfo/s/screen.mrxvt

```

----------

## Napoleon

 *truc wrote:*   

>  *Napoleon wrote:*   Néanmoins, est-ce véritablement une bonne chose que de changer la variable $TERM ? 
> 
> Non, mais normalement tu ne devrais pas avoir besoin de faire ça si tu as le bon terminfo d'installé (ou termcap) pour urxvt. Regarde un peu de ce coté là.
> 
> ```
> ...

 

Bonne remarque @truc, j’avais déja vérifié /usr/share/terminfo/r/ et j’y avait trouvé à la fois un fichier « rxvt-unicode » et « rxvt-unicode-256color ». J’ai bien supprimé rxvt-unicode et n’ai laissé que *-256color mais rien n’y fit, le problème persista. Même en faisant l’inverse (garder urxvt-unicode et enlever urxvt-unicode-256colors), le problème persistait toujours.

À ce stade, ça relève proprement de la magie noire :/ D’autant plus que vim marche bien avec les autres terminaux, et que les autres applications ncurses marchent sans soucis avec urxvt (en particulier le gras qui est conservé). Le problème vient clairement du couple vim/urxvt.

----------

## barul

Personnellement j'ai mis TERM="rxvt-unicode", et aucun problème de comportement dans vim

----------

## Napoleon

 *Cr0k wrote:*   

> Personnellement j'ai mis TERM="rxvt-unicode", et aucun problème de comportement dans vim

 Pour en être bien certain, je viens de refaire un test, dans le même terminal, :

```
TERM=xterm

vim #le gras et les touches directionnelles sont ok,

TERM=rxvt-unicode

vim #le gras et les touches directionnelles déconnent

TERM=xterm

vim #de nouveau le gras et touches directionnelles sont ok…
```

Je n’ai rien trouvé d’autre pour l’instant qui influence le fonctionnement de vim que cette variable là.

----------

## geekounet

Les touches directionnelles dans Vi(m) c'est une hérésie !  :Wink:  Les classiques HJKL c'est la méthode classique, ça marche partout et c'est plus rapide à l'usage en plus d'être combinables à d'autres commandes, ça vient tout seul.  :Wink: 

----------

## Napoleon

 *geekounet wrote:*   

> Les touches directionnelles dans Vi(m) c'est une hérésie !  Les classiques HJKL c'est la méthode classique, ça marche partout et c'est plus rapide à l'usage en plus d'être combinables à d'autres commandes, ça vient tout seul. 

 J’en conviens geekounet même si je te sais puriste  :Very Happy: . Sauf que voila, si je ne les utilise pas tout le temps, les deux fois dans la journée où j’aurais à les utilisées en mode insertion (pour aller au caractère précédant sans faire de ESC, h, i) ça doit tout de même marcher d’autant plus que ça marche bien ailleurs. Et puis bon, c’est un dysfonctionnement qui n’a pas lieux d’être et qui cache peut-être autre chose…

----------

