LINUX.ORG.RU

vim old path save

 ,


0

1

перед каким-то действием, которое приведет к смене path:

let s:old_path=expand('%:p:h')

После действия хочу восстановить оригинальный path

cd s:old_path

Итог:

E344: Can't find directory "s:old_path" in cdpath

Ничего в поисковике не нашлось, поэтому пишу тут. PS: при этом в old_path путь сохранился и я его нормально вывожу с помощью echom

★★★

:cd принимает путь, а не выражение, выражение надо раскрывать до передачи в :cd:

execute 'cd' fnameescape(s:old_path)

xaizek ★★★★★ ()

Через exec надо, через конкатенацию строк. Да, viml никчемное говно.

A1 ()
Ответ на: комментарий от salsa

такой вариант не прокатывает, если было несколько переходов

bryak ★★★ ()
Ответ на: комментарий от bryak

кэп? xaizek же уже тебе показал как нужно. еще :lcd может пригодиться, :cd - скорее для интерактива.

salsa ()
Последнее исправление: salsa (всего исправлений: 1)
Ответ на: комментарий от salsa

его вариант-то я и заюзал, поэтому и поставил статус темы «решено» ;)

bryak ★★★ ()
Последнее исправление: bryak (всего исправлений: 1)
Ответ на: комментарий от bryak

Кстати, в последних версиях vim, можно заюзать модификатор :S.

salsa ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.