Vim 中 g 前缀命令的用法

Vim 中的 g 是一个多功能的前缀命令(Prefix Command),本身不单独使用,而是需要配合其他字符组成完整命令。它在 Vim 中主要有以下几种功能类型: – Ⅰ. 文件导航类 📍 命令 功能描述 gg 跳转到文件的第一行 G 跳转到文件最后一行(注意大写) 3G 跳转到第 3 行(数字可替换为指定行号) g; 回到最后修改的位置 g, 循环更早的修改位置 g0 移动到当前屏幕行的首字符(软行首) g^ 移动到当前屏幕行的非空白首字符 gm 移动到当前行中间位置 g+ 向后切换变更列表位置 g- 向前切换变更列表位置 – Ⅱ. 文本操作类 ✂️ 命令 功能描述 gu 将选中文本转为小写 gU 将选中文本转为大写 guu 当前行转小写 gUU 当前行转大写 g~ 切换选中文本的大小写 gq 折行格式化(保持段落宽度) gw 折行格式化(保留光标位置) g? 执行 ROT13 加密 – Ⅲ. 标识符相关 🔗 命令 功能描述 gd 跳转到局部定义(LSP 需要插件支持) gD 跳转到全局定义 gf 打开光标下的文件名路径 gF 打开文件名并跳转到指定行号(格式:file:12) – ...

July 7, 2023 · 1 min · 163 words

vim 选择自动复制

Gvim 实现鼠标选中后自动复制到系统剪切板 前置检查 首先确认你的GVim编译时包含clipboard特性 :version 查看结果中是否包含+clipboard(如果没有需要重新编译或更换版本) 方法一:设置剪贴板选项(推荐) 在vimrc中添加: " Windows系统 if has('win32') set clipboard=unnamed else " Linux/Mac系统 set clipboard=unnamedplus endif 方法二:使用鼠标映射 在vimrc中添加: " 自动复制选中文本到剪贴板 vnoremap <LeftRelease> "*y vnoremap <2-LeftRelease> <Nop> " 保留中键粘贴功能 " Mac系统需要特殊处理 if has('mac') set clipboard+=unnamed vnoremap <LeftRelease> "+y endif 方法三:使用自动命令 在vimrc中添加(适用于更复杂场景): augroup AutoYank autocmd! autocmd TextYankPost * if v:event.operator == 'y' && v:event.regname == '' | let @" = @* | endif augroup END 功能验证 重启GVim生效 进入可视模式(鼠标拖选或Shift+方向键) 选中文字后立即会在系统剪贴板中生效 注意事项 Windows和Linux使用不同剪贴板寄存器: Windows:"* Linux/Mac:"+ 可以通过:reg命令查看寄存器内容 或按<Ctrl+v>测试是否可以直接粘贴已选内容 如果需要进一步优化操作手感,可以配合以下设置: " 禁用Vim的默认选择方式 set mouse-=a set selectmode= " 设置Windows风格的选择逻辑 behave mswin source $VIMRUNTIME/mswin.vim 这些设置可以让GVim的鼠标操作更接近常规编辑器体验。 ...

1 min · 91 words