13 votes

GVim fonctionne très lentement lors de l'édition de fichiers sur un partage Windows

Sur mon ordinateur au travail, chaque fois que j'ouvre un fichier situé sur un partage réseau, GVim devient complètement inutilisable. Faire défiler le document peut prendre 15 secondes pour passer une "page". Même l'utilisation des touches de déplacement pour passer d'un mot à l'autre peut prendre 2 à 3 secondes. Il semble que ce comportement soit nouveau, mais je ne me souviens pas d'avoir modifié quoi que ce soit qui puisse en être la cause. J'ai l'impression que Vim n'accède pas réellement à un fichier sauf lors de l'ouverture et de la sauvegarde. Est-ce exact ?

11voto

jamessan Points 16420

Plusieurs facteurs peuvent influer sur cette situation.

Tout d'abord, assurez-vous que vous avez configuré Vim pour qu'il préfère stocker le fichier d'échange localement. Si votre $HOME est sur un disque local, j'ai tendance à le mettre dans mon vimrc (qui sera soit à l'adresse $HOME\_vimrc o $VIM\_vimrc ). Assurez-vous de créer ce répertoire, sinon Vim continuera à utiliser l'un des autres répertoires de la liste.

set directory^=$HOME/tmp

Cette opération fait précéder le $HOME/tmp au début de la liste que Vim vérifie pour savoir où placer les fichiers d'échange.

Ensuite, faites de même pour le fichier de sauvegarde créé par Vim. Même situation que ci-dessus, mais l'option que vous allez changer est backupdir au lieu de directory .

Troisièmement, veillez à désactiver le plugin matchparen. Ce plugin est nouveau dans Vim 7, il se peut donc que vous soyez habitué à utiliser une version plus ancienne de Vim. Il provoque un balayage fréquent du fichier à la recherche de parens, d'accolades, etc. qui peut ralentir considérablement Vim lorsque le fichier se trouve sur un réseau partagé. Encore une fois, ceci devrait être placé dans votre vimrc.

let g:loaded_matchparen = 1

Si vous souhaitez désactiver le plugin temporairement, vous pouvez utiliser la commande :NoMatchParen et ensuite :DoMatchParen pour le réactiver plus tard dans cette session Vim.

Enfin, si aucune de ces solutions ne vous aide, vous pouvez toujours copier le fichier localement et le modifier.

5voto

David Anderson Points 56

Le fichier d'échange n'a rien à voir avec cela. J'ai mon fichier d'échange en local et j'ai toujours le problème. J'utilise Process Monitor de SysInternals.com et il a révélé un mauvais comportement lors de la tentative d'ouverture de " \server\TestTool\foo\ReadMe.TXT "

Il tente d'abord de créer un fichier (c'est-à-dire d'ouvrir un répertoire) sur " \serve\ ". Remarquez que le dernier caractère est manquant. Cela entraînera une interruption de 4 secondes avec le message "OBJECT PATH INVALID".

Il essaie ensuite de créer un fichier sur " \server\TestToo\ ". Le nom du serveur est correct, mais la dernière lettre de "TestTool" est coupée. Encore une fois, un délai de 3 secondes avec "MAUVAIS NOM DE RÉSEAU".

Finalement, il y parvient et appelle CreateFile sur " \server\TestTool\ "ce qui fonctionne immédiatement. Ensuite, CreateFile sur " \server\TestTool\foo "ce qui fonctionne immédiatement. Ensuite, CreateFile sur " \server\TestTool\foo\ReadMe.TXT "qui fonctionne immédiatement.

Pourquoi essaie-t-il de donner de mauvais noms au serveur et au répertoire racine ? Quelle est cette folie ?

3voto

Joon Points 41

J'ai résolu ce problème après avoir forcé le chemin d'accès à HOME dans les paramètres avancés du système. (Votre chemin d'accès actuel est un répertoire réseau).

Panneau de configuration > Tous les éléments du panneau de configuration > Système > Paramètres système avancés > Variables d'environnement

Appuyez sur "Nouveau..."

Nom de la variable : ACCUEIL

Valeur variable : c:\Home\ **<-- Type your home directory**

2voto

Bruno Gomes Points 885

Pour faire suite à la réponse de jamessan : pour désactiver automatiquement le plugin lorsque vous éditez des fichiers sur un partage, mettez cette ligne dans votre _vimrc

autocmd BufReadPre //* :NoMatchParen

1voto

Antony Hatchkins Points 5831

Vous pouvez envisager d'installer Grand fichier plugin. Il désactive quelques fonctionnalités ayant un impact sur les performances.

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