Отличный инструмент direnv, хранит переменные, которые нужны в конкретном проекте/каталоге, позволяет не грузить их прямо в .bashrc
/.profile
и не требует (почти) дополнительных телодвижений, чтобы переменные грузились.
«В смысле — почти?» А в том смысле, что когда мы отредактировали свой .envrc
, он обязательно нам напомнит «файл поменялся! Вы ему доверяете?» И всё бы хорошо, всё бы правильно, если редактировал файл кто-то другой, или пришёл он из другого репозитория, и мы понятия не имеем, что в нём лежит, ок. Но что делать, если мы сами часто редактируем этот файл и нас уже начинает задалбывать вежливое напоминание?
На этот самый случай я написал автокоманду для neovim
(я пользуюсь этим редактором и мне вполне себе заходит):
-- autocmds/direnv.lua
local au = require("kaineer.autocmd").au
au("DirEnv", function(cmd)
cmd("BufWritePost", {
pattern = ".envrc",
callback = function ()
-- Указываем вторым параметром direnv полный
-- путь к текущему каталогу
vim.cmd(":!direnv allow " .. vim.fn.expand("%:p:h"))
end
})
end)
Обвязку kaineer.autocmd
можно посмотреть здесь
Top comments (0)