numToStr / FTerm.nvim

:fire: No-nonsense floating terminal plugin for neovim :fire:
MIT License
721 stars 24 forks source link

Automatic CWD on every enter. #98

Open bogdan-the-great opened 7 months ago

bogdan-the-great commented 7 months ago

Hi, I tried setting up this terminal so it will automatically enter cwd on the current buffer when is opened, but cannot achieve it. Here' s what I tried:

-- this opens normally but doesn't change cwd
vim.api.nvim_create_user_command('FTermToggle', require('FTerm').toggle, { bang = true })

vim.keymap.set('n', '<C-\\>', '<CMD>FTermToggle<CR>')
vim.keymap.set('t', '<C-\\>', '<CMD>FTermToggle<CR>')
-- returns: `No such group or event: FTermToggle * :lcd%:p:h`
vim.cmd("autocmd! FTermToggle * :lcd%:p:h")
-- returns `Invalid 'event': 'FTermToggle'`
vim.api.nvim_create_autocmd("FTermToggle", {
     pattern = "*",
     callback = function()
     vim.cmd('cd ' .. vim.loop.cwd())
end,
})

And tried setting cmd option to:

cmd = os.getenv('SHELL') .. ' -c "cd ' .. vim.cmd(':lcd%:p:h')  .. '"'

But nothing works like it should. Also I have enabled autochdir but it doesn't do anything.

ilan-schemoul commented 2 weeks ago

I would love to use cwd of current buffer too. Did you manage to do it ?

bogdan-the-great commented 2 weeks ago

I don't use any terminal in Neovim right now, but when I deleted all stuff connected to it, my file manager (in Neovim) is now always on cwd of the current buffer (when previously sometimes it would not change).