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

5035
Justin Dearing

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

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

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

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

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

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

7
Просто чтобы быть уверенным: что вы пытаетесь сделать: открыть один файл или несколько файлов выбранных файлов? `! @AFQ!` Относится к нескольким выбранным файлам, имена которых записываются во временный файл X. Имя X отправляется Vim в командной строке. Файл X содержит выбранные имена файлов, заключенные в кавычки (!), Я только что проверил это. Все выглядит правильно. Итак, что не так в вашем случае? Roman Kuzmin 13 лет назад 0
По крайней мере, приведите пример правильной командной строки (что вы хотите получить) и расскажите, что вы на самом деле получаете от Far. Roman Kuzmin 13 лет назад 1
Возможно, его следует повторно пометить к существующему тегу `far-manager`. Roman Kuzmin 13 лет назад 1
Несколько решений с использованием пакетных файлов предлагаются здесь: http://forum.farmanager.com/viewtopic.php?f=36&t=5851. Roman Kuzmin 13 лет назад 0

2 ответа на вопрос

2
Justin Dearing

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

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

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

Возможно, вам следует принять свой собственный ответ. Согласно Фарской помощи нет такой функции «специальных символов», как список полных путей. Попробуйте задать этот вопрос на Дальнем форуме, я могу что-то упустить. Спросите точно о списке полных путей нескольких выбранных файлов. Roman Kuzmin 13 лет назад 0
Я сделал запрос на добавление функций в mantis http://bugs.farmanager.com/view.php?id=1585, и я также спросил об этом на форуме. http://forum.farmanager.com/viewtopic.php?f=36&t=5851&p=71719#p71719 Justin Dearing 13 лет назад 0
2
Roman Kuzmin

Я нашел решение, которое делает именно то, что вы просите. Но для этого требуется плагин 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 имеет все предпосылки для этих инструментов.

Это действительно полезно. Он не будет работать на моем сервере Windows 2008, поскольку он не R2, но он работает на всех моих рабочих станциях. Justin Dearing 13 лет назад 0