keybindings.lua 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. -- Mode
  2. -- normal_mode = "n",
  3. -- insert_mode = "i",
  4. -- visual_mode = "v",
  5. -- visual_block_mode = "x",
  6. -- term_mode = "t",
  7. -- command_mode = "c",
  8. -- leader key 为空
  9. vim.g.mapleader = " "
  10. vim.g.maplocalleader = " "
  11. -- MAC 设置alt 键
  12. alt_send_esc = true
  13. local opt = {
  14. noremap = true,
  15. silent = true
  16. }
  17. -- 本地变量
  18. local map = vim.api.nvim_set_keymap
  19. -- 取消 s 默认功能
  20. map("n", "s", "", opt)
  21. map("n", "sv", ":vsp<CR>", opt)
  22. map("n", "sh", ":sp<CR>", opt)
  23. map("n", "sc", "<C-w>c", opt)
  24. map("n", "so", "<C-w>o", opt)
  25. -- 切换窗口
  26. map("n", "<A-Right>", "<C-w>l", opt)
  27. map("n", "<A-Down>", "<C-w>j", opt)
  28. map("n", "<A-Up>", "<C-w>k", opt)
  29. map("n", "<A-Left>", "<C-w>h", opt)
  30. -- terminal 相关
  31. map("n", "<leader>t", ":sp | terminal<CR>", opt)
  32. -- 代码缩进
  33. map("v", "<", "<gv", opt)
  34. map("v", ">", ">gv", opt)
  35. map("v", "J", ":move '>+1<CR>gv-gv>'", opt)
  36. map("v", "K", ":move '<-2<CR>gv-gv>'", opt)
  37. -- 保存配置
  38. map("n", "<leader>w", ":w<CR>", opt)
  39. map("n", "<leader>wq", ":wqa!<CR>", opt)
  40. -- 退出
  41. map("n", "qq", ":q!<CR>", opt)
  42. map("n", "<leader>q", ":qa!<CR>", opt)
  43. -- 上下滚动浏览
  44. map("n", "<C-j>", "5j", opt)
  45. map("n", "<C-k>", "5k", opt)
  46. map("v", "<C-j>", "5j", opt)
  47. map("v", "<C-k>", "5k", opt)
  48. -- Telescope 查找文件
  49. -- 文件名查找
  50. map("n", "<leader>f", ":Telescope find_files<CR>", opt)
  51. -- 全局搜索 关键词key 查找
  52. map("n", "<leader>k", ":Telescope live_grep<CR>", opt)
  53. -- git 文件
  54. map("n", "<leader>g", ":Telescope git_files<CR>", opt)
  55. -- project
  56. map("n", "<leader>p", ":Telescope projects<CR>", opt)
  57. -- packer update
  58. map("n", "<leader>u", ":PackerUpdate<CR>", opt)
  59. -- 插件快捷键
  60. local pluginKeys = {}
  61. -- nvim-tree
  62. map("n", "<leader>e", ":NvimTreeToggle<CR>", opt)
  63. -- 列表快捷键
  64. pluginKeys.nvimTreeList = { -- 打开文件或文件夹
  65. {
  66. key = {"o", "<2-LeftMouse>"},
  67. action = "edit"
  68. }, {
  69. key = "<CR>",
  70. action = "system_open"
  71. }, -- v分屏打开文件
  72. {
  73. key = "v",
  74. action = "vsplit"
  75. }, -- h分屏打开文件
  76. {
  77. key = "h",
  78. action = "split"
  79. }, -- Ignore (node_modules)
  80. {
  81. key = "i",
  82. action = "toggle_ignored"
  83. }, -- Hide (dotfiles)
  84. {
  85. key = ".",
  86. action = "toggle_dotfiles"
  87. }, {
  88. key = "R",
  89. action = "refresh"
  90. }, -- 文件操作
  91. {
  92. key = "a",
  93. action = "create"
  94. }, {
  95. key = "d",
  96. action = "remove"
  97. }, {
  98. key = "r",
  99. action = "rename"
  100. }, {
  101. key = "x",
  102. action = "cut"
  103. }, {
  104. key = "c",
  105. action = "copy"
  106. }, {
  107. key = "p",
  108. action = "paste"
  109. }, {
  110. key = "y",
  111. action = "copy_name"
  112. }, {
  113. key = "Y",
  114. action = "copy_path"
  115. }, {
  116. key = "gy",
  117. action = "copy_absolute_path"
  118. }, {
  119. key = "I",
  120. action = "toggle_file_info"
  121. }, {
  122. key = "n",
  123. action = "tabnew"
  124. }, -- 进入下一级
  125. {
  126. key = {"]"},
  127. action = "cd"
  128. }, -- 进入上一级
  129. {
  130. key = {"["},
  131. action = "dir_up"
  132. }}
  133. return pluginKeys