diff options
author | Hsieh Chin Fan <pham@topo.tw> | 2024-06-24 16:45:18 +0800 |
---|---|---|
committer | Hsieh Chin Fan <pham@topo.tw> | 2024-06-24 16:45:18 +0800 |
commit | 11863aa710ab0626eb76648d101854a481664a34 (patch) | |
tree | ed7d8331ceafbf8c5cc14304d0cd12e031eb2593 /vim/nvim/lua/mappings.lua | |
parent | 76c665e2b3c797c1b77e90337f5db1e77bf60a23 (diff) |
Update
Diffstat (limited to 'vim/nvim/lua/mappings.lua')
-rw-r--r-- | vim/nvim/lua/mappings.lua | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/vim/nvim/lua/mappings.lua b/vim/nvim/lua/mappings.lua deleted file mode 100644 index f6ef8c4..0000000 --- a/vim/nvim/lua/mappings.lua +++ /dev/null | |||
@@ -1,170 +0,0 @@ | |||
1 | -- require "nvchad.mappings" | ||
2 | |||
3 | -- add yours here | ||
4 | |||
5 | local map = vim.keymap.set | ||
6 | |||
7 | map("i", "jk", "<ESC>") | ||
8 | vim.cmd("command! W execute 'SudaWrite %'") | ||
9 | |||
10 | -- map({ "n", "i", "v" }, "<C-s>", "<cmd> w <cr>") | ||
11 | |||
12 | map("n", "<Esc>", "<cmd>noh<CR>", { desc = "general clear highlights" }) | ||
13 | |||
14 | -- map("n", "<C-c>", "<cmd>%y+<CR>", { desc = "file copy whole" }) | ||
15 | |||
16 | -- map("n", "<leader>n", "<cmd>set nu!<CR>", { desc = "toggle line number" }) | ||
17 | -- map("n", "<leader>rn", "<cmd>set rnu!<CR>", { desc = "toggle relative number" }) | ||
18 | map("n", "<leader>ch", "<cmd>NvCheatsheet<CR>", { desc = "toggle nvcheatsheet" }) | ||
19 | |||
20 | map("n", "<leader>F", function() | ||
21 | require("conform").format { lsp_fallback = true } | ||
22 | end, { desc = "format files" }) | ||
23 | |||
24 | -- global lsp mappings | ||
25 | map("n", "<leader>ds", vim.diagnostic.setloclist, { desc = "lsp diagnostic loclist" }) | ||
26 | |||
27 | -- tabufline | ||
28 | map("n", "<tab>", function() | ||
29 | require("nvchad.tabufline").next() | ||
30 | end, { desc = "buffer goto next" }) | ||
31 | |||
32 | map("n", "<S-tab>", function() | ||
33 | require("nvchad.tabufline").prev() | ||
34 | end, { desc = "buffer goto prev" }) | ||
35 | |||
36 | map("n", "<leader>x", function() | ||
37 | require("nvchad.tabufline").close_buffer() | ||
38 | end, { desc = "buffer close" }) | ||
39 | |||
40 | -- Comment | ||
41 | map("n", "<leader>/", "gcc", { desc = "comment toggle", remap = true }) | ||
42 | map("v", "<leader>/", "gc", { desc = "comment toggle", remap = true }) | ||
43 | |||
44 | -- nvimtree | ||
45 | map("n", "<C-n>", "<cmd>NvimTreeToggle<CR>", { desc = "nvimtree toggle window" }) | ||
46 | map("n", "<leader>nf", "<cmd>NvimTreeFocus<CR>", { desc = "nvimtree focus window" }) | ||
47 | |||
48 | -- telescope | ||
49 | map("n", "<leader>f", "<cmd>Telescope oldfiles<CR>", { desc = "telescope find oldfiles" }) | ||
50 | map("n", "<leader>b", "<cmd>Telescope buffers<CR>", { desc = "telescope find buffers" }) | ||
51 | map("n", "<leader>/", "<cmd>Telescope current_buffer_fuzzy_find<CR>", { desc = "telescope find in current buffer" }) | ||
52 | map("n", "<leader>sf", "<cmd>Telescope find_files<cr>", { desc = "telescope find files" }) | ||
53 | map("n", "<leader>sF", "<cmd>Telescope find_files follow=true no_ignore=true hidden=true<CR>", | ||
54 | { desc = "telescope find all files" }) | ||
55 | map("n", "<leader>sg", "<cmd>Telescope live_grep<CR>", { desc = "telescope live grep" }) | ||
56 | |||
57 | map("n", "<leader>gf", "<cmd>Telescope git_files<CR>", { desc = "telescope git files" }) | ||
58 | map("n", "<leader>sH", "<cmd>Telescope help_tags<CR>", { desc = "telescope help page" }) | ||
59 | map("n", "<leader>tt", ":Telescope ", { desc = "telescope help page" }) | ||
60 | map('n', '<leader>sk', "<cmd>Telescope keymaps<CR>", { desc = 'telescope keymaps' }) | ||
61 | map("n", "<leader>pt", "<cmd>Telescope terms<CR>", { desc = "telescope pick hidden term" }) | ||
62 | |||
63 | vim.keymap.set('n', '<leader>ss', function() | ||
64 | local current_filetype = vim.bo.filetype | ||
65 | local cwd = os.getenv("HOME") .. '/snippets/' .. current_filetype | ||
66 | require('telescope.builtin').find_files { | ||
67 | prompt_title = 'Select a snippet for ' .. current_filetype, | ||
68 | cwd = cwd, | ||
69 | attach_mappings = function(prompt_bufnr, map) | ||
70 | local insert_selected_snippet = function() | ||
71 | local file = require('telescope.actions.state').get_selected_entry()[1] | ||
72 | local snippet_content = vim.fn.readfile(cwd .. "/" .. file) | ||
73 | require('telescope.actions').close(prompt_bufnr) | ||
74 | vim.api.nvim_put(snippet_content, '', false, true) | ||
75 | end | ||
76 | |||
77 | map('i', '<CR>', insert_selected_snippet) | ||
78 | map('n', '<CR>', insert_selected_snippet) | ||
79 | |||
80 | return true | ||
81 | end, | ||
82 | } | ||
83 | end, { desc = '[S]earch [S]nippets' }) | ||
84 | |||
85 | vim.keymap.set('n', '<leader>sn', function() | ||
86 | vim.ui.input({ prompt = 'Snippet Name: ' }, function(snippet_path) | ||
87 | local current_filetype | ||
88 | local snippet | ||
89 | if string.find(snippet_path, "/") then | ||
90 | current_filetype = string.match(snippet_path, "^(.-)/") | ||
91 | snippet = string.match(snippet_path, "/(.-)$") | ||
92 | else | ||
93 | current_filetype = vim.bo.filetype | ||
94 | snippet = snippet_path | ||
95 | end | ||
96 | local dir = os.getenv("HOME") .. '/snippets/' .. current_filetype | ||
97 | local path = dir .. '/' .. snippet | ||
98 | vim.cmd("!mkdir -p" .. dir) | ||
99 | vim.cmd("e " .. path) | ||
100 | vim.cmd("set filetype=" .. current_filetype) | ||
101 | vim.cmd("set filetype?") | ||
102 | end) | ||
103 | end, { desc = "Create a new snippet" }) | ||
104 | |||
105 | |||
106 | -- map("n", "<leader>ma", "<cmd>Telescope marks<CR>", { desc = "telescope find marks" }) | ||
107 | -- map("n", "<leader>cm", "<cmd>Telescope git_commits<CR>", { desc = "telescope git commits" }) | ||
108 | -- map("n", "<leader>gt", "<cmd>Telescope git_status<CR>", { desc = "telescope git status" }) | ||
109 | -- map("n", "<leader>th", "<cmd>Telescope themes<CR>", { desc = "telescope nvchad themes" }) | ||
110 | |||
111 | -- terminal | ||
112 | -- map("t", "<C-x>", "<C-\\><C-N>", { desc = "terminal escape terminal mode" }) | ||
113 | |||
114 | -- new terminals | ||
115 | map("n", "<leader><leader>h", function() require("nvchad.term").new { pos = "sp" } end, | ||
116 | { desc = "terminal new horizontal term" }) | ||
117 | map("n", "<leader>v", function() require("nvchad.term").new { pos = "vsp" } end, | ||
118 | { desc = "terminal new vertical window" }) | ||
119 | -- toggleable | ||
120 | map({ "n", "t" }, "<A-v>", function() require("nvchad.term").toggle { pos = "vsp", id = "vtoggleTerm" } end, | ||
121 | { desc = "terminal toggleable vertical term" }) | ||
122 | map({ "n", "t" }, "<A-t>", function() require("nvchad.term").toggle { pos = "sp", id = "htoggleTerm" } end, | ||
123 | { desc = "terminal new horizontal term" }) | ||
124 | map({ "n", "t" }, "<A-i>", function() require("nvchad.term").toggle { pos = "float", id = "floatTerm" } end, | ||
125 | { desc = "terminal toggle floating term" }) | ||
126 | |||
127 | -- whichkey | ||
128 | map("n", "<leader>wK", "<cmd>WhichKey <CR>", { desc = "whichkey all keymaps" }) | ||
129 | |||
130 | map("n", "<leader>wk", function() | ||
131 | vim.cmd("WhichKey " .. vim.fn.input "WhichKey: ") | ||
132 | end, { desc = "whichkey query lookup" }) | ||
133 | |||
134 | -- blankline | ||
135 | map("n", "<leader>cc", function() | ||
136 | local config = { scope = {} } | ||
137 | config.scope.exclude = { language = {}, node_type = {} } | ||
138 | config.scope.include = { node_type = {} } | ||
139 | local node = require("ibl.scope").get(vim.api.nvim_get_current_buf(), config) | ||
140 | |||
141 | if node then | ||
142 | local start_row, _, end_row, _ = node:range() | ||
143 | if start_row ~= end_row then | ||
144 | vim.api.nvim_win_set_cursor(vim.api.nvim_get_current_win(), { start_row + 1, 0 }) | ||
145 | vim.api.nvim_feedkeys("_", "n", true) | ||
146 | end | ||
147 | end | ||
148 | end, { desc = "blankline jump to current context" }) | ||
149 | |||
150 | -- [[ Configure Obsidian.nvim ]] | ||
151 | map('n', "<leader>oo", ':Obsidian') | ||
152 | map('n', "<leader>ot", ':ObsidianTags<CR>') | ||
153 | map('n', "<leader>os", ':ObsidianSearch<CR>') | ||
154 | map('n', "<leader>oq", ':ObsidianQuickSwitch<CR>') | ||
155 | map('v', "<leader>on", ':ObsidianLinkNew<CR>') | ||
156 | |||
157 | -- vim.cmd("let g:mkdp_browser = 'surf'") | ||
158 | vim.cmd("let g:mkdp_browser = 'firefox'") | ||
159 | vim.g.mkdp_preview_options = { | ||
160 | mkit = { breaks = true }, | ||
161 | toc = { | ||
162 | containerClass = "toc", | ||
163 | format = 'function format(x, htmlencode) { return `<span>${htmlencode(x)}</span>`; }', | ||
164 | callback = "console.log('foo')", | ||
165 | } | ||
166 | } | ||
167 | |||
168 | -- [ Configure Hop ] | ||
169 | vim.keymap.set('n', "<space>", ':HopWord<CR>') | ||
170 | vim.keymap.set('n', '<C-.>', ':HopChar1<CR>') | ||