mirror of
https://github.com/jdhao/nvim-config.git
synced 2025-06-08 14:14:33 +02:00
Compare commits
4 Commits
858848128f
...
4dcafbe2bc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4dcafbe2bc | ||
|
|
14860072d0 | ||
|
|
5a69d43cab | ||
|
|
11e6797cb5 |
294
core/mappings.lua
Normal file
294
core/mappings.lua
Normal file
@ -0,0 +1,294 @@
|
||||
local keymap = vim.keymap
|
||||
local api = vim.api
|
||||
|
||||
-- Save key strokes (now we do not need to press shift to enter command mode).
|
||||
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",
|
||||
})
|
||||
|
||||
-- Shortcut for faster save and quit
|
||||
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",
|
||||
})
|
||||
|
||||
-- Quit all opened buffers
|
||||
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>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>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>", {
|
||||
silent = true,
|
||||
desc = "close qf and location list",
|
||||
})
|
||||
|
||||
-- Delete a buffer, without closing the window, see https://stackoverflow.com/q/4465095/6064933
|
||||
keymap.set("n", [[\d]], "<cmd>bprevious <bar> bdelete #<cr>", {
|
||||
silent = true,
|
||||
desc = "delete buffer",
|
||||
})
|
||||
|
||||
-- Insert a blank line below or above current line (do not move the cursor),
|
||||
-- see https://stackoverflow.com/a/16136133/6064933
|
||||
keymap.set("n", "<space>o", "printf('m`%so<ESC>``', v:count1)", {
|
||||
expr = true,
|
||||
desc = "insert line below",
|
||||
})
|
||||
|
||||
keymap.set("n", "<space>O", "printf('m`%sO<ESC>``', v:count1)", {
|
||||
expr = true,
|
||||
desc = "insert line above",
|
||||
})
|
||||
|
||||
-- Move the cursor based on physical lines, not the actual lines.
|
||||
keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'", { expr = true })
|
||||
keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'", { expr = true })
|
||||
keymap.set("n", "^", "g^")
|
||||
keymap.set("n", "0", "g0")
|
||||
|
||||
-- Do not include white space characters when using $ in visual mode,
|
||||
-- see https://vi.stackexchange.com/q/12607/15292
|
||||
keymap.set("x", "$", "g_")
|
||||
|
||||
-- Go to start or end of line easier
|
||||
keymap.set({ "n", "x" }, "H", "^")
|
||||
keymap.set({ "n", "x" }, "L", "g_")
|
||||
|
||||
-- Continuous visual shifting (does not exit Visual mode), `gv` means
|
||||
-- to reselect previous visual area, see https://superuser.com/q/310417/736190
|
||||
keymap.set("x", "<", "<gv")
|
||||
keymap.set("x", ">", ">gv")
|
||||
|
||||
-- Edit and reload nvim config file quickly
|
||||
keymap.set("n", "<leader>ev", "<cmd>tabnew $MYVIMRC <bar> tcd %:h<cr>", {
|
||||
silent = true,
|
||||
desc = "open init.lua",
|
||||
})
|
||||
|
||||
keymap.set("n", "<leader>sv", "", {
|
||||
silent = true,
|
||||
desc = "reload init.lua",
|
||||
callback = function()
|
||||
vim.cmd [[
|
||||
update $MYVIMRC
|
||||
source $MYVIMRC
|
||||
]]
|
||||
vim.notify("Nvim config successfully reloaded!", vim.log.levels.INFO, { title = "nvim-config" })
|
||||
end,
|
||||
})
|
||||
|
||||
-- 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",
|
||||
})
|
||||
|
||||
-- Always use very magic mode for searching
|
||||
keymap.set("n", "/", [[/\v]])
|
||||
|
||||
-- Search in selected region
|
||||
-- xnoremap / :<C-U>call feedkeys('/\%>'.(line("'<")-1).'l\%<'.(line("'>")+1)."l")<CR>
|
||||
|
||||
-- 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",
|
||||
})
|
||||
|
||||
-- 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",
|
||||
})
|
||||
|
||||
-- Change text without putting it into the vim register,
|
||||
-- see https://stackoverflow.com/q/54255/6064933
|
||||
keymap.set("n", "c", '"_c')
|
||||
keymap.set("n", "C", '"_C')
|
||||
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",
|
||||
})
|
||||
|
||||
-- check the syntax group of current cursor position
|
||||
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",
|
||||
})
|
||||
|
||||
-- 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",
|
||||
})
|
||||
|
||||
-- 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-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.
|
||||
keymap.set("x", "p", '"_c<Esc>p')
|
||||
|
||||
-- Go to a certain buffer
|
||||
keymap.set("n", "gb", '<cmd>call buf_utils#GoToBuffer(v:count, "forward")<cr>', {
|
||||
desc = "go to buffer (forward)",
|
||||
})
|
||||
keymap.set("n", "gB", '<cmd>call buf_utils#GoToBuffer(v:count, "backward")<cr>', {
|
||||
desc = "go to buffer (backward)",
|
||||
})
|
||||
|
||||
-- Switch windows
|
||||
keymap.set("n", "<left>", "<c-w>h")
|
||||
keymap.set("n", "<Right>", "<C-W>l")
|
||||
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",
|
||||
})
|
||||
|
||||
-- Text objects for entire buffer
|
||||
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", "", {
|
||||
desc = "join line",
|
||||
callback = function()
|
||||
vim.cmd [[
|
||||
normal! mzJ`z
|
||||
delmarks z
|
||||
]]
|
||||
end,
|
||||
})
|
||||
|
||||
keymap.set("n", "gJ", "mzgJ`z", {
|
||||
desc = "join visual lines",
|
||||
callback = function()
|
||||
-- we must use `normal!`, otherwise it will trigger recursive mapping
|
||||
vim.cmd [[
|
||||
normal! zmgJ`z
|
||||
delmarks z
|
||||
]]
|
||||
end
|
||||
})
|
||||
|
||||
-- Break inserted text into smaller undo units when we insert some punctuation chars.
|
||||
local undo_ch = {',', '.', '!', '?', ';', ':'}
|
||||
for _, ch in ipairs(undo_ch) do
|
||||
keymap.set('i', ch, ch .. '<c-g>u')
|
||||
end
|
||||
|
||||
-- insert semicolon in the end
|
||||
keymap.set('i', '<A-;>', '<Esc>miA;<Esc>`ii')
|
||||
|
||||
-- Keep cursor position after yanking
|
||||
keymap.set('n', 'y', 'myy')
|
||||
|
||||
api.nvim_create_autocmd('TextYankPost', {
|
||||
pattern = '*',
|
||||
group = api.nvim_create_augroup("restore_after_yank", { clear = true }),
|
||||
callback = function()
|
||||
vim.cmd [[
|
||||
silent! normal! `y
|
||||
silent! delmarks y
|
||||
]]
|
||||
end
|
||||
})
|
||||
|
||||
-- Go to the beginning and end of current line in insert mode quickly
|
||||
keymap.set('i', '<C-A>', '<HOME>')
|
||||
keymap.set('i', '<C-E>', '<END>')
|
||||
|
||||
-- Go to beginning of command in command-line mode
|
||||
keymap.set('c', '<C-A>', '<HOME>')
|
||||
|
||||
-- Delete the character to the right of the cursor
|
||||
keymap.set('i', '<C-D>', '<DEL>')
|
||||
@ -1,195 +0,0 @@
|
||||
" Save key strokes (now we do not need to press shift to enter command mode).
|
||||
" Vim-sneak has also mapped `;`, so using the below mapping will break the map
|
||||
" used by vim-sneak
|
||||
nnoremap ; :
|
||||
xnoremap ; :
|
||||
|
||||
" Quicker way to open command window
|
||||
nnoremap q; q:
|
||||
|
||||
" Turn the word under cursor to upper case
|
||||
inoremap <c-u> <Esc>viwUea
|
||||
|
||||
" Turn the current word into title case
|
||||
inoremap <c-t> <Esc>b~lea
|
||||
|
||||
" Paste non-linewise text above or below current cursor,
|
||||
" see https://stackoverflow.com/a/1346777/6064933
|
||||
nnoremap <leader>p m`o<ESC>p``
|
||||
nnoremap <leader>P m`O<ESC>p``
|
||||
|
||||
" Shortcut for faster save and quit
|
||||
nnoremap <silent> <leader>w :<C-U>update<CR>
|
||||
" Saves the file if modified and quit
|
||||
nnoremap <silent> <leader>q :<C-U>x<CR>
|
||||
" Quit all opened buffers
|
||||
nnoremap <silent> <leader>Q :<C-U>qa!<CR>
|
||||
|
||||
" Navigation in the location and quickfix list
|
||||
nnoremap <silent> [l :<C-U>lprevious<CR>zv
|
||||
nnoremap <silent> ]l :<C-U>lnext<CR>zv
|
||||
nnoremap <silent> [L :<C-U>lfirst<CR>zv
|
||||
nnoremap <silent> ]L :<C-U>llast<CR>zv
|
||||
nnoremap <silent> [q :<C-U>cprevious<CR>zv
|
||||
nnoremap <silent> ]q :<C-U>cnext<CR>zv
|
||||
nnoremap <silent> [Q :<C-U>cfirst<CR>zv
|
||||
nnoremap <silent> ]Q :<C-U>clast<CR>zv
|
||||
|
||||
" Close location list or quickfix list if they are present,
|
||||
" see https://superuser.com/q/355325/736190
|
||||
nnoremap<silent> \x :<C-U>windo lclose <bar> cclose<CR>
|
||||
|
||||
" Close a buffer and switching to another buffer, do not close the
|
||||
" window, see https://stackoverflow.com/q/4465095/6064933
|
||||
nnoremap <silent> \d :<C-U>bprevious <bar> bdelete #<CR>
|
||||
|
||||
" Insert a blank line below or above current line (do not move the cursor),
|
||||
" see https://stackoverflow.com/a/16136133/6064933
|
||||
nnoremap <expr> <Space>o printf('m`%so<ESC>``', v:count1)
|
||||
nnoremap <expr> <Space>O printf('m`%sO<ESC>``', v:count1)
|
||||
|
||||
" Insert a space after current character
|
||||
nnoremap <Space><Space> a<Space><ESC>h
|
||||
|
||||
" Move the cursor based on physical lines, not the actual lines.
|
||||
nnoremap <expr> j (v:count == 0 ? 'gj' : 'j')
|
||||
nnoremap <expr> k (v:count == 0 ? 'gk' : 'k')
|
||||
nnoremap ^ g^
|
||||
nnoremap 0 g0
|
||||
|
||||
" Do not include white space characters when using $ in visual mode,
|
||||
" see https://vi.stackexchange.com/q/12607/15292
|
||||
xnoremap $ g_
|
||||
|
||||
" Jump to matching pairs easily in normal mode
|
||||
nnoremap <Tab> %
|
||||
|
||||
" Go to start or end of line easier
|
||||
nnoremap H ^
|
||||
xnoremap H ^
|
||||
nnoremap L g_
|
||||
xnoremap L g_
|
||||
|
||||
" Continuous visual shifting (does not exit Visual mode), `gv` means
|
||||
" to reselect previous visual area, see https://superuser.com/q/310417/736190
|
||||
xnoremap < <gv
|
||||
xnoremap > >gv
|
||||
|
||||
" When completion menu is shown, use <cr> to select an item and do not add an
|
||||
" annoying newline. Otherwise, <enter> is what it is. For more info , see
|
||||
" https://superuser.com/a/941082/736190 and
|
||||
" https://unix.stackexchange.com/q/162528/221410
|
||||
" inoremap <expr> <cr> ((pumvisible())?("\<C-Y>"):("\<cr>"))
|
||||
" Use <esc> to close auto-completion menu
|
||||
" inoremap <expr> <esc> ((pumvisible())?("\<C-e>"):("\<esc>"))
|
||||
|
||||
" Tab-complete, see https://vi.stackexchange.com/q/19675/15292.
|
||||
inoremap <expr> <tab> pumvisible() ? "\<c-n>" : "\<tab>"
|
||||
inoremap <expr> <s-tab> pumvisible() ? "\<c-p>" : "\<s-tab>"
|
||||
|
||||
" Edit and reload nvim config file quickly
|
||||
nnoremap <silent> <leader>ev :<C-U>tabnew $MYVIMRC <bar> tcd %:h<cr>
|
||||
nnoremap <silent> <leader>sv :<C-U>silent update $MYVIMRC <bar> source $MYVIMRC <bar>
|
||||
\ call v:lua.vim.notify("Nvim config successfully reloaded!", 2, {'title': 'nvim-config'})<cr>
|
||||
|
||||
" Reselect the text that has just been pasted, see also https://stackoverflow.com/a/4317090/6064933.
|
||||
nnoremap <expr> <leader>v printf('`[%s`]', getregtype()[0])
|
||||
|
||||
" Always use very magic mode for searching
|
||||
nnoremap / /\v
|
||||
|
||||
" Search in selected region
|
||||
xnoremap / :<C-U>call feedkeys('/\%>'.(line("'<")-1).'l\%<'.(line("'>")+1)."l")<CR>
|
||||
|
||||
" Change current working directory locally and print cwd after that,
|
||||
" see https://vim.fandom.com/wiki/Set_working_directory_to_the_current_file
|
||||
nnoremap <silent> <leader>cd :<C-U>lcd %:p:h<CR>:pwd<CR>
|
||||
|
||||
" Use Esc to quit builtin terminal
|
||||
tnoremap <ESC> <C-\><C-n>
|
||||
|
||||
" Toggle spell checking (autosave does not play well with z=, so we disable it
|
||||
" when we are doing spell checking)
|
||||
nnoremap <silent> <F11> :<C-U>set spell!<cr>
|
||||
inoremap <silent> <F11> <C-O>:<C-U>set spell!<cr>
|
||||
|
||||
" Change text without putting it into the vim register,
|
||||
" see https://stackoverflow.com/q/54255/6064933
|
||||
nnoremap c "_c
|
||||
nnoremap C "_C
|
||||
nnoremap cc "_cc
|
||||
xnoremap c "_c
|
||||
|
||||
" Remove trailing whitespace characters
|
||||
nnoremap <silent> <leader><Space> :<C-U>StripTrailingWhitespace<CR>
|
||||
|
||||
" check the syntax group of current cursor position
|
||||
nnoremap <silent> <leader>st :<C-U>call utils#SynGroup()<CR>
|
||||
|
||||
" Clear highlighting
|
||||
if maparg('<C-L>', 'n') ==# ''
|
||||
nnoremap <silent> <C-L> :<C-U>nohlsearch<C-R>=has('diff')?'<Bar>diffupdate':''<CR><CR><C-L>
|
||||
endif
|
||||
|
||||
" Copy entire buffer.
|
||||
nnoremap <silent> <leader>y :<C-U>%y<CR>
|
||||
|
||||
" Toggle cursor column
|
||||
nnoremap <silent> <leader>cl :<C-U>call utils#ToggleCursorCol()<CR>
|
||||
|
||||
" Move current line up and down
|
||||
nnoremap <silent> <A-k> <Cmd>call utils#SwitchLine(line('.'), 'up')<CR>
|
||||
nnoremap <silent> <A-j> <Cmd>call utils#SwitchLine(line('.'), 'down')<CR>
|
||||
|
||||
" Move current visual-line selection up and down
|
||||
xnoremap <silent> <A-k> :<C-U>call utils#MoveSelection('up')<CR>
|
||||
xnoremap <silent> <A-j> :<C-U>call utils#MoveSelection('down')<CR>
|
||||
|
||||
" Replace visual selection with text in register, but not contaminate the
|
||||
" register, see also https://stackoverflow.com/q/10723700/6064933.
|
||||
xnoremap p "_c<ESC>p
|
||||
|
||||
nnoremap <silent> gb :<C-U>call buf_utils#GoToBuffer(v:count, 'forward')<CR>
|
||||
nnoremap <silent> gB :<C-U>call buf_utils#GoToBuffer(v:count, 'backward')<CR>
|
||||
|
||||
nnoremap <Left> <C-W>h
|
||||
nnoremap <Right> <C-W>l
|
||||
nnoremap <Up> <C-W>k
|
||||
nnoremap <Down> <C-W>j
|
||||
|
||||
" Text objects for URL
|
||||
xnoremap <silent> iu :<C-U>call text_obj#URL()<CR>
|
||||
onoremap <silent> iu :<C-U>call text_obj#URL()<CR>
|
||||
|
||||
" Text objects for entire buffer
|
||||
xnoremap <silent> iB :<C-U>call text_obj#Buffer()<CR>
|
||||
onoremap <silent> iB :<C-U>call text_obj#Buffer()<CR>
|
||||
|
||||
" Do not move my cursor when joining lines.
|
||||
nnoremap J mzJ`z
|
||||
nnoremap gJ mzgJ`z
|
||||
|
||||
" Break inserted text into smaller undo units.
|
||||
for ch in [',', '.', '!', '?', ';', ':']
|
||||
execute printf('inoremap %s %s<C-g>u', ch, ch)
|
||||
endfor
|
||||
|
||||
" insert semicolon in the end
|
||||
inoremap <A-;> <ESC>miA;<ESC>`ii
|
||||
|
||||
" Keep cursor position after yanking
|
||||
nnoremap y myy
|
||||
xnoremap y myy
|
||||
|
||||
augroup restore_after_yank
|
||||
autocmd!
|
||||
autocmd TextYankPost * call s:restore_cursor()
|
||||
augroup END
|
||||
|
||||
function! s:restore_cursor() abort
|
||||
silent! normal `y
|
||||
silent! delmarks y
|
||||
endfunction
|
||||
|
||||
" for mappings defined in lua
|
||||
lua require('custom-map')
|
||||
2
init.lua
2
init.lua
@ -24,7 +24,7 @@ local core_conf_files = {
|
||||
"globals.vim", -- some global settings
|
||||
"options.vim", -- setting options in nvim
|
||||
"autocommands.vim", -- various autocommands
|
||||
"mappings.vim", -- all the user-defined mappings
|
||||
"mappings.lua", -- all the user-defined mappings
|
||||
"plugins.vim", -- all the plugins installed and their configurations
|
||||
"colorschemes.lua", -- colorscheme settings
|
||||
}
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
local keymap = vim.keymap
|
||||
local gitlinker = require('gitlinker')
|
||||
|
||||
gitlinker.setup({
|
||||
mappings = nil,
|
||||
})
|
||||
|
||||
vim.keymap.set({ 'n', 'v' }, '<leader>gl', '', {
|
||||
keymap.set({ 'n', 'v' }, '<leader>gl', '', {
|
||||
silent = true,
|
||||
desc = "get git permlink",
|
||||
callback = function()
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
local keymap = vim.keymap
|
||||
|
||||
require('hlslens').setup({
|
||||
calm_down = true,
|
||||
nearest_only = true,
|
||||
@ -16,19 +18,17 @@ local activate_hlslens = function(direction)
|
||||
require('hlslens').start()
|
||||
end
|
||||
|
||||
vim.keymap.set('n', 'n', '',
|
||||
keymap.set('n', 'n', '',
|
||||
{
|
||||
noremap = true,
|
||||
silent = true,
|
||||
callback = function() activate_hlslens('n') end
|
||||
})
|
||||
|
||||
vim.keymap.set('n', 'N', '',
|
||||
keymap.set('n', 'N', '',
|
||||
{
|
||||
noremap = true,
|
||||
silent = true,
|
||||
callback = function() activate_hlslens('N') end
|
||||
})
|
||||
|
||||
vim.keymap.set('n', '*', "<Plug>(asterisk-z*)<Cmd>lua require('hlslens').start()<CR>", { silent = true })
|
||||
vim.keymap.set('n', '#', "<Plug>(asterisk-z#)<Cmd>lua require('hlslens').start()<CR>", { silent = true })
|
||||
keymap.set('n', '*', "<Plug>(asterisk-z*)<Cmd>lua require('hlslens').start()<CR>", { silent = true })
|
||||
keymap.set('n', '#', "<Plug>(asterisk-z#)<Cmd>lua require('hlslens').start()<CR>", { silent = true })
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
local fn = vim.fn
|
||||
local api = vim.api
|
||||
local keymap = vim.keymap
|
||||
local lsp = vim.lsp
|
||||
|
||||
local utils = require("utils")
|
||||
@ -7,19 +8,27 @@ local utils = require("utils")
|
||||
local custom_attach = function(client, bufnr)
|
||||
-- Mappings.
|
||||
local opts = { silent = true, buffer = bufnr }
|
||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
|
||||
vim.keymap.set("n", "<C-]>", vim.lsp.buf.definition, opts)
|
||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
|
||||
vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, opts)
|
||||
vim.keymap.set("n", "<space>wa", vim.lsp.buf.add_workspace_folder, opts)
|
||||
vim.keymap.set("n", "<space>wr", vim.lsp.buf.remove_workspace_folder, opts)
|
||||
vim.keymap.set("n", "<space>wl", function() inspect(vim.lsp.buf.list_workspace_folders()) end, opts)
|
||||
vim.keymap.set("n", "<space>rn", vim.lsp.buf.rename, opts)
|
||||
vim.keymap.set("n", "gr", vim.lsp.buf.references, opts)
|
||||
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts)
|
||||
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts)
|
||||
vim.keymap.set("n", "<space>q", function() vim.diagnostic.setqflist({open = true}) end, opts)
|
||||
vim.keymap.set("n", "<space>ca", vim.lsp.buf.code_action, opts)
|
||||
keymap.set("n", "gd", vim.lsp.buf.definition, opts)
|
||||
keymap.set("n", "<C-]>", vim.lsp.buf.definition, opts)
|
||||
keymap.set("n", "K", vim.lsp.buf.hover, opts)
|
||||
keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, opts)
|
||||
keymap.set("n", "<space>rn", vim.lsp.buf.rename, opts)
|
||||
keymap.set("n", "gr", vim.lsp.buf.references, opts)
|
||||
keymap.set("n", "[d", vim.diagnostic.goto_prev, opts)
|
||||
keymap.set("n", "]d", vim.diagnostic.goto_next, opts)
|
||||
keymap.set("n", "<space>q", function() vim.diagnostic.setqflist({open = true}) end, opts)
|
||||
keymap.set("n", "<space>ca", vim.lsp.buf.code_action, opts)
|
||||
keymap.set("n", "<space>wa", vim.lsp.buf.add_workspace_folder, opts)
|
||||
keymap.set("n", "<space>wr", vim.lsp.buf.remove_workspace_folder, opts)
|
||||
keymap.set("n", "<space>wl", function() inspect(vim.lsp.buf.list_workspace_folders()) end, opts)
|
||||
|
||||
-- Set some key bindings conditional on server capabilities
|
||||
if client.resolved_capabilities.document_formatting then
|
||||
keymap.set("n", "<space>f", vim.lsp.buf.formatting_sync, opts)
|
||||
end
|
||||
if client.resolved_capabilities.document_range_formatting then
|
||||
keymap.set("x", "<space>f", vim.lsp.buf.range_formatting, opts)
|
||||
end
|
||||
|
||||
api.nvim_create_autocmd("CursorHold", {
|
||||
buffer=bufnr,
|
||||
@ -47,14 +56,6 @@ local custom_attach = function(client, bufnr)
|
||||
end
|
||||
})
|
||||
|
||||
-- Set some key bindings conditional on server capabilities
|
||||
if client.resolved_capabilities.document_formatting then
|
||||
vim.keymap.set("n", "<space>f", vim.lsp.buf.formatting_sync, opts)
|
||||
end
|
||||
if client.resolved_capabilities.document_range_formatting then
|
||||
vim.keymap.set("x", "<space>f", vim.lsp.buf.range_formatting, opts)
|
||||
end
|
||||
|
||||
-- The blow command will highlight the current variable and its usages in the buffer.
|
||||
if client.resolved_capabilities.document_highlight then
|
||||
vim.cmd([[
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
local keymap = vim.keymap
|
||||
local nvim_tree = require("nvim-tree")
|
||||
|
||||
nvim_tree.setup({
|
||||
@ -113,7 +114,7 @@ nvim_tree.setup({
|
||||
},
|
||||
})
|
||||
|
||||
vim.keymap.set('n', '<space>s', function()
|
||||
keymap.set('n', '<space>s', function()
|
||||
return require('nvim-tree').toggle(false, true)
|
||||
end,
|
||||
{ noremap = true, silent = true, desc = "toggle nvim-tree"})
|
||||
{ silent = true, desc = "toggle nvim-tree" })
|
||||
|
||||
@ -2,6 +2,7 @@ vim.cmd [[hi HopNextKey cterm=bold ctermfg=176 gui=bold guibg=#ff00ff guifg=#fff
|
||||
vim.cmd [[hi HopNextKey1 cterm=bold ctermfg=176 gui=bold guibg=#ff00ff guifg=#ffffff]]
|
||||
vim.cmd [[hi HopNextKey2 cterm=bold ctermfg=176 gui=bold guibg=#ff00ff guifg=#ffffff]]
|
||||
|
||||
local keymap = vim.keymap
|
||||
local hop = require "hop"
|
||||
hop.setup({
|
||||
case_insensitive = true,
|
||||
@ -9,7 +10,7 @@ hop.setup({
|
||||
quit_key = "<Esc>",
|
||||
})
|
||||
|
||||
vim.keymap.set({ "n", "v", "o" }, "f", "", {
|
||||
keymap.set({ "n", "v", "o" }, "f", "", {
|
||||
silent = true,
|
||||
noremap = true,
|
||||
callback = function()
|
||||
|
||||
@ -1,11 +0,0 @@
|
||||
local keymap = vim.keymap
|
||||
|
||||
-- Go to the beginning and end of current line in insert mode quickly
|
||||
keymap.set('i', '<C-A>', '<HOME>')
|
||||
keymap.set('i', '<C-E>', '<END>')
|
||||
|
||||
-- Go to beginning of command in command-line mode
|
||||
keymap.set('c', '<C-A>', '<HOME>')
|
||||
|
||||
-- Delete the character to the right of the cursor
|
||||
keymap.set('i', '<C-D>', '<DEL>')
|
||||
Loading…
x
Reference in New Issue
Block a user