1
0
mirror of https://github.com/jdhao/nvim-config.git synced 2025-06-08 14:14:33 +02:00

Compare commits

...

2 Commits

Author SHA1 Message Date
jdhao
a39befff93
Merge pull request #96 from jdhao/map
update mapping
2022-09-08 13:20:45 +08:00
jdhao
309c8ad636 update mapping 2022-09-08 13:19:34 +08:00
4 changed files with 36 additions and 103 deletions

View File

@ -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

View File

@ -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
View 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' })

View File

@ -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" } })