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:
Galen Rowell 2021-08-14 01:59:17 +10:00 committed by GitHub
parent 3f44f0761a
commit 91c8736146
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 77 additions and 19 deletions

View file

@ -1,6 +1,10 @@
local M = { local M = {
ui = { ui = {
theme = "onedark" theme = "onedark",
hidden_statusline = { -- these are filetypes, not pattern matched
"NvimTree",
"toggleterm"
}
}, },
options = { options = {
permanent_undo = true, permanent_undo = true,
@ -86,13 +90,15 @@ local M = {
diffget_3 = "<leader>gl", diffget_3 = "<leader>gl",
git_blame = "<leader>gb" git_blame = "<leader>gb"
}, },
toggleterm = {
toggle_window = "<leader>w",
toggle_right = "<leader>v",
toggle_bot = "<leader>h",
},
misc = { misc = {
openTerm_right = "<C-l>", esc_Termmode = "jk",
openTerm_bottom = "<C-x>",
openTerm_currentBuf = "<C-t>t",
copywhole_file = "<C-a>", copywhole_file = "<C-a>",
toggle_linenr = "<leader>n", toggle_linenr = "<leader>n"
esc_Termmode = "jk"
} }
} }
} }

View file

@ -35,10 +35,6 @@ map("", "k", 'v:count ? "k" : "gk"', {expr = true})
map("", "<Down>", 'v:count ? "j" : "gj"', {expr = true}) map("", "<Down>", 'v:count ? "j" : "gj"', {expr = true})
map("", "<Up>", 'v:count ? "k" : "gk"', {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 -- copy whole file content
map("n", miscMap.copywhole_file, ":%y+<CR>", opt) map("n", miscMap.copywhole_file, ":%y+<CR>", opt)
@ -46,6 +42,25 @@ map("n", miscMap.copywhole_file, ":%y+<CR>", opt)
-- toggle numbers -- toggle numbers
map("n", miscMap.toggle_linenr, ":set nu!<CR>", opt) 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() M.truezen = function()
local m = user_map.truezen local m = user_map.truezen
@ -113,9 +128,6 @@ end
-- use ESC to turn off search highlighting -- use ESC to turn off search highlighting
map("n", "<Esc>", ":noh<CR>", opt) 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 -- Packer commands till because we are not loading it at startup
cmd("silent! command PackerCompile lua require 'pluginList' require('packer').compile()") cmd("silent! command PackerCompile lua require 'pluginList' require('packer').compile()")
cmd("silent! command PackerInstall lua require 'pluginList' require('packer').install()") cmd("silent! command PackerInstall lua require 'pluginList' require('packer').install()")

View file

@ -66,9 +66,9 @@ for _, plugin in pairs(disabled_built_ins) do
g["loaded_" .. plugin] = 1 g["loaded_" .. plugin] = 1
end end
-- Don't show status line on vim terminals -- Don't show status line on certain windows
vim.cmd [[ au TermOpen term://* setlocal nonumber laststatus=0 ]] vim.cmd [[ au TermOpen term://* setlocal nonumber norelativenumber ]]
vim.cmd [[ au TermClose term://* setlocal number laststatus=2 ]] 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 -- 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 ]] -- vim.cmd [[ au BufReadPost * if expand('%:p') !~# '\m/\.git/' && line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif ]]

View file

@ -199,6 +199,16 @@ return packer.startup(
} }
-- misc plugins -- misc plugins
use {
"akinsho/nvim-toggleterm.lua",
event = "BufWinEnter",
config = function()
require "plugins.toggleterm"
end,
setup = function()
require "mappings".toggleterm()
end
}
use { use {
"windwp/nvim-autopairs", "windwp/nvim-autopairs",
after = "nvim-compe", after = "nvim-compe",

View file

@ -93,6 +93,3 @@ g.nvim_tree_bindings = {
{key = "q", cb = tree_cb("close")}, {key = "q", cb = tree_cb("close")},
{key = "g?", cb = tree_cb("toggle_help")} {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]]

View 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",
}
}
}