Если вы хотите открыть весь файл (что требуется), но показать только его часть в окне редактора, используйте сужение . Выберите часть буфера, с которой вы хотите работать, и нажмите C-x n n
( narrow-to-region
). Скажите «да», если вы получите запрос об отключенной команде. Нажмите C-x n w
( widen
), чтобы снова увидеть весь буфер. Если вы сохраните буфер, будет выбран весь файл: все данные все еще там, сужение только ограничивает то, что вы видите.
Если вы хотите просмотреть часть файла, вы можете вставить его в текущий буфер shell-command
с помощью префиксного аргумента ( M-1 M-!
); выполните соответствующую команду, чтобы извлечь нужные строки , например <huge.txt tail -n +57890001 | head -n 11
.
Существует также функция Lisp, insert-file-contents
которая может принимать диапазон байтов. Вы можете вызвать его с помощью M-:
( eval-expression
):
(insert-file-contents "huge.txt" nil 456789000 456791000)
Обратите внимание, что вы можете столкнуться с пределом целочисленного размера (зависит от версии и платформы, проверьте значение most-positive-fixnum
).
Теоретически было бы возможно написать режим Emacs, который загружает и сохраняет части файлов прозрачно по мере необходимости (хотя ограничение на целочисленные размеры сделает невозможным использование фактических смещений файлов на 32-битных машинах). Единственное усилие в этом направлении, о котором я знаю, это VLF (ссылка на GitHub здесь ).