7

Я пытаюсь настроить VIM в качестве внешнего редактора в удаленном файловом менеджере. Я хочу иметь возможность выбрать несколько элементов в папке, некоторые из которых являются каталогами, и передать их полные пути в командную строку vim.

Обновление: чтобы уточнить, что именно я хочу сделать. Я хочу иметь возможность выбрать несколько файлов на панели, например, так:

Снимок экрана дальнего менеджера

и открыли vim вот так:

"C:\Program Files\Vim\vim73\vim.exe"  c:\src\TalkMaterials "c:\src\abba 1.txt" "c:\src\abba 3.txt"

Это откроет все файлы в разных буферах.

2 ответа2

2

Я нашел решение, которое делает именно то, что вы просите. Но для этого требуется плагин FarNet и его модуль PowerShellFar:

http://code.google.com/p/farnet/

Им также необходимо установить .NET 2.0+ и Windows PowerShell 2.0. Это уже имеет место в Windows 7, но более ранние версии Windows не так удачливы. Кроме того, PowerShell 2.0 предназначен только для Windows XP SP 3 и выше (даже не SP 2).

Если вы еще не напуганы, то вот хитрость. В команде внешнего редактора мы вызываем PowerShellFar через префикс командной строки ">:"

>: & vim @(Get-FarPath -Selected) #

Вот и все. Это работает, я попробовал (не с vim, хотя у меня его нет). Это быстро, он не запускает PowerShell каждый раз; ядро загружается один раз при запуске Far.

Примечание. Последним символом «#» в команде является небольшое соглашение PowerShellFar: не добавлять в постоянную команду истории команд с символом «#» в конце. Эта команда предназначена для открытия внешнего редактора, она написана один раз, и мы не хотим, чтобы она загрязняла историю других команд, введенных вручную.

PS Я на всякий случай являюсь автором FarNet и PowerShellFar. Они с открытым исходным кодом, зрелые и надежные. Я бы порекомендовал их в любом случае, поскольку вы используете Far Manager и последняя версия Windows имеет все предпосылки для этих инструментов.

2

Самое близкое, что я могу прийти, это vim!& это создает следующую командную строку

"C:\Program Files\Vim\vim73\vim.exe"  TalkMaterials "abba 1.txt" "abba 3.txt"

Кажется, это работает просто отлично, но я бы хотел, чтобы полные пути передавались в vim в любом случае. Прежде чем принять мой собственный ответ, я хотел бы посмотреть, есть ли способ передать все полные пути в vim.

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