Perfected NeoVim
This commit is contained in:
@@ -32,6 +32,7 @@ require('feline').setup {
|
||||
force_inactive = {
|
||||
filetypes = {
|
||||
'^neo\\-tree$',
|
||||
'^aerial$',
|
||||
'^packer$',
|
||||
'^startify$',
|
||||
'^fugitive$',
|
||||
@@ -55,7 +56,13 @@ require('lspconfig/settings')
|
||||
|
||||
require('window-picker').setup({
|
||||
autoselect_one = true,
|
||||
selection_chars = 'ABCDEFGHIJKLMNOP'
|
||||
selection_chars = 'ABCDEFGHIJKLMNOP',
|
||||
filter_rules = {
|
||||
bo = {
|
||||
filetype = { 'NvimTree', "neo-tree", "notify", 'aerial' },
|
||||
buftype = { 'terminal' }
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
vim.cmd([[ let g:neo_tree_remove_legacy_commands = 1 ]])
|
||||
@@ -65,6 +72,8 @@ require('neo-tree').setup({
|
||||
width = 30,
|
||||
mappings = {
|
||||
["<cr>"] = "open_with_window_picker",
|
||||
["S"] = "split_with_window_picker",
|
||||
["s"] = "vsplit_with_window_picker"
|
||||
}
|
||||
},
|
||||
filesystem = {
|
||||
@@ -74,11 +83,15 @@ require('neo-tree').setup({
|
||||
follow_current_file = true,window = {
|
||||
mappings = {
|
||||
["/"] = "noop",
|
||||
["g/"] = "fuzzy_finder"
|
||||
["g/"] = "fuzzy_finder",
|
||||
["f"] = "noop",
|
||||
["ff"] = function() vim.cmd([[Telescope find_files]]) end,
|
||||
["fg"] = function() vim.cmd([[Telescope live_grep]]) end
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
vim.keymap.set("n", "f", "<cmd>Neotree focus<CR>", opts)
|
||||
|
||||
|
||||
require('smart-splits')
|
||||
@@ -100,7 +113,10 @@ require('bufferline').setup{
|
||||
options = {
|
||||
close_command = "Bdelete %d",
|
||||
right_mouse_command = "Bdelete %d",
|
||||
offsets = {{filetype = "neo-tree", text = "File Explorer", padding = 1}},
|
||||
offsets = {
|
||||
{filetype = "neo-tree", text = "File Explorer", padding = 1},
|
||||
{filetype = "aerial", text = "Outline", padding = 1}
|
||||
},
|
||||
enforce_regular_tabs = true,
|
||||
separator_style = 'slant'
|
||||
},
|
||||
@@ -121,12 +137,61 @@ vim.keymap.set("n", "<S-Left>", "<cmd>bprevious<CR>", opts)
|
||||
vim.keymap.set("n", "q", "<cmd>Bdelete<CR>", opts)
|
||||
|
||||
|
||||
require('nvim-autopairs').setup{}
|
||||
require('nvim-autopairs').setup()
|
||||
|
||||
|
||||
require('gitsigns').setup()
|
||||
|
||||
|
||||
require('cinnamon').setup()
|
||||
|
||||
|
||||
require('aerial').setup({
|
||||
close_behavior = 'global',
|
||||
open_automatic = true,
|
||||
placement_editor_edge = true,
|
||||
width = 30,
|
||||
on_attach = function(bufnr)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', 't',
|
||||
require('map_utils').lua_fn(function()
|
||||
vim.tbl_map(function(buf)
|
||||
if vim.api.nvim_buf_get_option(buf, 'filetype') == 'aerial' then
|
||||
vim.tbl_map(function(win)
|
||||
vim.api.nvim_set_current_win(win)
|
||||
end, vim.fn.win_findbuf(buf))
|
||||
end
|
||||
end, vim.api.nvim_list_bufs())
|
||||
end),
|
||||
{})
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
require('guess-indent').setup()
|
||||
|
||||
|
||||
local actions = require("telescope.actions")
|
||||
require('telescope').setup({
|
||||
defaults = {
|
||||
mappings = {
|
||||
n = {
|
||||
["S"] = actions.file_split,
|
||||
["s"] = actions.file_vsplit,
|
||||
}
|
||||
},
|
||||
get_selection_window = require('window-picker').pick_window
|
||||
},
|
||||
pickers = {
|
||||
find_files = {
|
||||
find_command = {"fd", "--type", "f", "--strip-cwd-prefix", "--hidden"}
|
||||
},
|
||||
live_grep = {
|
||||
vimgrep_arguments = {"rg", "--color=never", "--no-heading", "--with-filename", "--line-number", "--column", "--smart-case", "--hidden"}
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
vim.o.clipboard = 'unnamedplus'
|
||||
vim.o.expandtab = true
|
||||
vim.o.fileencoding = 'utf-8'
|
||||
@@ -139,7 +204,6 @@ vim.o.signcolumn = 'yes'
|
||||
vim.o.smartcase = true
|
||||
vim.o.spelllang = 'en'
|
||||
vim.o.tabstop = 2
|
||||
vim.o.smartindent = true
|
||||
|
||||
|
||||
if vim.fn.expand('%') == '' then
|
||||
|
||||
34
.config/nvim/lua/map_utils.lua
Normal file
34
.config/nvim/lua/map_utils.lua
Normal file
@@ -0,0 +1,34 @@
|
||||
local M = {}
|
||||
local module_name = 'map_utils'
|
||||
local fn_store = {}
|
||||
|
||||
local function register_fn(fn)
|
||||
table.insert(fn_store, fn)
|
||||
return #fn_store
|
||||
end
|
||||
|
||||
function M.apply_function(id)
|
||||
fn_store[id]()
|
||||
end
|
||||
|
||||
function M.apply_expr(id)
|
||||
return vim.api.nvim_replace_termcodes(fn_store[id](), true, true, true)
|
||||
end
|
||||
|
||||
function M.lua_fn(fn)
|
||||
return string.format(
|
||||
"<cmd>lua require('%s').apply_function(%s)<CR>",
|
||||
module_name,
|
||||
register_fn(fn)
|
||||
)
|
||||
end
|
||||
|
||||
function M.lua_expr(fn)
|
||||
return string.format(
|
||||
"v:lua.require'%s'.apply_expr(%s)",
|
||||
module_name,
|
||||
register_fn(fn)
|
||||
)
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -26,14 +26,22 @@ return require('packer').startup(function()
|
||||
}
|
||||
}
|
||||
|
||||
use('mrjones2014/smart-splits.nvim')
|
||||
use 'mrjones2014/smart-splits.nvim'
|
||||
|
||||
use('famiu/bufdelete.nvim')
|
||||
use 'famiu/bufdelete.nvim'
|
||||
|
||||
use {'akinsho/bufferline.nvim', tag = "v2.*", requires = 'kyazdani42/nvim-web-devicons'}
|
||||
|
||||
use('windwp/nvim-autopairs')
|
||||
use 'windwp/nvim-autopairs'
|
||||
|
||||
use('lewis6991/gitsigns.nvim')
|
||||
use 'lewis6991/gitsigns.nvim'
|
||||
|
||||
use 'declancm/cinnamon.nvim'
|
||||
|
||||
use 'stevearc/aerial.nvim'
|
||||
|
||||
use 'nmac427/guess-indent.nvim'
|
||||
|
||||
use {'nvim-telescope/telescope.nvim', requires = 'nvim-lua/plenary.nvim'}
|
||||
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user