feat: add support for Jedi-Vim plugin

- Add configuration for Jedi-Vim plugin in `lua/absolute/plugins/jedi.lua`
- Create `lua/absolute/after/jedi.lua` to set Jedi-Vim mappings and options

fix: fix lualine theme and add custom section

- Update `lua/absolute/after/lualine.lua` to fix the lualine theme configuration
- Add a custom section to display the Poetv status line in lualine

feat: add keybindings for Poetv plugin

- Add keybindings for activating and deactivating virtualenv in `lua/absolute/after/poet-v.lua`

fix: fix remap keybindings

- Update `lua/absolute/remap.lua` to fix and improve remap keybindings

feat: add alternate escape keybinding

- Add keybinding to use <C-c> as an alternate escape key in insert mode

fix: disable Q keybinding

- Disable the Q keybinding to prevent accidentally entering Ex mode

feat: add keybinding for formatting document with LSP Formatter

- Add keybinding to format the document using the LSP Formatter

feat: add keybindings for navigation quick fixes

- Add keybindings for navigating through quick fixes in the location list and the quickfix list

feat: add keybinding for regex replace

- Add keybinding to perform a regex replace in the entire file

feat: add keybinding for sourcing file

- Add keybinding to source the current file

feat: add keybinding for toggling TMUX pane

- Add keybinding to toggle the TMUX pane using MaximizerToggle command
This commit is contained in:
David Ibia
2024-01-03 17:54:20 +01:00
parent 6aa492bca8
commit aee290dcf9
7 changed files with 125 additions and 32 deletions

View File

@@ -0,0 +1,10 @@
vim.g["jedi#goto_command"] = "" -- "<leader>d"
vim.g["jedi#goto_assignments_command"] = "<leader>gD"
vim.g["jedi#goto_stubs_command"] = "" -- "<leader>s"
vim.g["jedi#goto_definitions_command"] = "gd"
vim.g["jedi#documentation_command"] = "K"
vim.g["jedi#usages_command"] = "<leader>n"
vim.g["jedi#completions_command"] = "<C-Space>"
vim.g["jedi#rename_command"] = "<leader>rn"
vim.g["jedi#rename_command_keep_name"] = "" -- "<leader>R"

View File

