Vim затримка запису в tmux


1

Я помітив, що, використовуючи Vim у tmux під час сеансу SSH, коли я записую буфер на диск (тобто :w) періодично, тоді як Vim каже, що він написаний, файл залишається незмінним. Насправді, часто, коли це трапляється, Vim скаржиться на те, що файл вже змінився, оскільки, імовірно, .swpверсія файлу випереджає очікувану.

Щоб іноді подолати цю проблему, я зберігаю новий файл, виходжу, видаляю старий, а потім перейменую новий. Однак найчастіше афект залишається непоміченим, і я закінчую втрату роботи ... Це дуже засмучує!

Будь-яка ідея, що тут відбувається? Це трапляється лише в tmux, і я єдиний користувач, який приєднується до сеансу. Якщо я закрию сеанс tmux (а не відривати), Vim більше не скаржиться на файл swap, коли я знову входжу в систему.


Я можу послідовно повторювати це (або щонайменше подібне), виконуючи наступні дії:

  1. Почніть новий сеанс tmux
  2. vim foo.txt
  3. Напишіть щось і напишіть
  4. Від'єднати від сеансу tmux
  5. Повторно приєднайте до сесії tmux
  6. Покиньте vim
  7. vim foo.txt

Тепер Vim поскаржиться на існування файлу swap для foo.txt(наприклад, .foo.txt.swp), хоча у поточному каталозі його, схоже, немає.


Це звучить своєрідно. Коли я редагую файли Vim, наприклад, на віддаленому носії, що трапляється, це те, що інтерфейс Vim чекає, поки він може перевірити, чи файл був записаний. Я роблю це часто, і ніколи не відчував того, що ви описуєте. Я б сказав, що потрібна додаткова інформація, наприклад, файлова система на розділі, версії програм тощо, і, ймовірно, вона підпадає під звіт про помилку Vim / tmux / вгору за течією, якщо ви зможете її відтворити. Vim не повинен продовжувати, поки запис не буде перевірено, а tmux не повинен (не може?) Втручатися в будь-які подібні операції. tmux, мабуть, не винен.
Даніель Андерссон

Відповіді:


0

Запис файлу у vim не змінює жодних файлів. Старий файл замінюється на новий файл, залишаючи старий файл немодифікованим. Отже, якщо старий файл відкритий десь в іншому місці, ви не побачите жодних змін. Vim не призначений для зміни файлу, коли інша програма використовує його.


Тому я думаю, що може щось трапляється з приєднанням до мого сеансу tmux, який в кінцевому підсумку викликає кілька екземплярів Vim ... Дозвольте мені дослідити і побачити, чи зможу я послідовно повторювати проблему.
Xophmeister

Ознайомтесь з кроком для редагування
Xophmeister
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.