1. tmux 高效配置 (~/.tmux.conf)
此配置集成了 TPM 插件管理器、快捷键优化以及鼠标支持,确保你在分屏操作时如丝般顺滑。
# --- 基础设置 ---
set -g default-terminal "screen-256color"
set -g history-limit 10000
set -s escape-time 0 # 解决 Neovim 模式切换延迟
# --- 前缀键修改 ---
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# --- 鼠标与面板操作 ---
set -g mouse on
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
unbind '"'
unbind %
# --- 快速切换面板 (Alt + 方向键) ---
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# --- 插件管理 (TPM) ---
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'jimeh/tmux-themepack'
set -g @themepack 'powerline/block/blue'
# 初始化 TPM (确保这行在文件最底部)
run '~/.tmux/plugins/tpm/tpm'
2. Neovim 0.11 终极配置 (~/.config/nvim/init.lua)
此配置专门适配了 0.11 版本的 API 变更,通过“双向探测”技术彻底消除了 Treesitter 模块缺失和 LSP 废弃警告。
-- ==========================================
-- 1. 基础设置
-- ==========================================
vim.g.mapleader = " "
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.termguicolors = true
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.clipboard = "unnamedplus"
-- ==========================================
-- 2. Lazy.nvim 引导 (适配 0.11 uv 命名)
-- ==========================================
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
local uv = vim.uv or vim.loop
if not uv.fs_stat(lazypath) then
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
end
vim.opt.rtp:prepend(lazypath)
-- ==========================================
-- 3. 插件配置列表
-- ==========================================
require("lazy").setup({
-- 【主题】
{ "folke/tokyonight.nvim", lazy = false, priority = 1000, config = function() vim.cmd.colorscheme("tokyonight-moon") end },
-- 【LSP:适配 0.11 架构,杜绝警告】
{
"neovim/nvim-lspconfig",
dependencies = { "williamboman/mason.nvim", "williamboman/mason-lspconfig.nvim", "hrsh7th/cmp-nvim-lsp" },
config = function()
require("mason").setup()
local servers = { "clangd", "pyright", "ts_ls", "jdtls" }
require("mason-lspconfig").setup({ ensure_installed = servers })
for _, server in ipairs(servers) do
-- 优先尝试 0.11 原生 enable 接口
if vim.lsp.config then
vim.lsp.enable(server)
else
-- 降级方案:手动加载具体配置,避开 lspconfig 主模块警告
local ok, cfg = pcall(require, "lspconfig.configs." .. server)
if not ok then cfg = require("lspconfig")[server] end
if cfg and cfg.setup then
cfg.setup({ capabilities = require('cmp_nvim_lsp').default_capabilities() })
end
end
end
end
},
-- 【补全引擎】
{
"hrsh7th/nvim-cmp",
dependencies = { "L3MON4D3/LuaSnip", "saadparwaiz1/cmp_luasnip", "hrsh7th/cmp-nvim-lsp", "hrsh7th/cmp-buffer", "hrsh7th/cmp-path" },
config = function()
local cmp = require("cmp")
cmp.setup({
snippet = { expand = function(args) require("luasnip").lsp_expand(args.body) end },
mapping = cmp.mapping.preset.insert({
['<CR>'] = cmp.mapping.confirm({ select = true }),
['<Tab>'] = cmp.mapping.select_next_item(),
['<S-Tab>'] = cmp.mapping.select_prev_item(),
}),
sources = cmp.config.sources({{ name = 'nvim_lsp' }, { name = 'luasnip' }}, {{ name = 'buffer' }, { name = 'path' }})
})
end
},
-- 【Treesitter:多版本兼容探测】
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
config = function()
local ok_new, ts = pcall(require, "nvim-treesitter")
local ok_old, old_cfg = pcall(require, "nvim-treesitter.configs")
local setup_obj = ok_old and old_cfg or (ok_new and ts or nil)
if setup_obj and setup_obj.setup then
setup_obj.setup({
ensure_installed = { "c", "cpp", "python", "javascript", "java", "lua", "vim", "vimdoc" },
highlight = { enable = true },
indent = { enable = true },
})
end
end
},
-- 【文件树】
{
"nvim-tree/nvim-tree.lua",
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
require("nvim-tree").setup()
vim.keymap.set('n', '<leader>e', ':NvimTreeToggle<CR>')
end
}
})
-- ==========================================
-- 4. 核心快捷键 (LSP)
-- ==========================================
local map = vim.keymap.set
map('n', 'gd', vim.lsp.buf.definition)
map('n', 'K', vim.lsp.buf.hover)
map('n', '<leader>rn', vim.lsp.buf.rename)
map('n', '<leader>f', function() vim.lsp.buf.format { async = true } end)
3. Claude Code CLI (AI 增强)
将 AI 直接嵌入终端,与 tmux 配合使用。
-
安装:
npm install -g @anthropic-ai/claude-code -
Workflow:在 tmux 的右侧面板运行
claude,左侧运行nvim。 -
优势:它可以读取你的
init.lua或项目源码,直接在终端里给出修改建议。
你的“一分钟”提效操作表
| 动作 | 快捷键 | 结果 |
|---|---|---|
| 左右分屏 |
Ctrl-a + ` |
` |
| 切换面板 |
Alt + 方向键
|
无需前缀,光标自由穿梭 |
| 跳转定义 | gd |
秒看第三方库或项目源码 |
| 查看文档 |
K (Shift+k) |
浮窗显示函数用法,告别浏览器 |
| 打开文件树 |
空格 + e
|
侧边栏预览项目结构 |
最后的部署检查
如果你在执行过程中遇到任何阻碍,请对照以下三点:
-
权限:如果保存
init.lua报错,执行sudo chown -R $USER:$USER ~/.config/nvim。 - 字体:为了让图标(文件树的小图标、状态栏箭头)不乱码,请在你的终端设置(如 Terminal 或 iTerm2)中选择 Nerd Font。
-
LSP 连接:输入
:LspInfo。如果连接数为 0,检查你的项目根目录是否有配置文件(如.git文件夹或CMakeLists.txt)。