diff --git a/home/nvim/default.nix b/home/nvim/default.nix index 4b88299..51cd097 100644 --- a/home/nvim/default.nix +++ b/home/nvim/default.nix @@ -45,6 +45,7 @@ python312Packages.python-lsp-server #JS/TS/Web + biome prettierd nodePackages.prettier @@ -93,7 +94,6 @@ which-key-nvim fzf-lua snacks-nvim - markview-nvim { name = "lazydev.nvim"; path = lazydev-nvim; @@ -223,8 +223,6 @@ yaml toml dockerfile - markdown - markdown_inline ])).dependencies; }; in diff --git a/home/nvim/lua/config/keymaps.lua b/home/nvim/lua/config/keymaps.lua index b003157..29f4b12 100644 --- a/home/nvim/lua/config/keymaps.lua +++ b/home/nvim/lua/config/keymaps.lua @@ -5,40 +5,31 @@ local map = vim.keymap.set local opts = { noremap = true, silent = true } --- === VSCode-like buffer/tab navigation === +-- === VSCode-like buffer/tab navigation === map("n", "", "bnext", { desc = "Next buffer (like VSCode)" }) map("n", "", "bprevious", { desc = "Previous buffer (like VSCode)" }) --- === Close buffer like Ctrl + W in VSCode === -vim.keymap.set("n", "", "BufferLinePickClose", { desc = "Close buffer (BufferLine)" }) +-- === Vscode-like Close buffer navigation === +vim.keymap.set("n", "", function() + local current = vim.api.nvim_get_current_buf() + local buffers = vim.fn.getbufinfo({buflisted = 1}) -vim.keymap.set("n", "", function() - if vim.bo.buftype == "terminal" then - vim.cmd("vsplit | terminal") - else - vim.cmd("botright split | terminal") - end -end, { desc = "Split terminal" }) + local next_buf = nil + for i, buf in ipairs(buffers) do + if buf.bufnr == current then + next_buf = buffers[i + 1] or buffers[i - 1] + break + end + end --- 在终端模式下的快捷键 -vim.keymap.set("t", "", "h", { desc = "Go to left window" }) -vim.keymap.set("t", "", "j", { desc = "Go to lower window" }) -vim.keymap.set("t", "", "k", { desc = "Go to upper window" }) -vim.keymap.set("t", "", "l", { desc = "Go to right window" }) + if next_buf then + vim.api.nvim_set_current_buf(next_buf.bufnr) + end + vim.api.nvim_buf_delete(current, { force = true }) +end, { desc = "Close current buffer like VSCode" }) + +-- XDG Open vim.keymap.set("n", "xo", function() vim.fn.jobstart({ "xdg-open", vim.fn.expand("%:p") }, { detach = true }) end, { desc = "使用系统默认应用程序打开当前文件" }) - --- === Markdown priview === -vim.keymap.set("n", "mp", "Markview", { - desc = "Toggle Markview Inline Preview", -}) --- 开启对比预览 -vim.keymap.set("n", "mv", "Markview splitToggle", { - desc = "Toggle Markview Split Preview", -}) --- 关闭对比预览 -vim.keymap.set("n", "mc", "Markview splitClose", { - desc = "Close Markview Split Preview", -}) diff --git a/home/nvim/lua/config/options.lua b/home/nvim/lua/config/options.lua index 4ac5c1a..41892f8 100644 --- a/home/nvim/lua/config/options.lua +++ b/home/nvim/lua/config/options.lua @@ -1,4 +1,16 @@ -- Options are automatically loaded before lazy.nvim startup -- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua -- Add any additional options here -vim.g.autoformat = false \ No newline at end of file + +-- Disable autoformat +vim.g.autoformat = false +-- Let terminal just one +vim.g.root_spec = { "cwd" } +-- Disable markdown views +vim.api.nvim_create_autocmd("FileType", { + pattern = "markdown", + callback = function() + vim.opt_local.conceallevel = 0 + vim.opt_local.concealcursor = "" + end, +}) diff --git a/home/nvim/lua/plugins/format.lua b/home/nvim/lua/plugins/format.lua index a07089e..93e89a4 100644 --- a/home/nvim/lua/plugins/format.lua +++ b/home/nvim/lua/plugins/format.lua @@ -34,11 +34,11 @@ return { -- Python opts.formatters_by_ft.python = { "black", "ruff_format" } -- JS/TS/Web - opts.formatters_by_ft.javascript = { "prettierd" } - opts.formatters_by_ft.typescript = { "prettierd" } - opts.formatters_by_ft.javascriptreact = { "prettierd" } - opts.formatters_by_ft.typescriptreact = { "prettierd" } - opts.formatters_by_ft.vue = { "prettierd" } + opts.formatters_by_ft.javascript = { "biome" } + opts.formatters_by_ft.typescript = { "biome" } + opts.formatters_by_ft.javascriptreact = { "biome" } + opts.formatters_by_ft.typescriptreact = { "biome" } + opts.formatters_by_ft.vue = { "biome" } -- JSON opts.formatters_by_ft.json = { "jq" } -- YAML diff --git a/home/nvim/lua/plugins/markview.lua b/home/nvim/lua/plugins/markview.lua deleted file mode 100644 index 68815de..0000000 --- a/home/nvim/lua/plugins/markview.lua +++ /dev/null @@ -1,19 +0,0 @@ -return { - "OXY2DEV/markview.nvim", - name = "markview.nvim", - lazy = false, - dependencies = { - "nvim-treesitter/nvim-treesitter", - "nvim-tree/nvim-web-devicons", - }, - config = function() - require("markview").setup({ - markdown = { enable = true }, - latex = { - enable = true, - inline = { enable = true }, - block = { enable = true }, - }, - }) - end, -}