WIP - Added toggleterm, based upon curtanips work (#237)
* Added toggleterm, based upon curtanips work Also other various term fixes & changed term mappings * new NvChad config to hide statusline by filetype
This commit is contained in:
parent
3f44f0761a
commit
91c8736146
6 changed files with 77 additions and 19 deletions
|
@ -1,6 +1,10 @@
|
|||
local M = {
|
||||
ui = {
|
||||
theme = "onedark"
|
||||
theme = "onedark",
|
||||
hidden_statusline = { -- these are filetypes, not pattern matched
|
||||
"NvimTree",
|
||||
"toggleterm"
|
||||
}
|
||||
},
|
||||
options = {
|
||||
permanent_undo = true,
|
||||
|
@ -86,13 +90,15 @@ local M = {
|
|||
diffget_3 = "<leader>gl",
|
||||
git_blame = "<leader>gb"
|
||||
},
|
||||
toggleterm = {
|
||||
toggle_window = "<leader>w",
|
||||
toggle_right = "<leader>v",
|
||||
toggle_bot = "<leader>h",
|
||||
},
|
||||
misc = {
|
||||
openTerm_right = "<C-l>",
|
||||
openTerm_bottom = "<C-x>",
|
||||
openTerm_currentBuf = "<C-t>t",
|
||||
esc_Termmode = "jk",
|
||||
copywhole_file = "<C-a>",
|
||||
toggle_linenr = "<leader>n",
|
||||
esc_Termmode = "jk"
|
||||
toggle_linenr = "<leader>n"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,10 +35,6 @@ map("", "k", 'v:count ? "k" : "gk"', {expr = true})
|
|||
map("", "<Down>", 'v:count ? "j" : "gj"', {expr = true})
|
||||
map("", "<Up>", 'v:count ? "k" : "gk"', {expr = true})
|
||||
|
||||
-- OPEN TERMINALS --
|
||||
map("n", miscMap.openTerm_right, ":vnew +terminal | setlocal nobuflisted <CR>", opt) -- term over right
|
||||
map("n", miscMap.openTerm_bottom, ":10new +terminal | setlocal nobuflisted <CR>", opt) -- term bottom
|
||||
map("n", miscMap.openTerm_currentBuf, ":terminal <CR>", opt) -- term buffer
|
||||
|
||||
-- copy whole file content
|
||||
map("n", miscMap.copywhole_file, ":%y+<CR>", opt)
|
||||
|
@ -46,6 +42,25 @@ map("n", miscMap.copywhole_file, ":%y+<CR>", opt)
|
|||
-- toggle numbers
|
||||
map("n", miscMap.toggle_linenr, ":set nu!<CR>", opt)
|
||||
|
||||
-- open a new buffer as a Terminal
|
||||
-- get out of terminal with jk
|
||||
map("t", miscMap.esc_Termmode, "<C-\\><C-n>", opt)
|
||||
|
||||
|
||||
M.toggleterm = function()
|
||||
local m = user_map.toggleterm
|
||||
|
||||
-- Open terminals
|
||||
map("n", m.toggle_window, ":execute v:count . 'ToggleTerm direction=window' <CR>", opt)
|
||||
map("n", m.toggle_right, ":execute v:count . 'ToggleTerm direction=vertical' <CR>", opt)
|
||||
map("n", m.toggle_bot, ":execute v:count . 'ToggleTerm direction=horizontal' <CR>", opt)
|
||||
|
||||
-- 'Un' toggle a term from within terminal edit mode
|
||||
map("t", m.toggle_window, "<C-\\><C-n> :ToggleTerm <CR>", opt)
|
||||
map("t", m.toggle_right, "<C-\\><C-n> :ToggleTerm <CR>", opt)
|
||||
map("t", m.toggle_bot, "<C-\\><C-n> :ToggleTerm <CR>", opt)
|
||||
end
|
||||
|
||||
M.truezen = function()
|
||||
local m = user_map.truezen
|
||||
|
||||
|
@ -113,9 +128,6 @@ end
|
|||
-- use ESC to turn off search highlighting
|
||||
map("n", "<Esc>", ":noh<CR>", opt)
|
||||
|
||||
-- get out of terminal with jk
|
||||
map("t", miscMap.esc_Termmode, "<C-\\><C-n>", opt)
|
||||
|
||||
-- Packer commands till because we are not loading it at startup
|
||||
cmd("silent! command PackerCompile lua require 'pluginList' require('packer').compile()")
|
||||
cmd("silent! command PackerInstall lua require 'pluginList' require('packer').install()")
|
||||
|
|
|
@ -66,9 +66,9 @@ for _, plugin in pairs(disabled_built_ins) do
|
|||
g["loaded_" .. plugin] = 1
|
||||
end
|
||||
|
||||
-- Don't show status line on vim terminals
|
||||
vim.cmd [[ au TermOpen term://* setlocal nonumber laststatus=0 ]]
|
||||
vim.cmd [[ au TermClose term://* setlocal number laststatus=2 ]]
|
||||
-- Don't show status line on certain windows
|
||||
vim.cmd [[ au TermOpen term://* setlocal nonumber norelativenumber ]]
|
||||
vim.cmd [[let hidden_statusline = luaeval('require("chadrc").ui.hidden_statusline') | autocmd BufEnter,BufWinEnter,WinEnter,CmdwinEnter,TermEnter * nested if index(hidden_statusline, &ft) >= 0 | set laststatus=0 | else | set laststatus=2 | endif]]
|
||||
|
||||
-- Open a file from its last left off position
|
||||
-- vim.cmd [[ au BufReadPost * if expand('%:p') !~# '\m/\.git/' && line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif ]]
|
||||
|
|
|
@ -199,6 +199,16 @@ return packer.startup(
|
|||
}
|
||||
|
||||
-- misc plugins
|
||||
use {
|
||||
"akinsho/nvim-toggleterm.lua",
|
||||
event = "BufWinEnter",
|
||||
config = function()
|
||||
require "plugins.toggleterm"
|
||||
end,
|
||||
setup = function()
|
||||
require "mappings".toggleterm()
|
||||
end
|
||||
}
|
||||
use {
|
||||
"windwp/nvim-autopairs",
|
||||
after = "nvim-compe",
|
||||
|
|
|
@ -93,6 +93,3 @@ g.nvim_tree_bindings = {
|
|||
{key = "q", cb = tree_cb("close")},
|
||||
{key = "g?", cb = tree_cb("toggle_help")}
|
||||
}
|
||||
|
||||
-- hide statusline when nvim tree is opened
|
||||
vim.cmd [[au BufEnter,BufWinEnter,WinEnter,CmdwinEnter * if bufname('%') == "NvimTree" | set laststatus=0 | else | set laststatus=2 | endif]]
|
||||
|
|
33
lua/plugins/toggleterm.lua
Normal file
33
lua/plugins/toggleterm.lua
Normal file
|
@ -0,0 +1,33 @@
|
|||
local present, toggleterm = pcall(require, "toggleterm")
|
||||
if not present then
|
||||
return
|
||||
end
|
||||
|
||||
toggleterm.setup {
|
||||
-- size can be a number or function which is passed the current terminal
|
||||
size = function(term)
|
||||
if term.direction == "horizontal" then
|
||||
return 15
|
||||
elseif term.direction == "vertical" then
|
||||
return vim.o.columns * 0.4
|
||||
end
|
||||
end,
|
||||
-- open_mapping = [[<C-\>]], -- mapping set in mappings.lua
|
||||
hide_numbers = true, -- hide the number column in toggleterm buffers
|
||||
shade_terminals = false,
|
||||
start_in_insert = true,
|
||||
-- insert_mappings = true, -- see 'open_mapping', not set on purpose
|
||||
-- whether or not the open mapping applies in insert mode
|
||||
persist_size = true,
|
||||
direction = 'vertical',
|
||||
close_on_exit = true, -- close the terminal window when the process exits
|
||||
-- This field is only relevant if direction is set to 'float'
|
||||
float_opts = {
|
||||
border = 'single',
|
||||
winblend = 0,
|
||||
highlights = {
|
||||
border = "Normal",
|
||||
background = "Normal",
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue