Je suis nouveau sur vi , en fait j'ai commencé à apprendre vi à partir d'aujourd'hui et je suis bloqué sur le comportement de la touche de retour arrière . En fait, lorsque j'ai lancé vi sur mon Ubuntu 12.04 pour la première fois, ma touche de retour arrière fonctionnait normalement, mais après cela, elle a commencé à se comporter étrangement. Chaque fois que j'appuie sur le retour arrière en mode d'insertion, il se déplace simplement d'un endroit vers la gauche au lieu d'effacer le caractère. Comment récupérer la fonctionnalité de retour arrière par défaut? Veuillez noter que je ne souhaite pas installer vim ou définir nocompatibilty.
10
vim
.Réponses:
Parfois, la
vi
commande est un alias pourvim
et lorsqu'elle est appelée asvi
active son vi-mode.Même en mode traditionnel, le retour arrière supprime le caractère, mais ne l'affiche pas immédiatement comme supprimé. (Après avoir appuyé sur ESC, les caractères ont disparu.)
Je suppose que vous devez choisir entre utiliser
vi
ce qui vient avec le comportement décrit ou utiliservim
qui peut le faire comme vous l'attendez.la source
Vérifiez si vous utilisez réellement plain
vi
via$ vi --version | head -n 1
Cela donne sur ma machine (Debian 7)
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Feb 10 2013 02:27:59)
vim peut être conçu pour se comporter davantage comme vi. Cela peut être fait en donnant la commande
vi
au lieu devim
la ligne de commande, oùvi
est seulement un lien symbolique versvim
, auquel cas vim est ouvert en mode vi. Vous pouvez vérifier cela avec:set compatible?
.Comme mentionné dans la réponse précédente, l'effet du retour arrière n'est visible qu'après avoir été activé
insert mode
lorsqueset compatible
est activé.Remarque: en mode compatible avec vi, vous ne pouvez pas reculer sur du texte qui a été précédemment entré (avant d'être entré
insert mode
), ni dans un eol ou un retrait dansinsert mode
. voir:help 'bs'
Essayez les différents paramètres pour comprendre leur signification: entrez les caractères / sauts de ligne et l'indentation en mode insertion, quittez et entrez de nouveau en mode insertion, puis essayez de revenir en arrière.
Les utilisateurs qui ne connaissent pas le comportement de vi et qui n'insistent pas sur l'utilisation de vi simple (non recommandé de toute façon) devraient
:set backspace=indent,eol,start
. Afaik sur Debian, un fichier de configuration à l'échelle du système est généralement installé avec ce paramètre.Vous pouvez obtenir le réglage actuel via
:set bs?
.la source
Créez un nouveau fichier dans le répertoire personnel de l'utilisateur appelé .vimrc s'il n'est pas déjà là. Ici, nous allons créer et éditer en même temps avec vi
Ajoutez les commandes suivantes, qui incluent la désactivation du mode de compatibilité et la fonctionnalité d'effacement des touches de retour arrière:
Enregistrer et quitter le fichier en utilisant
La désactivation du mode de compatibilité permet d'utiliser les touches fléchées auxquelles les anciens utilisateurs vi sont habitués.
Étant donné que nous avons créé un fichier lors de la création du fichier, la propriété du fichier sera probablement root. Vous pouvez montrer le fichier à l'utilisateur.
Dans mon cas, c'était pour une framboise pi, donc l'utilisateur et le groupe sont pi:
Maintenant, relancez vi et profitez-en!
la source
set nocp
a fait l'affaire pour moiJe pense que la meilleure façon serait de regarder le cheatsheet VI / VIM: http://www.viemu.com/vi-vim-cheat-sheet.gif
Passez en mode normal (ESC) puis MAJ + X.
la source
placez juste dans votre
~/.zshrc
la source