mirror of
https://github.com/jdhao/nvim-config.git
synced 2025-06-08 14:14:33 +02:00
Compare commits
2 Commits
954a4a1cad
...
a39befff93
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a39befff93 | ||
|
|
309c8ad636 |
@ -5,75 +5,36 @@ local api = vim.api
|
||||
keymap.set({ "n", "x" }, ";", ":")
|
||||
|
||||
-- Turn the word under cursor to upper case
|
||||
-- inoremap <c-u> <Esc>viwUea
|
||||
keymap.set("i", "<c-u>", "<Esc>viwUea")
|
||||
|
||||
-- Turn the current word into title case
|
||||
-- inoremap <c-t> <Esc>b~lea
|
||||
keymap.set("i", "<c-u>", "<Esc>b~lea")
|
||||
|
||||
-- Paste non-linewise text above or below current line, see https://stackoverflow.com/a/1346777/6064933
|
||||
keymap.set("n", "<leader>p", "m`o<ESC>p``", {
|
||||
desc = "paste below current line",
|
||||
})
|
||||
keymap.set("n", "<leader>P", "m`O<ESC>p``", {
|
||||
desc = "paste above current line",
|
||||
})
|
||||
keymap.set("n", "<leader>p", "m`o<ESC>p``", { desc = "paste below current line", })
|
||||
keymap.set("n", "<leader>P", "m`O<ESC>p``", { desc = "paste above current line", })
|
||||
|
||||
-- Shortcut for faster save and quit
|
||||
keymap.set("n", "<leader>w", "<cmd>update<cr>", {
|
||||
silent = true,
|
||||
desc = "save buffer",
|
||||
})
|
||||
keymap.set("n", "<leader>w", "<cmd>update<cr>", { silent = true, desc = "save buffer", })
|
||||
|
||||
-- Saves the file if modified and quit
|
||||
keymap.set("n", "<leader>q", "<cmd>x<cr>", {
|
||||
silent = true,
|
||||
desc = "quit current window",
|
||||
})
|
||||
keymap.set("n", "<leader>q", "<cmd>x<cr>", { silent = true, desc = "quit current window" })
|
||||
|
||||
-- Quit all opened buffers
|
||||
keymap.set("n", "<leader>Q", "<cmd>qa!<cr>", {
|
||||
silent = true,
|
||||
desc = "quit nvim",
|
||||
})
|
||||
keymap.set("n", "<leader>Q", "<cmd>qa!<cr>", { silent = true, desc = "quit nvim", })
|
||||
|
||||
-- Navigation in the location and quickfix list
|
||||
keymap.set("n", "[l", "<cmd>lprevious<cr>zv", {
|
||||
silent = true,
|
||||
desc = "previous location item",
|
||||
})
|
||||
keymap.set("n", "]l", "<cmd>lnext<cr>zv", {
|
||||
silent = true,
|
||||
desc = "next location item",
|
||||
})
|
||||
keymap.set("n", "[l", "<cmd>lprevious<cr>zv", { silent = true, desc = "previous location item", })
|
||||
keymap.set("n", "]l", "<cmd>lnext<cr>zv", { silent = true, desc = "next location item", })
|
||||
|
||||
keymap.set("n", "[L", "<cmd>lfirst<cr>zv", {
|
||||
silent = true,
|
||||
desc = "first location item",
|
||||
})
|
||||
keymap.set("n", "]L", "<cmd>llast<cr>zv", {
|
||||
silent = true,
|
||||
desc = "last location item",
|
||||
})
|
||||
keymap.set("n", "[L", "<cmd>lfirst<cr>zv", { silent = true, desc = "first location item", })
|
||||
keymap.set("n", "]L", "<cmd>llast<cr>zv", { silent = true, desc = "last location item", })
|
||||
|
||||
keymap.set("n", "[q", "<cmd>cprevious<cr>zv", {
|
||||
silent = true,
|
||||
desc = "previous qf item",
|
||||
})
|
||||
keymap.set("n", "]q", "<cmd>cnext<cr>zv", {
|
||||
silent = true,
|
||||
desc = "next qf item",
|
||||
})
|
||||
keymap.set("n", "[q", "<cmd>cprevious<cr>zv", { silent = true, desc = "previous qf item", })
|
||||
keymap.set("n", "]q", "<cmd>cnext<cr>zv", { silent = true, desc = "next qf item", })
|
||||
|
||||
keymap.set("n", "[Q", "<cmd>cfirst<cr>zv", {
|
||||
silent = true,
|
||||
desc = "first qf item",
|
||||
})
|
||||
keymap.set("n", "]Q", "<cmd>clast<cr>zv", {
|
||||
silent = true,
|
||||
desc = "last qf item",
|
||||
})
|
||||
keymap.set("n", "[Q", "<cmd>cfirst<cr>zv", { silent = true, desc = "first qf item", })
|
||||
keymap.set("n", "]Q", "<cmd>clast<cr>zv", { silent = true, desc = "last qf item", })
|
||||
|
||||
-- Close location list or quickfix list if they are present, see https://superuser.com/q/355325/736190
|
||||
keymap.set("n", [[\x]], "<cmd>windo lclose <bar> cclose <cr>", {
|
||||
@ -137,7 +98,6 @@ keymap.set("n", "<leader>sv", "", {
|
||||
})
|
||||
|
||||
-- Reselect the text that has just been pasted, see also https://stackoverflow.com/a/4317090/6064933.
|
||||
-- nnoremap <expr> <leader>v
|
||||
keymap.set("n", "<leader>v", "printf('`[%s`]', getregtype()[0])", {
|
||||
expr = true,
|
||||
desc = "reselect last pasted area",
|
||||
@ -151,20 +111,14 @@ keymap.set("n", "/", [[/\v]])
|
||||
|
||||
-- Change current working directory locally and print cwd after that,
|
||||
-- see https://vim.fandom.com/wiki/Set_working_directory_to_the_current_file
|
||||
keymap.set("n", "<leader>cd", "<cmd>lcd %:p:h<cr><cmd>pwd<cr>", {
|
||||
desc = "change cwd",
|
||||
})
|
||||
keymap.set("n", "<leader>cd", "<cmd>lcd %:p:h<cr><cmd>pwd<cr>", { desc = "change cwd", })
|
||||
|
||||
-- Use Esc to quit builtin terminal
|
||||
keymap.set("t", "<Esc>", [[<c-\><c-n>]])
|
||||
|
||||
-- Toggle spell checking
|
||||
keymap.set("n", "<F11>", "<cmd>set spell!<cr>", {
|
||||
desc = "toggle spell",
|
||||
})
|
||||
keymap.set("i", "<F11>", "<c-o><cmd>set spell!<cr>", {
|
||||
desc = "toggle spell",
|
||||
})
|
||||
keymap.set("n", "<F11>", "<cmd>set spell!<cr>", { desc = "toggle spell", })
|
||||
keymap.set("i", "<F11>", "<c-o><cmd>set spell!<cr>", { desc = "toggle spell", })
|
||||
|
||||
-- Change text without putting it into the vim register,
|
||||
-- see https://stackoverflow.com/q/54255/6064933
|
||||
@ -174,41 +128,25 @@ keymap.set("n", "cc", '"_cc')
|
||||
keymap.set("x", "c", '"_c')
|
||||
|
||||
-- Remove trailing whitespace characters
|
||||
keymap.set("n", "<leader><space>", "<cmd>StripTrailingWhitespace<cr>", {
|
||||
desc = "remove trailing space",
|
||||
})
|
||||
keymap.set("n", "<leader><space>", "<cmd>StripTrailingWhitespace<cr>", { desc = "remove trailing space", })
|
||||
|
||||
-- check the syntax group of current cursor position
|
||||
keymap.set("n", "<leader>st", "<cmd>call utils#SynGroup()<cr>", {
|
||||
desc = "check syntax group",
|
||||
})
|
||||
keymap.set("n", "<leader>st", "<cmd>call utils#SynGroup()<cr>", { desc = "check syntax group", })
|
||||
|
||||
-- Copy entire buffer.
|
||||
keymap.set("n", "<leader>y", "<cmd>%yank<cr>", {
|
||||
desc = "yank entire buffer",
|
||||
})
|
||||
keymap.set("n", "<leader>y", "<cmd>%yank<cr>", { desc = "yank entire buffer", })
|
||||
|
||||
-- Toggle cursor column
|
||||
keymap.set("n", "<leader>cl", "<cmd>call utils#ToggleCursorCol()<cr>", {
|
||||
desc = "toggle cursor column",
|
||||
})
|
||||
keymap.set("n", "<leader>cl", "<cmd>call utils#ToggleCursorCol()<cr>", { desc = "toggle cursor column", })
|
||||
|
||||
-- Move current line up and down
|
||||
keymap.set("n", "<A-k>", '<cmd>call utils#SwitchLine(line("."), "up")<cr>', {
|
||||
desc = "move line up",
|
||||
})
|
||||
keymap.set("n", "<A-j>", '<cmd>call utils#SwitchLine(line("."), "down")<cr>', {
|
||||
desc = "move line down",
|
||||
})
|
||||
keymap.set("n", "<A-k>", '<cmd>call utils#SwitchLine(line("."), "up")<cr>', { desc = "move line up", })
|
||||
keymap.set("n", "<A-j>", '<cmd>call utils#SwitchLine(line("."), "down")<cr>', { desc = "move line down", })
|
||||
|
||||
-- Move current visual-line selection up and down
|
||||
keymap.set("x", "<A-k>", '<cmd>call utils#MoveSelection("up")<cr>', {
|
||||
desc = "move selection up",
|
||||
})
|
||||
keymap.set("x", "<A-k>", '<cmd>call utils#MoveSelection("up")<cr>', { desc = "move selection up", })
|
||||
|
||||
keymap.set("x", "<A-j>", '<cmd>call utils#MoveSelection("down")<cr>', {
|
||||
desc = "move selection down",
|
||||
})
|
||||
keymap.set("x", "<A-j>", '<cmd>call utils#MoveSelection("down")<cr>', { desc = "move selection down", })
|
||||
|
||||
-- Replace visual selection with text in register, but not contaminate the register,
|
||||
-- see also https://stackoverflow.com/q/10723700/6064933.
|
||||
@ -229,14 +167,10 @@ keymap.set("n", "<Up>", "<C-W>k")
|
||||
keymap.set("n", "<Down>", "<C-W>j")
|
||||
|
||||
-- Text objects for URL
|
||||
keymap.set({ "x", "o" }, "iu", "<cmd>call text_obj#URL()<cr>", {
|
||||
desc = "URL text object",
|
||||
})
|
||||
keymap.set({ "x", "o" }, "iu", "<cmd>call text_obj#URL()<cr>", { desc = "URL text object", })
|
||||
|
||||
-- Text objects for entire buffer
|
||||
keymap.set({ "x", "o" }, "iB", "<cmd>call text_obj#Buffer()<cr>", {
|
||||
desc = "buffer text object",
|
||||
})
|
||||
keymap.set({ "x", "o" }, "iB", "<cmd>call text_obj#Buffer()<cr>", { desc = "buffer text object", })
|
||||
|
||||
-- Do not move my cursor when joining lines.
|
||||
keymap.set("n", "J", "", {
|
||||
@ -261,7 +195,7 @@ keymap.set("n", "gJ", "mzgJ`z", {
|
||||
})
|
||||
|
||||
-- Break inserted text into smaller undo units when we insert some punctuation chars.
|
||||
local undo_ch = {',', '.', '!', '?', ';', ':'}
|
||||
local undo_ch = { ',', '.', '!', '?', ';', ':' }
|
||||
for _, ch in ipairs(undo_ch) do
|
||||
keymap.set('i', ch, ch .. '<c-g>u')
|
||||
end
|
||||
|
||||
@ -189,15 +189,6 @@ let g:signify_vcs_list = [ 'git' ]
|
||||
" Change the sign for certain operations
|
||||
let g:signify_sign_change = '~'
|
||||
|
||||
"""""""""""""""""""""""""vim-fugitive settings""""""""""""""""""""""""""""""
|
||||
nnoremap <silent> <leader>gs :Git<CR>
|
||||
nnoremap <silent> <leader>gw :Gwrite<CR>
|
||||
nnoremap <silent> <leader>gc :Git commit<CR>
|
||||
nnoremap <silent> <leader>gd :Gdiffsplit<CR>
|
||||
nnoremap <silent> <leader>gpl :Git pull<CR>
|
||||
" Note that to use bar literally, we need backslash it, see also `:h :bar`.
|
||||
nnoremap <silent> <leader>gpu :15split \| term git push<CR>
|
||||
|
||||
"""""""""""""""""""""""""plasticboy/vim-markdown settings"""""""""""""""""""
|
||||
" Disable header folding
|
||||
let g:vim_markdown_folding_disabled = 1
|
||||
|
||||
8
lua/config/fugitive.lua
Normal file
8
lua/config/fugitive.lua
Normal file
@ -0,0 +1,8 @@
|
||||
local keymap = vim.keymap
|
||||
|
||||
keymap.set('n', '<leader>gs', '<cmd>Git<cr>', { desc = 'Git status' })
|
||||
keymap.set('n', '<leader>gw', '<cmd>Gwrite<cr>', { desc = 'Git add' })
|
||||
keymap.set('n', '<leader>gc', '<cmd>Git commit<cr>', { desc = 'Git commit' })
|
||||
keymap.set('n', '<leader>gd', '<cmd>Gdiffsplit<cr>', { desc = 'Git diff' })
|
||||
keymap.set('n', '<leader>gpl', '<cmd>Git pull<cr>', { desc = 'Git pull' })
|
||||
keymap.set('n', '<leader>gpu', '<cmd>15 split|term git push<cr>', { desc = 'Git push' })
|
||||
@ -229,7 +229,7 @@ packer.startup({
|
||||
-- use 'Chiel92/vim-autoformat'
|
||||
|
||||
-- Git command inside vim
|
||||
use({ "tpope/vim-fugitive", event = "User InGitRepo" })
|
||||
use({ "tpope/vim-fugitive", event = "User InGitRepo", config = [[require('config.fugitive')]]})
|
||||
|
||||
-- Better git log display
|
||||
use({ "rbong/vim-flog", requires = "tpope/vim-fugitive", cmd = { "Flog" } })
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user