Add any shebang to the top of your script.
[!WARNING] This plugin is under construction, but the basic functionality works as intended.
Requirements:
v0.10numToStr/Comment.nvimIf you want to add instructions for your plugin manager of preference please raise a BLANK ISSUE.
Use any plugin manager of your choosing.
vim-plugPlug 'DrKJeff16/shebang.nvim'
Plug 'numToStr/Comment.nvim'
lazy.nvim{
'DrKJeff16/shebang.nvim',
dependencies = { 'numToStr/Comment.nvim' },
opts = {},
}
If you wish to lazy-load this plugin:
{
'DrKJeff16/shebang.nvim',
cmd = { -- Lazy-load by commands
'Shebang',
},
dependencies = { 'numToStr/Comment.nvim' },
opts = {},
}
pckr.nvimrequire('pckr').add({
{
'DrKJeff16/shebang.nvim',
requires = { 'numToStr/Comment.nvim' },
config = function()
require('shebang').setup()
end,
}
})
nvim-plugrequire('plug').add({
{
'DrKJeff16/shebang.nvim',
depends = { 'numToStr/Comment.nvim' },
config = function()
require('shebang').setup()
end,
},
})
paq-nvimlocal paq = require('paq')
paq({
'DrKJeff16/shebang.nvim',
'numToStr/Comment.nvim',
})
vim.packvim.pack.add({
{ src = 'https://github.com/DrKJeff16/shebang.nvim', name = 'shebang.nvim' },
})
The package can be found in the LuaRocks webpage.
luarocks install shebang.nvim # Global install
luarocks install --local shebang.nvim # Local install
require('shebang').setup({
---Whether to automatically make the target file an executable.
auto_make_executable = false,
---Whether to add a `/usr/bin/env` by default.
env = false,
---If `auto_make_executable` is enabled, indicates what file mode will be used.
---
---The string is 3 characters long, all must be numbers.
---
---See https://www.geeksforgeeks.org/linux-unix/chmod-command-linux/ to understand
---how `chmod` works.
file_mode = '755',
})
You can use the :Shebang command:
:Shebang bash " Will add `#!/usr/bin/bash` or `#!/usr/bin/env bash`, depending on whether `env` is enabled or not
:Shebang lua " Will add `#!/usr/bin/lua` or `#!/usr/bin/env lua`, depending on whether `env` is enabled or not
If you have env set to true, adding a bang ! to the command will invert that variable for
that command. For example:
" If `env` is `false`, the command will add `#!/usr/bin/env bash`.
" Otherwise, `#!/usr/bin/bash` will be added
:Shebang! bash
If you set file_mode to true in your setup, you can also set a custom file mode for your file
when passing mode=[0-7][0-7][0-7] to :Shebang. The parameter must be the first positional
to work.
:Shebang mode=700 bash " Sets a shebang to bash and the file will change permissions to `rwx------`
:Shebang mode=677 python " Sets a shebang to python and the file will change permissions to `rw-rwxrwx`
:Shebang python mode=644 " THIS WILL NOT WORK