Решил использовать в кач-ве внешнего редактора (F9 -> Параметры -> Настройки -> Команда редактирования) gvim.
Команда "C:\Program Files\Vim\vim80\gvim.exe" "!\!.!" успешно работала до тех пор, пока не столкнулся с файлом, начинающимся с одинарной кавычки: при попытке открыть такой файл, например, C:\Temp\'file.txt, gvim пытается открыть C:\Temp'file.txt, так как видит в \' её экранирование.
Исправил это, заменив предыдущую команду на
lua:win.ShellExecute(nil,nil, [[C:\Program Files\Vim\vim80\gvim.exe]], string.gsub([[!\!.!]], "'", "\\'")). Вне архивов она работает, но при попытке редактирования файла внутри архива gvim хоть и открывает временный файл с правильным именем, файл этот ок-ся пустым, так как, похоже, удаляется Far-ом до того, как gvim успевает его открыть.
Подскажите, пожалуйста, как решить/где поискать информацию о решении этой проблемы? Очень хотелось бы, конечно, сохранить функционал "открыл файл внутри архива -> отредактировал его в gvim -> сохранил -> вышел из gvim -> получил диалоговое окно arclite с предложением обновить архив".
Экранирование одиночных кавычек в путях файлов внутри архивов при использовании метасимволов Topic is solved
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Экранирование одиночных кавычек в путях файлов внутри архивов при использовании метасимволов
Попробуйте использовать "!.!" вместо "!\!.!". У меня работает (в том числе ваш пример, в том числе из архива).
Экранирование одиночных кавычек в путях файлов внутри архивов при использовании метасимволов
К сожалению, в случае архива такая замена не работает, потому что, как оказалось, при использовании "!.!" открывается не файл внутри архива, а одноименный файл находящийся в той же папке, что и архив.
Спасибо за идею.
Вот оно. И ведь знал же, что должно что-то такое быть с учетом vim-овской функциональности, но не нашел в хелпе. Спасибо!
Last edited by lk0 on Wed 06 Jun, 2018 12:02, edited 4 times in total.