neovim/lua/keybindings.lua

36 lines
1.3 KiB
Lua

vim.g.mapleader = " "
vim.g.maplocalleader = " "
local map = vim.api.nvim_set_keymap
local keyset = vim.keymap.set
local coc_opt = {noremap = true, silent = true, expr = true, replace_keycodes = false}
local opt = {noremap = true, silent = true}
-- Autocomplete
function _G.check_back_space()
local col = vim.fn.col('.') - 1
return col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') ~= nil
end
-- 开启目录树
map('n', '<leader>to', ':NvimTreeOpen<CR>', opt)
-- 关闭目录树
map('n', '<leader>tc', ':NvimTreeClose<CR>', opt)
-- 开启coc补全
keyset("i", "<TAB>", 'coc#pum#visible() ? coc#pum#next(1) : v:lua.check_back_space() ? "<TAB>" : coc#refresh()', coc_opt)
keyset("i", "<S-TAB>", [[coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"]], coc_opt)
-- 搜索
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
-- 窗口切换
map('n', '<leader>1', ':BufferLineGoToBuffer 1<CR>', opt)
map('n', '<leader>2', ':BufferLineGoToBuffer 2<CR>', opt)
map('n', '<leader>3', ':BufferLineGoToBuffer 3<CR>', opt)
map('n', '<leader>4', ':BufferLineGoToBuffer 4<CR>', opt)
map('n', '<leader>5', ':BufferLineGoToBuffer 5<CR>', opt)