Как установить vim в качестве внешнего редактора в FarManager и передать полный путь?

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

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

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

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

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

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

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 имеет все предпосылки для этих инструментов.

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

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

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

Другие вопросы по тегам