Vim: используйте globpath для получения разных типов файлов
У меня есть три файла в моем Desktop
: foo.py
, foo.tex
а также foo.pdf
, Я хочу использовать globpath()
функция для получения полного пути python
а также tex
файлы, но не pdf
файл. Я знаю, что могу сделать
:echo globpath('C:\Users\Pedro\Desktop', 'foo.tex')
или же
:echo globpath('C:\Users\Pedro\Desktop', 'foo.py')
чтобы получить полный путь для tex или python. Как получить полный путь к обоим файлам? то есть я ищу что-то вроде
:echo globpath('C:\Users\Pedro\Desktop', 'foo.(tex|py)')
1 ответ
glob[path]()
функции поддерживают только ограниченный набор :help wildcards
, Вы не можете делать чередование, как с регулярными выражениями. Вместо этого просто вызовите функцию несколько раз и объедините результаты:
:echo globpath('C:\Users\Pedro\Desktop', 'foo.tex') . globpath('C:\Users\Pedro\Desktop', 'foo.py')
Последние версии Vim поддерживают , {list}
флаг, с помощью которого вы можете сделать globpath()
возвращать списки (которые объединяются с +
вместо .
).
Обратите внимание, что ваш пример без реальных подстановочных знаков глуп; если вам просто нужно преобразовать спецификацию файла в абсолютную форму, лучше использовать fnamemodify(path, ':p')
,