Экранирование одиночных кавычек в путях файлов внутри архивов при использовании метасимволов Topic is solved

Столкнулись с проблемой в использовании Far? Здесь можно получить помощь.
Post Reply
lk0
Posts: 8
Joined: Mon 31 Oct, 2016 00:44
Has thanked: 3 times

Экранирование одиночных кавычек в путях файлов внутри архивов при использовании метасимволов

Post by lk0 » Tue 05 Jun, 2018 23:31

Решил использовать в кач-ве внешнего редактора (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 с предложением обновить архив".
Last edited by lk0 on Wed 06 Jun, 2018 03:14, edited 8 times in total.

Shmuel
Posts: 5437
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 19 times
Been thanked: 172 times

Экранирование одиночных кавычек в путях файлов внутри архивов при использовании метасимволов

Post by Shmuel » Wed 06 Jun, 2018 07:09

lk0 wrote:
Tue 05 Jun, 2018 23:31
Команда "C:\Program Files\Vim\vim80\gvim.exe" "!\!.!" успешно работала до тех пор, пока [...]
Попробуйте использовать "!.!" вместо "!\!.!". У меня работает (в том числе ваш пример, в том числе из архива).

2useven10
Posts: 3484
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 3 times
Been thanked: 130 times

Экранирование одиночных кавычек в путях файлов внутри архивов при использовании метасимволов

Post by 2useven10 » Wed 06 Jun, 2018 07:55

можно через батник запускать редактор и замену делать там.


lk0
Posts: 8
Joined: Mon 31 Oct, 2016 00:44
Has thanked: 3 times

Экранирование одиночных кавычек в путях файлов внутри архивов при использовании метасимволов

Post by lk0 » Wed 06 Jun, 2018 11:23

Shmuel wrote:
Wed 06 Jun, 2018 07:09
Попробуйте использовать "!.!" вместо "!\!.!". У меня работает (в том числе ваш пример, в том числе из архива).
К сожалению, в случае архива такая замена не работает, потому что, как оказалось, при использовании "!.!" открывается не файл внутри архива, а одноименный файл находящийся в той же папке, что и архив.
2useven10 wrote:
Wed 06 Jun, 2018 07:55
можно через батник запускать редактор и замену делать там.
Спасибо за идею.
DrKnS wrote:
Wed 06 Jun, 2018 10:43
gvim --literal "!\!.!"
Вот оно. И ведь знал же, что должно что-то такое быть с учетом vim-овской функциональности, но не нашел в хелпе. Спасибо!
Last edited by lk0 on Wed 06 Jun, 2018 12:02, edited 4 times in total.

Post Reply

Return to “Нужна помощь”