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

★★★★★

Последнее исправление: bryak (всего исправлений: 1)

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

execute 'cd' fnameescape(s:old_path)

xaizek ★★★★★
()

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

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

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

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

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

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

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

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