Как открыть файл в существующем экземпляре Vim вместо получения предупреждения «существующий файл подкачки» - PullRequest
7 голосов
/ 05 декабря 2009

Я хочу, чтобы Vim повторно использовал существующий в данный момент экземпляр, если он существует. Обычно Vim выдает предупреждение о существующем файле подкачки. В частности, это для переключения между Vim и Visual Studio. (Я знаю о ViEmu, но он не работает с Visual Studio Express.)

1 Ответ

6 голосов
/ 08 декабря 2009

Решение автора:

Решение: В стандартном дистрибутиве Vim есть плагин: runtime / macros / editexisting.vim. Просто скопируйте его в каталог плагинов Vim.

Дополнительные сведения об интеграции Visual Studio: Выполните эти шаги , чтобы добавить Vim в качестве внешнего инструмента и назначить удобное сочетание клавиш:

  • Название: Vim
  • Команда: C: \ Program Files \ Vim \ vim70 \ gvim.exe
  • Аргументы: + $ (CurLine) "$ (ItemPath)"
  • Начальный каталог: $ (SolutionDir)

Примечание. Я использую немного другие настройки, поэтому курсор устанавливается на столбец из VS и центрируется в Vim:

  • Аргументы: + "курсор вызова ($ (CurLine), $ (CurCol))" + "normal zz" $ (ItemPath)
  • Исходный каталог: $ (FileDir)

Затем установите VS на , чтобы автоматически загружать изменения, сделанные из Vim :

Чтобы эффективно использовать два вместе и убедитесь, что .NET не пожаловаться на изменение файлов, выберите Инструменты> Параметры> Среда> Документы и обеспечить эти два варианта проверены: определить, когда файл изменился за пределами окружающей среды. Автозагрузка изменений (если не в данный момент модифицирован внутри среды).

Наконец, установите Vim на автоматически загружать изменения, сделанные из VS :

: установить авточитание


Мое решение

Аналогично, но немного отличается: сохраните это в файле .settings и импортируйте. Использует --servername и --remote-call для повторного использования существующего Vim, адаптированного для текущего решения.

<UserSettings>
    <ApplicationIdentity version="8.0"/>
    <ToolsOptions/>
    <Category name="Environment_Group" RegisteredName="Environment_Group">
        <Category name="Environment_ExternalTools" Category="{E8FAE9E8-FBA2-4474-B134-AB0FFCFB291D}" Package="{DA9FB551-C724-11d0-AE1F-00A0C90FFFC3}" RegisteredName="Environment_ExternalTools" PackageName="Visual Studio Environment Package">
            <PropertyValue name="edit with v&amp;im.Command">gvim.exe</PropertyValue>
            <PropertyValue name="edit with v&amp;im.Arguments">--servername $(SolutionFileName) --remote-silent +"call cursor($(CurLine),$(CurCol))" "$(ItemFileName)$(ItemExt)"</PropertyValue>
            <PropertyValue name="edit with v&amp;im.InitialDirectory">$(ItemDir)</PropertyValue>
            <PropertyValue name="edit with v&amp;im.SourceKeyName"/>
            <PropertyValue name="edit with v&amp;im.UseOutputWindow">false</PropertyValue>
            <PropertyValue name="edit with v&amp;im.PromptForArguments">false</PropertyValue>
            <PropertyValue name="edit with v&amp;im.CloseOnExit">false</PropertyValue>
            <PropertyValue name="edit with v&amp;im.IsGUIapp">true</PropertyValue>
            <PropertyValue name="edit with v&amp;im.SaveAllDocs">true</PropertyValue>
            <PropertyValue name="edit with v&amp;im.UseTaskList">false</PropertyValue>
            <PropertyValue name="edit with v&amp;im.Unicode">false</PropertyValue>
            <PropertyValue name="edit with v&amp;im.Package">{00000000-0000-0000-0000-000000000000}</PropertyValue>
            <PropertyValue name="edit with v&amp;im.NameID">0</PropertyValue>
        </Category>
    </Category>
</UserSettings>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...