Linux E325Средняя

Ошибка Vim E325: swap-файл уже существует — решения

Статья объясняет, как устранить ошибку swap-файла в Vim на Linux, включая причины, способы решения и профилактические меры.

Обновлено 17 февраля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Vim 7.4 и вышеLinux (Ubuntu, Debian, Fedora, CentOS)

E325: ATTENTION Found a swap file by the name ".файл.txt.swp" ...


Swap-файл — это временный файл, который Vim создаёт автоматически при открытии файла. Его основная цель — позволить восстановить изменения в случае аварийного завершения Vim (например, из-за сбоя системы или принудительного закрытия терминала). Ошибка E325 блокирует дальнейшее редактирование, пока вы не примете решение: восстановить сессию из swap-файла, удалить его или открыть файл только для чтения.

## Причины возникновения

Ошибка "swap-файл уже существует" может быть вызвана следующими причинами:

1. **Незавершённая предыдущая сессия Vim**: Если Vim был закрыт аварийно (например, через `kill` или крах системы), swap-файл остаётся на диске, и Vim при следующем открытии файла обнаруживает его.
2. **Активная сессия в другом процессе или терминале**: Файл уже редактируется в другом экземпляре Vim (возможно, в другом окне терминала или удалённо через SSH), и swap-файл создан этим процессом.
3. **Ручное создание или копирование swap-файла**: Swap-файл мог быть скопирован из другой директории или создан вручную по ошибке.
4. **Проблемы с правами доступа**: Vim не может удалить или проверить существующий swap-файл из-за недостаточных прав, что приводит к ложному обнаружению.
5. **Ошибка файловой системы**: В редких случаях повреждение метаданных файловой системы может привести к некорректному обнаружению swap-файлов.

## Способы решения

Для устранения ошибки E325 существует несколько методов, от простого удаления swap-файла до настройки Vim на использование отдельного каталога. Рекомендуется начинать с первого способа, так как он решает проблему в большинстве случаев.

### Способ 1: Удаление swap-файла (рекомендуется)

Этот способ подходит, когда вы уверены, что swap-файл оставлен от завершённой сессии или не содержит нужных изменений.

1. **Определите путь к swap-файлу**. При появлении ошибки Vim выводит полный путь к swap-файлу, например: `.файл.txt.swp`. Запомните этот путь или найдите файл вручную в директории редактируемого файла. Swap-файлы обычно начинаются с точки и заканчиваются на `.swp`.
2. **Проверьте активные сессии Vim**. Выполните команду в терминале, чтобы убедиться, что нет других процессов Vim, работающих с тем же файлом:
   ```bash
   ps aux | grep vim

Если в выводе есть процессы с именем вашего файла, завершите их корректно (например, через :qa в Vim) или принудительно (kill PID), только если уверены. 3. Удалите swap-файл. Используйте команду rm с указанным путём. Например:

rm .файл.txt.swp

Если возникает ошибка доступа, добавьте sudo (но осторожно, чтобы не удалить чужой swap-файл):

sudo rm .файл.txt.swp
  1. Откройте файл заново в Vim:
    vim файл.txt
    
    Ошибка E325 больше не должна появляться.

⚠️ Важно: Удаляйте swap-файлы только если абсолютно уверены, что они не нужны для восстановления изменений. В противном случае используйте Способ 3.

Способ 2: Открытие файла в режиме только для чтения

Если вы хотите просмотреть файл без риска потерять изменения из swap-файла, откройте его в режиме только для чтения, проигнорировав swap-файл.

  1. При появлении ошибки E325 нажмите клавишу O (заглавная O) в ответ на предложение Vim. Это откроет файл в режиме только для чтения (read-only).
  2. Альтернативно, запустите Vim с флагом -R:
    vim -R файл.txt
    
    Файл откроется, но вы не сможете вносить изменения. Чтобы редактировать, переключитесь в режим записи командой :w! (если есть права), но это не рекомендуется без проверки swap-файла.

Этот способ полезен для быстрого просмотра, но не для редактирования.

Способ 3: Восстановление из swap-файла

Если swap-файл содержит незавершённые изменения, которые вы хотите сохранить, восстановите сессию.

  1. При появлении ошибки E325 Vim предложит несколько опций. Нажмите R для восстановления (Recover).
  2. Vim загрузит содержимое из swap-файла. Проверьте, все ли изменения на месте.
  3. После восстановления немедленно сохраните файл командой :wq (записать и выйти). Это удалит swap-файл автоматически.
  4. Если восстановление не удалось (например, swap-файл повреждён), нажмите D для удаления swap-файла и откройте файл заново (см. Способ 1).

Способ 4: Изменение директории для swap-файлов

Чтобы избежать конфликтов с swap-файлами в рабочих директориях, настройте Vim на хранение всех swap-файлов в отдельной папке.

  1. Создайте каталог для swap-файлов, если его нет:
    mkdir -p ~/.vim/swap
    
  2. Откройте или создайте файл конфигурации Vim ~/.vimrc:
    vim ~/.vimrc
    
  3. Добавьте строку:
    set directory=~/.vim/swap//
    
    Двойной слэш // в конце позволяет Vim создавать поддиректории, если нужно, и избегать конфликтов имён.
  4. Сохраните и закройте ~/.vimrc. Теперь все новые swap-файлы будут создаваться в ~/.vim/swap, а не в директории редактируемого файла.
  5. Для существующих файлов, где уже есть swap-файл в рабочей директории, удалите старый swap-файл вручную (Способ 1).

Этот способ предотвращает появление ошибок E325 из-за накопления swap-файлов в проектах.

Способ 5: Отключение swap-файлов (не рекомендуется)

Если вы уверены, что не нуждаетесь в возможности восстановления (например, при редактировании временных конфигов), можно отключить создание swap-файлов.

  1. Откройте ~/.vimrc:
    vim ~/.vimrc
    
  2. Добавьте строку:
    set noswapfile
    
  3. Сохраните и закройте файл. При следующем запуске Vim swap-файлы создаваться не будут.

⚠️ Предупреждение: Отключение swap-файлов лишает вас защиты при сбоях. Все несохранённые изменения будут потеряны. Используйте только в специфических случаях.

Профилактика

Чтобы минимизировать возникновение ошибки E325 в будущем, следуйте этим практикам:

  • Корректно завершайте сессии Vim. Всегда используйте команды :wq (сохранить и выйти) или :qa (выйти из всех окон) вместо принудительного закрытия терминала.
  • Настройте отдельный каталог для swap-файлов (Способ 4). Это изолирует swap-файлы от рабочих файлов и упрощает управление.
  • Регулярно очищайте старые swap-файлы. Раз в некоторое время проверяйте каталог ~/.vim/swap и удаляйте файлы, связанные с завершёнными сессиями (например, по дате изменения).
  • Убедитесь в правах на запись. У пользователя должны быть права на запись в директорию редактируемого файла, иначе Vim не сможет корректно управлять swap-файлом.
  • Избегайте одновременного редактирования одного файла в нескольких экземплярах Vim без необходимости. Если нужно, используйте файловые блокировки или систему контроля версий (Git).

Часто задаваемые вопросы

Что такое swap-файл в Vim и зачем он нужен?
Почему Vim показывает ошибку 'Swap file already exists'?
Как безопасно удалить swap-файл, если я уверен, что он не нужен?
Можно ли полностью отключить создание swap-файлов в Vim?

Полезное

Проверьте наличие swap-файла
Убедитесь в отсутствии активных сессий
Удалите swap-файл
Откройте файл заново