diff options
Diffstat (limited to 'vim/lua')
-rw-r--r-- | vim/lua/mappings.lua | 150 |
1 files changed, 93 insertions, 57 deletions
diff --git a/vim/lua/mappings.lua b/vim/lua/mappings.lua index c417ea4..6aa81f6 100644 --- a/vim/lua/mappings.lua +++ b/vim/lua/mappings.lua | |||
@@ -25,11 +25,19 @@ vim.keymap.set("n", "<C-n>", "<cmd>NvimTreeToggle<CR>", { desc = "nvimtree toggl | |||
25 | -- telescope | 25 | -- telescope |
26 | vim.keymap.set("n", "<leader>f", "<cmd>Telescope oldfiles<CR>", { desc = "telescope find oldfiles" }) | 26 | vim.keymap.set("n", "<leader>f", "<cmd>Telescope oldfiles<CR>", { desc = "telescope find oldfiles" }) |
27 | vim.keymap.set("n", "<leader>b", "<cmd>Telescope buffers<CR>", { desc = "telescope find buffers" }) | 27 | vim.keymap.set("n", "<leader>b", "<cmd>Telescope buffers<CR>", { desc = "telescope find buffers" }) |
28 | vim.keymap.set("n", "<leader>/", "<cmd>Telescope current_buffer_fuzzy_find<CR>", | 28 | vim.keymap.set( |
29 | { desc = "telescope find in current buffer" }) | 29 | "n", |
30 | "<leader>/", | ||
31 | "<cmd>Telescope current_buffer_fuzzy_find<CR>", | ||
32 | { desc = "telescope find in current buffer" } | ||
33 | ) | ||
30 | vim.keymap.set("n", "<leader>sf", "<cmd>Telescope find_files<cr>", { desc = "telescope find files" }) | 34 | vim.keymap.set("n", "<leader>sf", "<cmd>Telescope find_files<cr>", { desc = "telescope find files" }) |
31 | vim.keymap.set("n", "<leader>sF", "<cmd>Telescope find_files follow=true no_ignore=true hidden=true<CR>", | 35 | vim.keymap.set( |
32 | { desc = "telescope find all files" }) | 36 | "n", |
37 | "<leader>sF", | ||
38 | "<cmd>Telescope find_files follow=true no_ignore=true hidden=true<CR>", | ||
39 | { desc = "telescope find all files" } | ||
40 | ) | ||
33 | vim.keymap.set("n", "<leader>sg", "<cmd>Telescope live_grep<CR>", { desc = "telescope live grep" }) | 41 | vim.keymap.set("n", "<leader>sg", "<cmd>Telescope live_grep<CR>", { desc = "telescope live grep" }) |
34 | 42 | ||
35 | vim.keymap.set("n", "<leader>gf", "<cmd>Telescope git_files<CR>", { desc = "telescope git files" }) | 43 | vim.keymap.set("n", "<leader>gf", "<cmd>Telescope git_files<CR>", { desc = "telescope git files" }) |
@@ -37,30 +45,30 @@ vim.keymap.set("n", "<leader>sH", "<cmd>Telescope help_tags<CR>", { desc = "tele | |||
37 | vim.keymap.set("n", "<leader>sm", "<cmd>Telescope marks<CR>", { desc = "telescope marks" }) | 45 | vim.keymap.set("n", "<leader>sm", "<cmd>Telescope marks<CR>", { desc = "telescope marks" }) |
38 | vim.keymap.set("n", "<leader>sj", "<cmd>Telescope jumplist<CR>", { desc = "telescope marks" }) | 46 | vim.keymap.set("n", "<leader>sj", "<cmd>Telescope jumplist<CR>", { desc = "telescope marks" }) |
39 | vim.keymap.set("n", "<leader>tt", "<cmd>Telescope<CR>", { desc = "telescope help page" }) | 47 | vim.keymap.set("n", "<leader>tt", "<cmd>Telescope<CR>", { desc = "telescope help page" }) |
40 | vim.keymap.set('n', '<leader>sk', "<cmd>Telescope keymaps<CR>", { desc = 'telescope keymaps' }) | 48 | vim.keymap.set("n", "<leader>sk", "<cmd>Telescope keymaps<CR>", { desc = "telescope keymaps" }) |
41 | vim.keymap.set("n", "<leader>pt", "<cmd>Telescope terms<CR>", { desc = "telescope pick hidden term" }) | 49 | vim.keymap.set("n", "<leader>pt", "<cmd>Telescope terms<CR>", { desc = "telescope pick hidden term" }) |
42 | 50 | ||
43 | vim.keymap.set('n', '<leader>ss', function() | 51 | vim.keymap.set("n", "<leader>ss", function() |
44 | local current_filetype = vim.bo.filetype | 52 | local current_filetype = vim.bo.filetype |
45 | local cwd = os.getenv("HOME") .. '/snippets' | 53 | local cwd = os.getenv("HOME") .. "/snippets" |
46 | require('telescope.builtin').find_files { | 54 | require("telescope.builtin").find_files({ |
47 | prompt_title = 'Press <C-T> to edit a snippet', | 55 | prompt_title = "Press <C-T> to edit a snippet", |
48 | default_text = current_filetype .. "_", | 56 | default_text = current_filetype .. "_", |
49 | cwd = cwd, | 57 | cwd = cwd, |
50 | attach_mappings = function(prompt_bufnr, map) | 58 | attach_mappings = function(prompt_bufnr, map) |
51 | local get_prompt_or_entry = function() | 59 | local get_prompt_or_entry = function() |
52 | local file_list = require('telescope.actions.state').get_selected_entry() | 60 | local file_list = require("telescope.actions.state").get_selected_entry() |
53 | if file_list then | 61 | if file_list then |
54 | return file_list[1] | 62 | return file_list[1] |
55 | else | 63 | else |
56 | local current_picker = require('telescope.actions.state').get_current_picker(prompt_bufnr) | 64 | local current_picker = require("telescope.actions.state").get_current_picker(prompt_bufnr) |
57 | return current_picker:_get_prompt() | 65 | return current_picker:_get_prompt() |
58 | end | 66 | end |
59 | end | 67 | end |
60 | 68 | ||
61 | local edit_snippet = function() | 69 | local edit_snippet = function() |
62 | local file = get_prompt_or_entry() | 70 | local file = get_prompt_or_entry() |
63 | require('telescope.actions').close(prompt_bufnr) | 71 | require("telescope.actions").close(prompt_bufnr) |
64 | local prefix_filetype = string.match(file, "([^_]+)") | 72 | local prefix_filetype = string.match(file, "([^_]+)") |
65 | vim.cmd(":e " .. cwd .. "/" .. file) | 73 | vim.cmd(":e " .. cwd .. "/" .. file) |
66 | vim.bo.filetype = prefix_filetype | 74 | vim.bo.filetype = prefix_filetype |
@@ -72,42 +80,41 @@ vim.keymap.set('n', '<leader>ss', function() | |||
72 | local path = cwd .. "/" .. file | 80 | local path = cwd .. "/" .. file |
73 | if vim.fn.filereadable(path) ~= 0 then | 81 | if vim.fn.filereadable(path) ~= 0 then |
74 | local snippet_content = vim.fn.readfile(path) | 82 | local snippet_content = vim.fn.readfile(path) |
75 | require('telescope.actions').close(prompt_bufnr) | 83 | require("telescope.actions").close(prompt_bufnr) |
76 | vim.fn.setreg('"', snippet_content) | 84 | vim.fn.setreg('"', snippet_content) |
77 | print('Snippet saved to register') | 85 | print("Snippet saved to register") |
78 | else | 86 | else |
79 | edit_snippet() | 87 | edit_snippet() |
80 | end | 88 | end |
81 | end | 89 | end |
82 | 90 | ||
83 | map('i', '<CR>', insert_selected_snippet) | 91 | map("i", "<CR>", insert_selected_snippet) |
84 | map('i', '<C-T>', edit_snippet) | 92 | map("i", "<C-T>", edit_snippet) |
85 | map('n', '<CR>', insert_selected_snippet) | 93 | map("n", "<CR>", insert_selected_snippet) |
86 | 94 | ||
87 | return true | 95 | return true |
88 | end, | 96 | end, |
89 | } | 97 | }) |
90 | end, { desc = '[S]earch [S]nippets' }) | 98 | end, { desc = "[S]earch [S]nippets" }) |
91 | 99 | ||
92 | vim.keymap.set('n', '<leader>sd', function() | 100 | vim.keymap.set("n", "<leader>sd", function() |
93 | require('telescope.builtin').oldfiles { | 101 | require("telescope.builtin").oldfiles({ |
94 | prompt_title = 'CD to', | 102 | prompt_title = "CD to", |
95 | attach_mappings = function(prompt_bufnr, map) | 103 | attach_mappings = function(prompt_bufnr, map) |
96 | local cd_prompt = function() | 104 | local cd_prompt = function() |
97 | local file = require('telescope.actions.state').get_selected_entry()[1] | 105 | local file = require("telescope.actions.state").get_selected_entry()[1] |
98 | local path = string.match(file, "(.*[/\\])") | 106 | local path = string.match(file, "(.*[/\\])") |
99 | require('telescope.actions').close(prompt_bufnr) | 107 | require("telescope.actions").close(prompt_bufnr) |
100 | vim.api.nvim_feedkeys(":cd " .. path, 'n', true) | 108 | vim.api.nvim_feedkeys(":cd " .. path, "n", true) |
101 | end | 109 | end |
102 | 110 | ||
103 | map('i', '<CR>', cd_prompt) | 111 | map("i", "<CR>", cd_prompt) |
104 | map('n', '<CR>', cd_prompt) | 112 | map("n", "<CR>", cd_prompt) |
105 | 113 | ||
106 | return true | 114 | return true |
107 | end, | 115 | end, |
108 | } | 116 | }) |
109 | end, { desc = 'Search Directory' }) | 117 | end, { desc = "Search Directory" }) |
110 | |||
111 | 118 | ||
112 | -- map("n", "<leader>ma", "<cmd>Telescope marks<CR>", { desc = "telescope find marks" }) | 119 | -- map("n", "<leader>ma", "<cmd>Telescope marks<CR>", { desc = "telescope find marks" }) |
113 | -- map("n", "<leader>cm", "<cmd>Telescope git_commits<CR>", { desc = "telescope git commits" }) | 120 | -- map("n", "<leader>cm", "<cmd>Telescope git_commits<CR>", { desc = "telescope git commits" }) |
@@ -117,26 +124,31 @@ end, { desc = 'Search Directory' }) | |||
117 | -- map("t", "<C-x>", "<C-\\><C-N>", { desc = "terminal escape terminal mode" }) | 124 | -- map("t", "<C-x>", "<C-\\><C-N>", { desc = "terminal escape terminal mode" }) |
118 | 125 | ||
119 | -- new terminals | 126 | -- new terminals |
120 | vim.keymap.set("n", "<leader><leader>h", function() require("nvchad.term").new { pos = "sp" } end, | 127 | vim.keymap.set("n", "<leader><leader>h", function() |
121 | { desc = "terminal new horizontal term" }) | 128 | require("nvchad.term").new({ pos = "sp" }) |
122 | vim.keymap.set("n", "<leader>v", function() require("nvchad.term").new { pos = "vsp" } end, | 129 | end, { desc = "terminal new horizontal term" }) |
123 | { desc = "terminal new vertical window" }) | 130 | vim.keymap.set("n", "<leader>v", function() |
131 | require("nvchad.term").new({ pos = "vsp" }) | ||
132 | end, { desc = "terminal new vertical window" }) | ||
124 | -- toggleable | 133 | -- toggleable |
125 | vim.keymap.set({ "n", "t" }, "<A-v>", function() require("nvchad.term").toggle { pos = "vsp", id = "vtoggleTerm" } end, | 134 | vim.keymap.set({ "n", "t" }, "<A-v>", function() |
126 | { desc = "terminal toggleable vertical term" }) | 135 | require("nvchad.term").toggle({ pos = "vsp", id = "vtoggleTerm" }) |
136 | end, { desc = "terminal toggleable vertical term" }) | ||
127 | vim.keymap.set("t", "<C-x>", "<C-\\><C-N>", { desc = "terminal escape terminal mode" }) | 137 | vim.keymap.set("t", "<C-x>", "<C-\\><C-N>", { desc = "terminal escape terminal mode" }) |
128 | vim.keymap.set({ "t" }, "<A-e>", "<C-\\><C-N><C-W>|<C-W>_i", { desc = "terminal toggleable vertical term" }) | 138 | vim.keymap.set({ "t" }, "<A-e>", "<C-\\><C-N><C-W>|<C-W>_i", { desc = "terminal toggleable vertical term" }) |
129 | vim.keymap.set({ "n", "t" }, "<A-t>", function() require("nvchad.term").toggle { pos = "sp", id = "htoggleTerm" } end, | 139 | vim.keymap.set({ "n", "t" }, "<A-t>", function() |
130 | { desc = "terminal new horizontal term" }) | 140 | require("nvchad.term").toggle({ pos = "sp", id = "htoggleTerm" }) |
131 | vim.keymap.set({ "n", "t" }, "<A-i>", function() require("nvchad.term").toggle { pos = "float", id = "floatTerm" } end, | 141 | end, { desc = "terminal new horizontal term" }) |
132 | { desc = "terminal toggle floating term" }) | 142 | vim.keymap.set({ "n", "t" }, "<A-i>", function() |
143 | require("nvchad.term").toggle({ pos = "float", id = "floatTerm" }) | ||
144 | end, { desc = "terminal toggle floating term" }) | ||
133 | vim.keymap.set("n", "<leader>th", "<cmd>Telescope themes<CR>", { desc = "telescope nvchad themes" }) | 145 | vim.keymap.set("n", "<leader>th", "<cmd>Telescope themes<CR>", { desc = "telescope nvchad themes" }) |
134 | 146 | ||
135 | -- whichkey | 147 | -- whichkey |
136 | vim.keymap.set("n", "<leader>wK", "<cmd>WhichKey <CR>", { desc = "whichkey all keymaps" }) | 148 | vim.keymap.set("n", "<leader>wK", "<cmd>WhichKey <CR>", { desc = "whichkey all keymaps" }) |
137 | 149 | ||
138 | vim.keymap.set("n", "<leader>wk", function() | 150 | vim.keymap.set("n", "<leader>wk", function() |
139 | vim.cmd("WhichKey " .. vim.fn.input "WhichKey: ") | 151 | vim.cmd("WhichKey " .. vim.fn.input("WhichKey: ")) |
140 | end, { desc = "whichkey query lookup" }) | 152 | end, { desc = "whichkey query lookup" }) |
141 | 153 | ||
142 | -- blankline | 154 | -- blankline |
@@ -161,21 +173,45 @@ vim.g.mkdp_preview_options = { | |||
161 | mkit = { breaks = true }, | 173 | mkit = { breaks = true }, |
162 | toc = { | 174 | toc = { |
163 | containerClass = "toc", | 175 | containerClass = "toc", |
164 | format = 'function format(x, htmlencode) { return `<span>${htmlencode(x)}</span>`; }', | 176 | format = "function format(x, htmlencode) { return `<span>${htmlencode(x)}</span>`; }", |
165 | callback = "console.log('foo')", | 177 | callback = "console.log('foo')", |
178 | }, | ||
166 | } | 179 | } |
167 | } | ||
168 | |||
169 | -- [ Configure Hop ] | ||
170 | vim.keymap.set('n', "<space>", ':HopWord<CR>') | ||
171 | vim.keymap.set('n', '<C-.>', ':HopChar1<CR>') | ||
172 | |||
173 | -- [ Configure vim-surround ] | ||
174 | vim.cmd('vmap s S') | ||
175 | |||
176 | -- [ Aerial ]"" "<cmd>AerialNext<CR>", {}) | ||
177 | vim.keymap.set("n", "gL", "<cmd>Telescope aerial<CR>") | ||
178 | vim.keymap.set("n", "gl", function() require("aerial").toggle({ direction = "left" }) end) | ||
179 | 180 | ||
180 | --[ TrunZen ] | 181 | -- [ Configure Hop ] |
181 | vim.keymap.set('n', '<leader>z', ':TZAtaraxis<CR>') | 182 | vim.keymap.set("n", "<space>", ":HopWord<CR>") |
183 | vim.keymap.set("n", "<C-.>", ":HopChar1<CR>") | ||
184 | |||
185 | -- [ Configure vim-surround ] | ||
186 | vim.cmd("vmap s S") | ||
187 | |||
188 | -- [ Aerial ]"" "<cmd>AerialNext<CR>", {}) | ||
189 | vim.keymap.set("n", "gL", "<cmd>Telescope aerial<CR>") | ||
190 | vim.keymap.set("n", "gl", function() | ||
191 | require("aerial").toggle({ direction = "left" }) | ||
192 | end) | ||
193 | |||
194 | --[ TrunZen ] | ||
195 | vim.keymap.set("n", "<leader>z", ":TZAtaraxis<CR>") | ||
196 | |||
197 | vim.keymap.set("v", "<leader><leader>tz", function() | ||
198 | vim.cmd('norm o^zt"ty') | ||
199 | local translated_text = vim.fn.system("trans -t zh-TW -b", vim.fn.getreg("t")) | ||
200 | local lines = vim.split(translated_text, "\n") | ||
201 | table.remove(lines) | ||
202 | |||
203 | local new_buf = vim.api.nvim_create_buf(false, true) | ||
204 | vim.api.nvim_buf_set_lines(new_buf, 0, -1, true, lines) | ||
205 | |||
206 | vim.api.nvim_open_win(new_buf, true, { | ||
207 | relative = "cursor", | ||
208 | width = 80, | ||
209 | height = #lines, | ||
210 | row = #lines, | ||
211 | col = 0, | ||
212 | }) | ||
213 | |||
214 | vim.cmd("setl nocul nonu nornu") | ||
215 | vim.cmd("hi ActiveWindow guibg=#2a5a6a guifg=White | setl winhighlight=Normal:ActiveWindow") | ||
216 | vim.cmd(':%s/\\%x1b\\[[0-9;]*m//g') | ||
217 | end, { desc = "Description" }) | ||