На моем компьютере на работе любое время я открываю файл, расположенный на сетевом ресурсе, GVim становится абсолютно неприменимым. Просмотр документа может занять 15 секунд для движения одной "страницы". Даже использование ключей перемещения для движения от одного слова до другого может занять 2 - 3 секунды. Это, кажется, новое поведение, но ни за что в жизни я не могу помнить изменять что-либо, что вызвало бы его. У меня создается впечатление, что Vim на самом деле не получает доступ к файлу за исключением открытого и на сохранении. Это правильно?
Файл подкачки не имеет к этому никакого отношения. У меня локальный файл подкачки, но проблема все еще не решена. Я использую Process Monitor от SysInternals.com и обнаружил плохое поведение при попытке открыть "\ server \ TestTool \ foo \ ReadMe.TXT"
. Сначала он пытается создать файл CreateFile (также известный как Directory open) на "\ serve \". Обратите внимание, что последний символ отсутствует. Это приведет к истечении 4 секунд с сообщением «OBJECT PATH INVALID».
Затем он пытается CreateFile на "\ server \ TestToo \". Имя сервера правильное, последняя буква "TestTool" обрезается. И снова 3-секундный тайм-аут с "ПЛОХОЕ НАЗВАНИЕ СЕТИ".
Наконец он понимает это и вызывает CreateFile на "\ server \ TestTool \", который сразу же работает. Затем CreateFile на "\ server \ TestTool \ foo", который сразу работает. Затем CreateFile на "\ server \ TestTool \ foo \ ReadMe.TXT", который сразу работает.
ПОЧЕМУ он пытается использовать неправильные имена для сервера и корневого каталога ??? Что это за безумие?
Вы можете рассмотреть возможность установки Bearfile плагин. Он отключает пару функций, влияющих на производительность.
Как насчет макро-трюки?
Испытали код ниже
@interface MyClass : NSObject {
#ifdef MYCLASS_CONTENT
MYCLASS_CONTENT // Nothing revealed here
#endif
}
@property (nonatomic, retain) NSString *name;
@property (nonatomic, assign) int extra;
- (id)initWithString:(NSString*)str;
@end
// Define the required Class content here before the #import "MyClass.h"
#define MYCLASS_CONTENT \
NSString *_name; \
int _extra; \
int _hiddenThing;
#import "MyClass.h"
@implementation MyClass
@synthesize name=_name;
@synthesize extra=_extra;
- (id)initWithString:(NSString*)str
{
self = [super init];
if (self) {
self.name = str;
self.extra = 17;
_hiddenThing = 19;
}
return self;
}
- (void)dealloc
{
[_name release];
[super dealloc];
}
@end
-121--4538104- Существует несколько факторов, которые могут повлиять на это.
Во-первых, убедитесь, что у вас есть настройка VIM, чтобы предпочтить хранение локально. Если ваш $ Home
находится на местном диске, я склонен ставить это в мой VIMRC (который будет либо в $ Home \ _VIMRC
или $ vim \ _vimrc
). Убедитесь, что вы создаете этот каталог, в противном случае VIM будет продолжать использовать один из других каталогов в списке.
set directory^=$HOME/tmp
Это добавляет каталог $ HOME / TMP
к началу списка, который VIM проверяет, где размещать SwapFiles.
Во-вторых, сделайте то же самое для файла резервного копирования, который VIM создает. Такая же ситуация, как указано выше, но вариант, который вы будете изменяться, является Backupdir
вместо каталога
.
В-третьих, убедитесь, что вы отключите плагин MatchParen. Этот плагин новый для Vim 7, поэтому вы можете использовать для использования более старой версии VIM. Это вызывает частую сканирование файла для сопоставления Parens, брекетов и т. Д., Что может резко медленно поборовывать, когда файл находится в доме сети. Опять же, это должно идти в вашем Vimrc.
let g:loaded_matchparen = 1
Если вы хотите временно отключить плагин, вы можете использовать команду : NOMATCHPAREN
, а затем : DomautchParen
, чтобы повторно включить его позже в этом сеансе VIM.
Наконец, если ни одна из этих помощи вы всегда можете всегда скопировать файл локально и редактировать его.
Продолжение ответа jamessan: чтобы автоматически отключать плагин при редактировании файлов в общей папке, введите эту строку в себя _vimrc
autocmd BufReadPre //* :NoMatchParen