сегодня в 19:32
Этот простой скриптик может пригодиться когда хочется, ничего специально не настраивая, запустить проект на выполнение прям из Vim по клавише F5, когда открыт файл из любой поддиректории проекта.
В .vimrc добавляем map:
Теперь по плавише F5 будет запускаться shell-скрипт me_run, которому передается полный путь директории редактируемого в данный момент файла (%:p:h). Скрипт ищет в этой директории файл runme. Если таковой не найден, переходит на директорию выше и ищет снова, и так далее. Найдя файл runme (файл запуска проекта), он выполняется. По завершении vim даёт посмотреть нам результат выполнения и вернуться в редактор, нажав клавишу ENTER.
Вероятно, описанная проблема не является проблемой для пользователей разного рода IDE. Вероятно, и в vim есть простой способ сделать это, о котором я не знаю. Буду признателен, если читатель в комментариях поделится как он решает данную задачу в своих проектах.
Спасибо за внимание.
Принцип работы
В .vimrc добавляем map:
nnoremap <F5> <ESC>:w<ENTER>:!me_run %:p:h<ENTER>
Теперь по плавише F5 будет запускаться shell-скрипт me_run, которому передается полный путь директории редактируемого в данный момент файла (%:p:h). Скрипт ищет в этой директории файл runme. Если таковой не найден, переходит на директорию выше и ищет снова, и так далее. Найдя файл runme (файл запуска проекта), он выполняется. По завершении vim даёт посмотреть нам результат выполнения и вернуться в редактор, нажав клавишу ENTER.
Содержимое me_run
#!/bin/bash
curPath=$1
cd $curPath
while [ "$curPath" != "/" ]; do
if [ -e runme ] && [ ! -d runme ] && [ -x runme ]; then
./runme
exit
fi
cd ..
curPath=`pwd`
done
Заключение
Вероятно, описанная проблема не является проблемой для пользователей разного рода IDE. Вероятно, и в vim есть простой способ сделать это, о котором я не знаю. Буду признателен, если читатель в комментариях поделится как он решает данную задачу в своих проектах.
Спасибо за внимание.
Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html
Комментариев нет:
Отправить комментарий