NeoVim配置

NeoVim 配置 配置文件 在~/.config/nvim中创建init.lua,并将配置文件内容输入即可。NeoVim 会自动从 GitHub 上下载插件并安装运行。 注意,基于 lazy 的插件需求 NeoVim 版本大于 0.8.0。 配置文件如下: -- ============================== -- 基础设置 -- ============================== vim.g.mapleader = " " -- 设置 <leader> 键为空格 vim.o.number = true -- 显示行号 vim.o.relativenumber = true -- 相对行号 vim.o.expandtab = true -- Tab 转换为空格 vim.o.tabstop = 4 -- 一个 Tab 显示为 4 空格 vim.o.shiftwidth = 4 -- 自动缩进 4 空格 vim.o.softtabstop = 4 -- 编辑时 Tab = 4 空格 vim.o.smartindent = true -- 智能缩进 vim.o.wrap = false -- 不自动换行 vim.o.ignorecase = true -- 搜索忽略大小写 vim.o.smartcase = true -- 如果有大写,则大小写敏感 vim.o.termguicolors = true -- 开启真彩色 vim.o.cursorline = true -- 高亮当前行 -- ============================== -- 插件管理(lazy.nvim) -- ============================== local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.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) require("lazy").setup({ -- 主题 { "ellisonleao/gruvbox.nvim", priority = 1000, config = true }, -- 状态栏 { "nvim-lualine/lualine.nvim", dependencies = { "nvim-tree/nvim-web-devicons" }, config = function() require("lualine").setup { options = { theme = "gruvbox" } } 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>", { desc = "切换文件树" }) end }, -- 模糊搜索 { "nvim-telescope/telescope.nvim", tag = "0.1.6", dependencies = { "nvim-lua/plenary.nvim" }, config = function() local builtin = require("telescope.builtin") vim.keymap.set("n", "<leader>ff", builtin.find_files, { desc = "查找文件" }) vim.keymap.set("n", "<leader>fg", builtin.live_grep, { desc = "搜索内容" }) vim.keymap.set("n", "<leader>fb", builtin.buffers, { desc = "切换缓冲区" }) end }, -- 语法高亮 { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", config = function() require("nvim-treesitter.configs").setup { ensure_installed = { "lua", "python", "cpp", "bash", "markdown" }, highlight = { enable = true }, } end }, }) -- ============================== -- 主题设置 -- ============================== vim.cmd.colorscheme("gruvbox") -- ============================== -- 快捷键增强 -- ============================== -- 保存 & 退出 vim.keymap.set("n", "<leader>w", ":w<CR>", { desc = "保存文件" }) vim.keymap.set("n", "<leader>q", ":q<CR>", { desc = "退出文件" }) -- 快速窗口移动 vim.keymap.set("n", "<C-h>", "<C-w>h", { desc = "左窗口" }) vim.keymap.set("n", "<C-l>", "<C-w>l", { desc = "右窗口" }) vim.keymap.set("n", "<C-j>", "<C-w>j", { desc = "下窗口" }) vim.keymap.set("n", "<C-k>", "<C-w>k", { desc = "上窗口" }) 详细说明 未完待续。

2025年8月20日 · 2 分钟 · RanFR

用户缓存清理脚本与自动清理定时任务配置

用户缓存清理脚本与自动清理定时任务配置 今天发现 512GB 的磁盘已经使用 400 多 GB 了,表示疑惑。使用 Ubuntu 下的磁盘管理工具查看了下(baobab),发现.cache文件夹占用了 80 多 GB,最大的占用是vscode-cpptools文件夹,其次是uv和pip,推测这部分是下载的 python 包缓存。 占用太大了,不得不清理,但是又不希望最近的一些内容被清理(避免再次缓存),因此让大模型生成了一个 bash 脚本,清理文件夹内容,同时只清理 30 天以上未访问的文件,避免近期多次访问的文件重复缓存。记录一下。 脚本内容(基于 Bash) 定期清理~/.cache超过 30 天没有访问的缓存的脚本。 #!/bin/bash # 自动清理 ~/.cache 中超过 30 天未使用的文件 CACHE_DIR="$HOME/.cache" echo "清理 $CACHE_DIR 中超过 30 天未访问的缓存..." # 使用 find 删除最近 30 天未访问的文件和文件夹 find "$CACHE_DIR" -type f -atime +30 -print -delete find "$CACHE_DIR" -type d -empty -delete echo "清理完成!" 使用方法 1. 保存脚本 mkdir ~/.local/bin/bash && cd ~/.local/bin/bash nvim ~/.local/bin/bash/clean_cache.bash 将自动清理的脚本代码粘贴进去,保存并退出。 ...

2025年8月18日 · 1 分钟 · RanFR

网络配置

网络配置 Git Git 的网络配置包括基于 http 协议和 ssh 协议,两者有不同的配置方法。 1. http 协议 通过git config命令进行。假设代理地址为http://proxy.exmaple.com:8080,配置命令如下: git config --global http.proxy http://proxy.example.com:8080 2. ssh 协议 SSH 配置稍微复杂一点,通常通过ssh-agent转发 SSH 密钥,或者通过设置代理服务器使用。最常见的方法是通过ProxyCommand配置来设置代理。 a. 使用ssh-agent转发 SSH 密钥 首先,启动ssh-agent并添加 SSH 密钥: eval $(ssh-agent -s) 然后在 Git 配置中在代理主机。 b. 配置.ssh/config文件使用代理 在~/.ssh/config文件中,配置以下内容: Host github.com Hostname github.com User git ProxyCommand nc -X connect -x proxy.example.com:8080 %h %p ProxyCommand使用nc(netcat)工具通过 HTTP/SOCKS 代理连接到 Git 服务器。-X connect表示使用 HTTP 代理,可以将connect替换为5或者4,分别表示使用 SOCKET5 和 SOCKET4 代理。-x proxy.example.com:8080指定代理地址和端口。 ...

2025年8月17日 · 1 分钟 · RanFR