Touches fléchées Linux vi cassées en mode insertion
95
Mes touches fléchées ne fonctionnent pas en vi en mode insertion à la maison, elles insèrent juste chacune une nouvelle ligne et une lettre majuscule, comme «A». Y a-t-il moyen d'arranger ça?
@Paul Nathan - Si la solution est emacs, alors je ne veux pas savoir quel est le problème.
Chas. Owens
Réponses:
107
Je suppose que vous utilisez vim car il est étiqueté comme Linux. Essayer:
:set nocompatible
(Vous pouvez configurer votre .vimrc avec ceci en lui ajoutant cette commande. Créez un nouveau fichier .vimrc s'il n'est pas déjà présent dans votre répertoire personnel, exécutez echo $HOMEpour vérifier le chemin du répertoire personnel.)
Assurez-vous de démarrer vi avec la commande vimet non vi. La plupart des fonctionnalités avancées et utiles de vimsont désactivées par défaut, sauf si vous le lancez avec vim.
pts
1
@pts - uniquement sur les systèmes défectueux. Démarrer vim comme vi sur toutes mes boîtes fonctionne très bien; cependant, j'ai utilisé certaines boîtes CentOS qui illustrent le comportement dont vous parlez.
Chas. Owens
Quelqu'un peut-il modifier cette réponse pour inclure à quoi elle ressemblerait dans un vimrc?
Stephan
1
@Stephan Ajouter set nocompatiblesur sa propre ligne dans le .vimrc
Matthew Wilcoxson
Sur Ubuntu, j'ai résolu ce problème en installant simplement vim (sudo apt install vim) à partir de ce moment sur vi fonctionne bien avec les touches fléchées en mode insertion. Edit: Je vois maintenant que cela a déjà été mentionné par Han ci-dessous ici.
pizzamonster
74
Ubuntu est livré par défaut avec vim-tiny, qui n'a pas toutes les cloches et les sifflets de vim.
Faites un rapide sudo apt-get install vimpour obtenir toutes les fonctionnalités juteuses dont tout le monde parle.
C'était exactement ce dont j'avais besoin dans mint linux. En installant vim, je pouvais toujours commencer à utiliser "vi" et toute la mise en évidence du code était maintenant activée. Quel fantastique morceau de connaissance Linux :)
wired00
1
Cela a fonctionné pour mon Raspberry Pi (Jessie Lite).
J'éprouvais
35
:set term=builtin_ansi
réparé pour moi. Vous pouvez soit le coller dans vim en mode d'échappement, (mode bip) ou l'ajouter à la fin de ~ / .vimrc sans le début ":"
: set term = xterm pourrait également fonctionner (et plus facile à retenir).
Alexx Roche
FYI a :set term=builtin_ansitravaillé pour moi. :set term=xtermpas.
FractalSpace
sur une de mes boîtes Linux que j'utilise export TERM=xtermen ligne de commande avant d'appeler vi puis :set term=xtermdans vim 7.2 fonctionne pour moi
Alexx Roche
Fonctionne parfaitement! Je vous remercie!
Akhmedzianov Danilian
Cela fonctionne pour activer la navigation par touches fléchées, mais cela a complètement tué tout le codage couleur dans le terminal.
Ken Ingram
16
vi ne prend pas en charge les touches fléchées en mode insertion. Utilisez vim. Bien que votre vi ne soit qu'un lien vers vim, il peut être configuré pour se comporter comme le vi "original" et ainsi désactiver les touches fléchées. Appelez simplement vim directement.
Bien que ce ne soit pas une solution, c'est la meilleure explication du comportement (imo), faisant clairement la différence entre viet vim. Mais sur ma boîte vimimprime command not found: D
Daniel W.
@DanFromGermany Peut-être que vous n'avez installé qu'un vi et non pas vim. Veuillez essayer d'installer vim via le gestionnaire de paquets de votre système Linux si vous souhaitez l'utiliser.
lothar
:set term=ansitravaillé pour moi grâce Raz . vous dites qu'il «ne prend pas en charge». Je me demande si vous avez dit cela parce que le vim-tinypaquet d'ubuntu -j'utilise- est différent de vanilla viou est-ce que la définition des termes fonctionnerait aussi dans ce cas?
n611x007
8
Encore une autre variante: ce problème est apparu pour moi après quelques changements .vimrc. Une recherche concertée a finalement révélé que ma re-cartographie intelligente de l'ESC en mode normal n'était pas une bonne idée. Le supprimer a résolu le problème:
" this is NOT something you want in .vimrc:
" In normal mode, hitting Esc turns off search highlights:
nmap <ESC> :nohl<CR> " Do NOT add this to .vimrc
Cela semble également avoir fonctionné pour moi en utilisant un conteneur Docker.
ohlando
1
Celui-ci a fonctionné pour moi aussi. J'utilise cmd.exe dans Windows et sshing dans ubuntu en utilisant vagrant
codelogn
@ CodeCodeO-1-O-log-n alors quel côté utilisiez-vous visur les fenêtres ou le côté ubuntu? :)
n611x007
Sous Windows, j'ai exécuté cmd.exe puis vagrant ssh sur le serveur ubuntu, puis vi sur le serveur. Mais plus tard, j'ai commencé à utiliser Putty et je n'ai plus besoin de le faire et Putty fonctionne très bien pour moi.
codelogn
2
J'ai eu le même problème avec les touches fléchées, mais lorsque j'ai utilisé ce paramètre nocp ou nocompatible, mon retour arrière ne fonctionnait pas correctement
pour une raison quelconque, lorsque j'ai installé vim avec
sudo apt-get install vim, vi n'avait plus de problèmes avec les flèches ou le retour arrière
et après avoir fouillé pendant une heure, j'ai trouvé que le plugin AutoClose (qui n'aimait pas de toute façon) cassait les touches fléchées.
La documentation du plugin suggère de définir set ttimeoutlen = 100, mais cela n'a pas fonctionné pour moi! (en utilisant urxvt + screen ou urxvt, et même xterm)
Réponses:
Je suppose que vous utilisez vim car il est étiqueté comme Linux. Essayer:
(Vous pouvez configurer votre .vimrc avec ceci en lui ajoutant cette commande. Créez un nouveau fichier .vimrc s'il n'est pas déjà présent dans votre répertoire personnel, exécutez
echo $HOME
pour vérifier le chemin du répertoire personnel.)la source
vim
et nonvi
. La plupart des fonctionnalités avancées et utiles devim
sont désactivées par défaut, sauf si vous le lancez avecvim
.set nocompatible
sur sa propre ligne dans le .vimrcUbuntu est livré par défaut avec
vim-tiny
, qui n'a pas toutes les cloches et les sifflets de vim.Faites un rapide
sudo apt-get install vim
pour obtenir toutes les fonctionnalités juteuses dont tout le monde parle.la source
:set term=builtin_ansi
réparé pour moi. Vous pouvez soit le coller dans vim en mode d'échappement, (mode bip) ou l'ajouter à la fin de ~ / .vimrc sans le début ":"
la source
:set term=builtin_ansi
travaillé pour moi.:set term=xterm
pas.export TERM=xterm
en ligne de commande avant d'appeler vi puis:set term=xterm
dans vim 7.2 fonctionne pour moivi ne prend pas en charge les touches fléchées en mode insertion. Utilisez vim. Bien que votre vi ne soit qu'un lien vers vim, il peut être configuré pour se comporter comme le vi "original" et ainsi désactiver les touches fléchées. Appelez simplement vim directement.
la source
vi
etvim
. Mais sur ma boîtevim
imprimecommand not found
: D:set term=ansi
travaillé pour moi grâce Raz . vous dites qu'il «ne prend pas en charge». Je me demande si vous avez dit cela parce que levim-tiny
paquet d'ubuntu -j'utilise- est différent de vanillavi
ou est-ce que la définition des termes fonctionnerait aussi dans ce cas?Encore une autre variante: ce problème est apparu pour moi après quelques changements .vimrc. Une recherche concertée a finalement révélé que ma re-cartographie intelligente de l'ESC en mode normal n'était pas une bonne idée. Le supprimer a résolu le problème:
la source
La seule chose qui a fonctionné pour moi était ": set term = ansi"
la source
vi
sur les fenêtres ou le côté ubuntu? :)J'ai eu le même problème avec les touches fléchées, mais lorsque j'ai utilisé ce paramètre nocp ou nocompatible, mon retour arrière ne fonctionnait pas correctement
pour une raison quelconque, lorsque j'ai installé vim avec
sudo apt-get install vim
, vi n'avait plus de problèmes avec les flèches ou le retour arrièrela source
Je viens d'avoir un problème avec les touches fléchées après avoir basculé pour utiliser git dans .vim.
J'ai installé ce repo - https://github.com/sunaku/.vim
et après avoir fouillé pendant une heure, j'ai trouvé que le plugin AutoClose (qui n'aimait pas de toute façon) cassait les touches fléchées.
La documentation du plugin suggère de définir set ttimeoutlen = 100, mais cela n'a pas fonctionné pour moi! (en utilisant urxvt + screen ou urxvt, et même xterm)
J'ai donc supprimé le plugin à la fin.
la source
Vous voudrez peut-être aussi essayer 'noesckeys'
la source
J'ai eu le même problème lors de l'utilisation de vim dans Windows 8.1 avec Cygwin.
La solution a fonctionné pour moi est, exécutez simplement la commande suivante dans votre terminal Cygwin:
la source
Dans la ligne de commande, écrivez ceci:
la source