Les commandes cygwin vim sont-elles différentes de vim normales?

28

Je ne parviens pas à modifier des fichiers texte à l'aide de vim dans cygwin.

Je dois appuyer iplusieurs fois pour insérer du texte. Parfois, cela fonctionne et parfois non. Chaque fois que je déplace le curseur vers le haut, je dois appuyer plusieurs fois sur I.

Quel pourrait être le problème? Fonctionne-t-il backspacedans cygwin?

Randhir Singh
la source
Exécutez-vous à l'intérieur de la console Windows native, dans un autre émulateur de terminal fonctionnant en tant qu'application native, dans un émulateur de terminal fonctionnant sous X? Quelle version de Windows? Le délai entre le pressage ESCet le pressage est-il iimportant?
Gilles 'SO- arrête d'être méchant'

Réponses:

35

Cygwin vim est livré avec la configuration par défaut de vim, ce qui laisse vim en mode de compatibilité vi où il essaie d'émuler le vi d'origine aussi près que possible. Entre autres limitations, les touches fléchées ne fonctionnent pas dans ce mode et le retour arrière déplace simplement le curseur vers la gauche plutôt que d'effacer un caractère.

La création d'un vide ~/.vimrcsuffit pour désactiver le mode de compatibilité vi:

touch ~/.vimrc

Cela dit, ipour entrer en mode insertion, cela devrait quand même fonctionner. Vous devrez fournir plus de détails sur où et comment vous exécutez vim. De plus, exécutez-vous réellement le vim fourni avec Cygwin, ou la version native de Windows de vim?

Mise à jour

Vous pouvez ajouter les ensembles ci-dessous dans ~ / .vimrc pour faire est similaire à vim par défaut

set nocompatible
set backspace=indent,eol,start
set backup
set history=50
set ruler
set background=dark
set showcmd
set incsearch
syntax on
set hlsearch

Si vim ne récupère pas votre fichier vimrc, il se peut qu'il recherche un .vircfichier à la place. Dans ce cas, renommez le fichier et les modifications seront appliquées.

ak2
la source
Cela aurait été bien si vous aviez dit comment désactiver la compatibilité.
gideon
Savez-vous où se trouve l'emplacement par défaut de cygwin? Je veux créer .virc par GUI au lieu de cygwin
Alex
13

Le moyen le plus simple consiste à copier l'exemple de fichier vimrc de Cygwin VIM

cp /usr/share/vim/vim*/vimrc_example.vim /etc/vimrc

Cela résoudra le problème pour chaque compte de votre système. Si, pour une raison quelconque, vous souhaitez uniquement le modifier pour un utilisateur particulier,

cp /usr/share/vim/vim*/vimrc_example.vim ~/.vimrc

Voir la référence ici

Gaurav
la source
1
Cela devrait être la réponse acceptée car l'exemple active en fait la mise en surbrillance de la syntaxe par défaut et probablement beaucoup d'autres valeurs par défaut sont habituées.
JohnEye
N'a pas fonctionné jusqu'au redémarrage d'un PC. Mais ça marche!
3bdalla
Excellente réponse, simple et résolu tous les différents problèmes que je voyais avec une nouvelle installation de cygwin, et la mise en évidence de la syntaxe est un bonus inattendu
crobicha
C'est de loin la meilleure réponse !!
Theodore R. Smith
1
où se trouve ce fichier? je cherchais cela dans / usr / share / mais je ne vois aucun répertoire appelé vim.
neo33
3

J'ai eu un problème avec les touches fléchées lors de l'essai de vim dans Windows 8.1 à l'aide de cygwin. Le problème était d'imprimer A / B / C / D tout en naviguant avec les touches fléchées en mode d'insertion. La solution qui a fonctionné pour moi est:

cp vimrc_example.vim ~/.vimrc

Fondamentalement, la commande ci-dessus copie le vimrc_example.vimfichier dans /home/<user name>/.vimrc.

noufal
la source
Cela m'a arrangé. J'ai eu le même problème avec la touche d'insertion et les flèches ne fonctionnant pas dans vim. C'était sur Windows 10.
Yanick Girouard
2

Êtes-vous sûr de ne pas utiliser vi au lieu de vim?

rfelsburg
la source
1

Essayez de cette façon:

  • première:

    cp /usr/share/vim/vim73/vimrc_example.vim ~/.vimrc
    
  • puis ajoutez cette ligne à votre ./.bashrcfichier:

    alias vi="vim"
    
binghenzq
la source
0

Non, les commandes sont exactement les mêmes. Il semble que vous ayez un problème de saisie. Soit votre clavier est foiré, soit votre terminal est en panne ou quelque chose du genre.

Caleb
la source
0

En fonction des caractéristiques de votre programme terminal, lorsque vous appuyez sur une touche curseur, il envoie une séquence de caractères commençant par la touche ESC. Par exemple, la touche Flèche vers le haut envoie les trois caractères ESC [A. Avec vim en mode d'entrée, appuyer sur une touche de curseur peut terminer le mode d'entrée lorsque ESC est vu, et les caractères suivants peuvent être interprétés comme des commandes vim. Puisqu'il quitte le mode de saisie, vous devez appuyer à nouveau sur i pour continuer d'insérer du texte. C'est peut-être ce qui vous arrive.

Vérifiez si votre terminal dispose d'options qui peuvent modifier l'émulation, telles que VT-100, VT-220 ou un paramètre qui spécifie ce qui est envoyé lorsque vous appuyez sur les touches Retour arrière ou Suppr. La modification de ces paramètres peut obtenir le comportement souhaité. Si vous utilisez la console de commande Windows native, vous n'obtiendrez probablement pas ces options.

Vous devrez peut-être éviter d'utiliser les touches de curseur en mode de saisie. Appuyez sur ESC pour quitter le mode de saisie, puis déplacez le curseur, puis à nouveau sur i pour plus de saisie. C'est ainsi que nous, les anciens, devions le faire avant que vim ne soit suffisamment intelligent pour interpréter les touches du curseur en mode d'entrée.

jongleur
la source