LargeFile - Редактирование больших файлов быстро плагин обнаруживает большие файлы и твик много вариантов, чтобы приспособить это лучше. Он также 'undolevels'
отключается, чтобы избежать такого большого увеличения памяти, которое вы видели.
Не загружайте файл отмены, если он слишком велик в Vim 7.3+
Я просто скопировал огромное количество текста (я думаю, порядка миллионов строк) в регистр Vim, открыл новый файл, вставил, а затем приступил к редактированию новой копии отрывка. Вим был достаточно быстр на протяжении всего процесса; это была хорошая демонстрация силы Вима.
.... кроме того, что я использую постоянную функцию отмены. Поэтому, потратив немного времени на редактирование, я заметил, что мой сеанс Vim занимал огромный объем памяти (примерно в 3 раза больше, чем мой сеанс Chrome, что по стандартам Vim значительно). Сначала я подумал, что это потому, что моя массивная копия все еще была в одном из регистров, но когда я приступил к редактированию .viminfo
, самое длинное значение регистра было около 20 строк. Я пытался перезапустить Vim несколько раз, но каждый раз, когда он загружал этот конкретный файл, он зависал недопустимо (опять же, по стандартам Vim).
... Итак, я понял, что мне нужно удалить файл отмены для проблемного файла. Это решило мою непосредственную проблему, но я хотел бы избежать встречи с ней снова. Поэтому я хотел бы использовать autocmd в моем VimRC, который будет делать следующее:
- После загрузки файла проверьте размер соответствующего файла отмены (если он существует)
- Если файл отмены больше
x Mb
(или любого другого размера), выполните одно из следующих действий:- Удали это
- Сохраняя только самые последние изменения, удаляйте изменения до тех пор, пока размер файла не станет приемлемым (это будет предпочтительным поведением)
Есть мысли о том, как это сделать?
2 ответа на вопрос
От undo-persistence
:
The 'undofile' option is checked after writing a file, before the BufWritePost autocommands. If you want to control what files to write undo information for, you can use a BufWritePre autocommand: > au BufWritePre /tmp/* setlocal noundofile
Я собирался предложить вам решить, прежде чем записывать файл отмены, насколько большим он будет, а затем решить, устанавливать ли 'undofile'
. Вероятно, проще позволить vim записать файл, а затем использовать BufWritePost
автокоманду для проверки размера вновь записанного файла и, если он слишком большой, удалить его.
Похожие вопросы
-
13
Какие функции Vim вы используете?
-
8
Удалить расширенную "вкладку" в Vim одним нажатием клавиши?
-
2
После того, как вы включили модем на своем iPhone, как вы можете отменить это?
-
-
1
Невозможно понять, где зачем требовать обнаружения ASCII и HEX в строке состояния Vim
-
3
Vim: Как обрабатывать файлы Unicode с текстом на нескольких (более двух) языках?
-
9
Аддоны Firefox, чтобы пойти с Vimperator
-
3
Чтобы повторить PWD в Vim's: -режим к документу
-
1
В любом случае vim не считает специальные символы словами?
-
8
Vimperator копия / вставка
-
2
Чтобы иметь цвета в Vim LaTeX-файлах, как в Gvim