@@ -45,6 +45,34 @@ local my_lualine_theme = {
},
}
function GetPoetvStatusLine()
-- Get the poetv statusline
-- If poetv is not active, return empty string
if IsPoetvActive() then
local poetv_name = vim.g.poetv_name
local poetv_statusline_symbol = vim.g.poetv_statusline_symbol
local result = string.sub(poetv_name, 1, 20) .. " " .. poetv_statusline_symbol
return result
else
return ""
end
end
function IsPoetvActive()
-- Check if vim.g.poetv_name exists
-- If it does, then poetv is active
if vim.g.poetv_name ~= nil then
return true
else
return false
end
end
-- configure lualine with modified theme
lualine.setup({
options = {
@@ -52,6 +80,11 @@ lualine.setup({
},
sections = {
lualine_x = {
{
GetPoetvStatusLine,
cond = IsPoetvActive,
color = { fg = "#ff9e64" },
},
{
lazy_status.updates,
cond = lazy_status.has_updates,

View File

@@ -2,3 +2,16 @@ vim.g.poetv_executables = { "poetry", "pipenv" }
vim.g.poetv_auto_activate = 1
vim.g.poetv_set_environment = 1
vim.g.poetv_statusline_symbol = "🐍"
-- Keybindings
local opts = { noremap = true, silent = true }
-- Poetv: Activate Virtualenv
opts.desc = "Poetv: Activate virtualenv"
vim.keymap.set("n", "<leader>pva", "<cmd>PoetvActivate<CR>", opts)
-- Poetv: Deactivate Virtualenv
opts.desc = "Poetv: Deactivate virtualenv"
vim.keymap.set("n", "<leader>pvd", "<cmd>PoetvDeactivate<CR>", opts)

View File

@@ -31,4 +31,3 @@ vim.opt.updatetime = 50
vim.opt.colorcolumn = ""
vim.g.mapleader = " "
vim.g.maplocalleader = "\\"

View File

@@ -0,0 +1,6 @@
return {
"davidhalter/jedi-vim",
config = function()
require("absolute.after.jedi")
end
}

View File

@@ -1,59 +1,90 @@
vim.keymap.set("n", "<leader>\\", "<cmd>NvimTreeToggle<CR>") -- toggle file explorer
local opts = { noremap = true, silent = true }
opts.desc = "Toggle File Explorer"
vim.keymap.set("n", "<leader>\\", "<cmd>NvimTreeToggle<CR>", opts) -- toggle file explorer
-- Move selected line / block of text in visual mode up
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
opts.desc = "Move selected line / block of text in visual mode up"
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv", opts)
-- Move selected line / block of text in visual mode down
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
opts.desc = "Move selected line / block of text in visual mode down"
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv", opts)
vim.keymap.set("n", "J", "mzJ`z")
-- Join current line with the line below it
opts.desc = "Join current line with the line below it"
vim.keymap.set("n", "J", "mzJ`z", opts)
-- Move half page down
vim.keymap.set("n", "<C-d>", "<C-d>zz")
-- Move half page down
opts.desc = "Move half page down"
vim.keymap.set("n", "<C-d>", "<C-d>zz", opts)
-- Move half page up
vim.keymap.set("n", "<C-u>", "<C-u>zz")
opts.desc = "Move half page up"
vim.keymap.set("n", "<C-u>", "<C-u>zz", opts)
-- Navigate to next search result, center screen and expand folded text
opts.desc = "Navigate to next search result, center screen and expand folded text"
vim.keymap.set("n", "n", "nzzzv", opts)
-- Navigate to previous search result, center screen and expand folded text,
opts.desc = "Navigate to previous search result, center screen and expand folded text"
vim.keymap.set("n", "N", "Nzzzv", opts)
-- Delete selected text and paste from register
opts.desc = "Delete selected text and paste from register"
vim.keymap.set("x", "<leader>p", [["_dP]], opts)
-- Copy selected text into system clipboard
opts.desc = "Copy selected text into system clipboard"
vim.keymap.set({ "n", "v" }, "<leader>y", [["+y]], opts)
-- Copy current line into system clipboard
opts.desc = "Copy current line into system clipboard"
vim.keymap.set("n", "<leader>Y", [["+Y]], opts)
vim.keymap.set("n", "n", "nzzzv")
vim.keymap.set("n", "N", "Nzzzv")
vim.keymap.set("x", "<leader>p", [["_dP]])
vim.keymap.set({ "n", "v" }, "<leader>y", [["+y]])
vim.keymap.set("n", "<leader>Y", [["+Y]])
vim.keymap.set({ "n", "v" }, "<leader>d", [["_d]])
-- Delete (blackhole)
opts.desc = "Delete current line (blackhole)"
vim.keymap.set({ "n", "v" }, "<leader>d", [["_d]], opts)
-- Alternate Escape (Easy to Reach)
vim.keymap.set("i", "<C-c>", "<Esc>")
opts.desc = "Alternate Escape (Easy to Reach)"
vim.keymap.set("i", "<C-c>", "<Esc>", opts)
-- Disable Q - Nothing Good Ever Happens
vim.keymap.set("n", "Q", "<nop>")
-- Q is normally used to enable Ex mode. We dont want that
opts.desc = "Disable Q - Nothing Good Ever Happens"
vim.keymap.set("n", "Q", "<nop>", opts)
-- Format document with LSP Formatter
vim.keymap.set("n", "<leader>f", vim.lsp.buf.format)
opts.desc = "Format document with LSP Formatter"
vim.keymap.set("n", "<leader>f", vim.lsp.buf.format, opts)
-- Navigation Quick Fixes
vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz")
vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz")
vim.keymap.set("n", "<leader>k", "<cmd>lnext<CR>zz")
vim.keymap.set("n", "<leader>j", "<cmd>lprev<CR>zz")
--
-- vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz", opts)
-- vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz", opts)
-- vim.keymap.set("n", "<leader>k", "<cmd>lnext<CR>zz", opts)
-- vim.keymap.set("n", "<leader>j", "<cmd>lprev<CR>zz", opts)
--
-- Search Regex Keymap
vim.keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
opts.desc = "Regex Replace"
vim.keymap.set("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]], opts)
-- Source File Keymap
opts.desc = "Source File"
vim.keymap.set("n", "<leader><leader>", function()
vim.cmd("so")
end)
end, opts)
-- Manage VIM Maximizer
vim.keymap.set("n", "<leader>sm", "<cmd>MaximizerToggle<CR>")
opts.desc = "Toggle TMUX Pane"
vim.keymap.set("n", "<leader>sm", "<cmd>MaximizerToggle<CR>", opts)