Как мне заставить netrw (в Vim) использовать абсолютный путь? - PullRequest
1 голос
/ 08 марта 2012

У меня есть Vim73 в Windows, и я пытаюсь переместить файлы через файловый браузер.

Это выдает мне ошибку о том, что «перемещение» не является исполняемым (см. этопочта ).После некоторой отладки я обнаружил, что проблема была в моем vim73\autoload\netrw.vim файле.У меня работает команда перемещения, но есть еще одна проблема - очевидно, каталог, в котором я просматриваю :Ex, не является моим текущим рабочим каталогом, поэтому команда mv.exe (из UnxUtils) не может найти источник или назначение.

Вот строка из netrw, которая вызывает проблемы:

 let ret= system(g:netrw_localmovecmd." ".shellescape(fname)." ".shellescape(s:netrwmftgt))

Я пытался обернуть функции shellescape() в expand(), но, похоже, это не помогло.

Есть идеи, как я могу получить абсолютный путь для источника и пунктов назначения?

Ответы [ 2 ]

0 голосов
/ 01 августа 2012

Ну, как получается, когда ваш курсор находится на .. в списке файлов, он считает, что каталог.

Все, что мне действительно нужно было сделать, это переместить курсор в область баннера, прежде чем пытаться mt - или mt из родительского каталога.

Упс!

0 голосов
/ 09 марта 2012

Вместо того, чтобы пытаться найти абсолютный путь, подойдет ли для g:netrw_keepdir значение 0? Это не совсем то, что вы хотите (я подозреваю, что нужно взять vim CWD и применить его к netrw, а не наоборот), но если вы согласны с использованием netrw для управления вашим vim CWD, ваши команды могут просто работать как есть.

Редактировать: посмотрите на :help netrw-c подробное объяснение. Команды c в netrw может быть достаточно.

...