aboutsummaryrefslogtreecommitdiffhomepage
path: root/vim/lua
diff options
context:
space:
mode:
Diffstat (limited to 'vim/lua')
-rw-r--r--vim/lua/mappings.lua150
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
26vim.keymap.set("n", "<leader>f", "<cmd>Telescope oldfiles<CR>", { desc = "telescope find oldfiles" }) 26vim.keymap.set("n", "<leader>f", "<cmd>Telescope oldfiles<CR>", { desc = "telescope find oldfiles" })
27vim.keymap.set("n", "<leader>b", "<cmd>Telescope buffers<CR>", { desc = "telescope find buffers" }) 27vim.keymap.set("n", "<leader>b", "<cmd>Telescope buffers<CR>", { desc = "telescope find buffers" })
28vim.keymap.set("n", "<leader>/", "<cmd>Telescope current_buffer_fuzzy_find<CR>", 28vim.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)
30vim.keymap.set("n", "<leader>sf", "<cmd>Telescope find_files<cr>", { desc = "telescope find files" }) 34vim.keymap.set("n", "<leader>sf", "<cmd>Telescope find_files<cr>", { desc = "telescope find files" })
31vim.keymap.set("n", "<leader>sF", "<cmd>Telescope find_files follow=true no_ignore=true hidden=true<CR>", 35vim.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)
33vim.keymap.set("n", "<leader>sg", "<cmd>Telescope live_grep<CR>", { desc = "telescope live grep" }) 41vim.keymap.set("n", "<leader>sg", "<cmd>Telescope live_grep<CR>", { desc = "telescope live grep" })
34 42
35vim.keymap.set("n", "<leader>gf", "<cmd>Telescope git_files<CR>", { desc = "telescope git files" }) 43vim.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
37vim.keymap.set("n", "<leader>sm", "<cmd>Telescope marks<CR>", { desc = "telescope marks" }) 45vim.keymap.set("n", "<leader>sm", "<cmd>Telescope marks<CR>", { desc = "telescope marks" })
38vim.keymap.set("n", "<leader>sj", "<cmd>Telescope jumplist<CR>", { desc = "telescope marks" }) 46vim.keymap.set("n", "<leader>sj", "<cmd>Telescope jumplist<CR>", { desc = "telescope marks" })
39vim.keymap.set("n", "<leader>tt", "<cmd>Telescope<CR>", { desc = "telescope help page" }) 47vim.keymap.set("n", "<leader>tt", "<cmd>Telescope<CR>", { desc = "telescope help page" })
40vim.keymap.set('n', '<leader>sk', "<cmd>Telescope keymaps<CR>", { desc = 'telescope keymaps' }) 48vim.keymap.set("n", "<leader>sk", "<cmd>Telescope keymaps<CR>", { desc = "telescope keymaps" })
41vim.keymap.set("n", "<leader>pt", "<cmd>Telescope terms<CR>", { desc = "telescope pick hidden term" }) 49vim.keymap.set("n", "<leader>pt", "<cmd>Telescope terms<CR>", { desc = "telescope pick hidden term" })
42 50
43vim.keymap.set('n', '<leader>ss', function() 51vim.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 })
90end, { desc = '[S]earch [S]nippets' }) 98end, { desc = "[S]earch [S]nippets" })
91 99
92vim.keymap.set('n', '<leader>sd', function() 100vim.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 })
109end, { desc = 'Search Directory' }) 117end, { 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
120vim.keymap.set("n", "<leader><leader>h", function() require("nvchad.term").new { pos = "sp" } end, 127vim.keymap.set("n", "<leader><leader>h", function()
121 { desc = "terminal new horizontal term" }) 128 require("nvchad.term").new({ pos = "sp" })
122vim.keymap.set("n", "<leader>v", function() require("nvchad.term").new { pos = "vsp" } end, 129end, { desc = "terminal new horizontal term" })
123 { desc = "terminal new vertical window" }) 130vim.keymap.set("n", "<leader>v", function()
131 require("nvchad.term").new({ pos = "vsp" })
132end, { desc = "terminal new vertical window" })
124-- toggleable 133-- toggleable
125vim.keymap.set({ "n", "t" }, "<A-v>", function() require("nvchad.term").toggle { pos = "vsp", id = "vtoggleTerm" } end, 134vim.keymap.set({ "n", "t" }, "<A-v>", function()
126 { desc = "terminal toggleable vertical term" }) 135 require("nvchad.term").toggle({ pos = "vsp", id = "vtoggleTerm" })
136end, { desc = "terminal toggleable vertical term" })
127vim.keymap.set("t", "<C-x>", "<C-\\><C-N>", { desc = "terminal escape terminal mode" }) 137vim.keymap.set("t", "<C-x>", "<C-\\><C-N>", { desc = "terminal escape terminal mode" })
128vim.keymap.set({ "t" }, "<A-e>", "<C-\\><C-N><C-W>|<C-W>_i", { desc = "terminal toggleable vertical term" }) 138vim.keymap.set({ "t" }, "<A-e>", "<C-\\><C-N><C-W>|<C-W>_i", { desc = "terminal toggleable vertical term" })
129vim.keymap.set({ "n", "t" }, "<A-t>", function() require("nvchad.term").toggle { pos = "sp", id = "htoggleTerm" } end, 139vim.keymap.set({ "n", "t" }, "<A-t>", function()
130 { desc = "terminal new horizontal term" }) 140 require("nvchad.term").toggle({ pos = "sp", id = "htoggleTerm" })
131vim.keymap.set({ "n", "t" }, "<A-i>", function() require("nvchad.term").toggle { pos = "float", id = "floatTerm" } end, 141end, { desc = "terminal new horizontal term" })
132 { desc = "terminal toggle floating term" }) 142vim.keymap.set({ "n", "t" }, "<A-i>", function()
143 require("nvchad.term").toggle({ pos = "float", id = "floatTerm" })
144end, { desc = "terminal toggle floating term" })
133vim.keymap.set("n", "<leader>th", "<cmd>Telescope themes<CR>", { desc = "telescope nvchad themes" }) 145vim.keymap.set("n", "<leader>th", "<cmd>Telescope themes<CR>", { desc = "telescope nvchad themes" })
134 146
135-- whichkey 147-- whichkey
136vim.keymap.set("n", "<leader>wK", "<cmd>WhichKey <CR>", { desc = "whichkey all keymaps" }) 148vim.keymap.set("n", "<leader>wK", "<cmd>WhichKey <CR>", { desc = "whichkey all keymaps" })
137 149
138vim.keymap.set("n", "<leader>wk", function() 150vim.keymap.set("n", "<leader>wk", function()
139 vim.cmd("WhichKey " .. vim.fn.input "WhichKey: ") 151 vim.cmd("WhichKey " .. vim.fn.input("WhichKey: "))
140end, { desc = "whichkey query lookup" }) 152end, { 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 ]
170vim.keymap.set('n', "<space>", ':HopWord<CR>')
171vim.keymap.set('n', '<C-.>', ':HopChar1<CR>')
172
173-- [ Configure vim-surround ]
174vim.cmd('vmap s S')
175
176-- [ Aerial ]"" "<cmd>AerialNext<CR>", {})
177vim.keymap.set("n", "gL", "<cmd>Telescope aerial<CR>")
178vim.keymap.set("n", "gl", function() require("aerial").toggle({ direction = "left" }) end)
179 180
180--[ TrunZen ] 181 -- [ Configure Hop ]
181vim.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" })