2

Я использую gvim в среде Windows, и у меня есть ClearCase для контроля версий.

Моя проблема в том, что пути Windows не чувствительны к регистру, однако, ClearCase обеспечивает чувствительность к регистру. Таким образом, при редактировании файла в gvim путь не обязательно указывается правильно (например, c:\WiNdOwS\Something.txt и C:\Windows\Something.txt), поэтому при попытке проверить файл на текущей рабочей файл в gvim через командную строку, ClearCase barfs и жалуется, что не может найти файл.

C:\WiNdOwS\Something.txt --> C:\Windows\Something.txt
   ^^^^^^^                      ^^^^^^^

Есть ли способ:

  1. сделать vim автозамену контура пути, или,
  2. сделать прозрачный футляр, не заботясь о корпусе

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

1 ответ1

0

Вы можете попробовать использовать expand('%:p'). Это должно дать вам текущее имя файла, расширенное до полного пути.

Из того, что я видел, он также возвращает строку с правильным регистром в MS Windows, но я сам не пробовал.

Если расширение не работает, вам, вероятно, придется обратиться к win32 API, чтобы получить правильный регистр для пути, что-то вроде GetFullPathName(). Я не уверен, возможно ли использовать это непосредственно из vim (без взлома исходного кода vim), но если вы заключите это в небольшую программу, вы, безусловно, сможете вызвать это из vim. Если ваш vim скомпилирован с поддержкой Python, вы можете использовать модуль Python ctypes для вызова функций win32.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .