vim高级技巧集锦:提升vi编码效率

需积分: 13 0 下载量 85 浏览量 更新于2024-09-11 收藏 93KB DOC 举报
本文档是一份详尽的 Vim 编辑器技巧指南,主要针对已经有一定 Vim 使用基础的人群。Vim 是一个强大的命令行文本编辑器,它在程序员和系统管理员中广受欢迎,因其高效的工作流程和丰富的插件生态系统。以下是一些关键的 Vim 技巧: 1. **复制列**: - `%s [^ ] +$ &&`: 使用正则表达式复制每一行的最后一列,除了空格。这里的 `[^ ]` 表示所有非空格字符,`+$` 表示从行尾向前直到行结束。 2. **记忆与反向引用**: - `:s : 2: 1`: 这个例子展示了如何通过冒号操作符 `:` 来记忆模式,将行内的两个字段互换位置。 3. **非贪婪匹配与选项原子**: - `%s ^ { }pdf new pdf`: 删除字符串中的第一个 `pdf`,`{ }` 表示非贪婪匹配,尽可能少地匹配内容。 4. **可选原子的使用**: - `%s# <[zy] tbl [a-z] + ># L&amp;gc`: 这个技巧展示了如何使用可选原子 `#` 和 `[zy]`,匹配开头的可选字符,然后替换为小写形式。 5. **跨行操作**: - `%s < { } >`: 删除多行注释,`<` 和 `>` 用于跨越多行。 6. **特殊搜索模式**: - `/^joe.*fred.*bill/`: 匹配特定模式,如以 "joe" 开头且 "joe" 到 "fred" 之间至少有一个字符。 - `/^[A-J]\+/`: 搜索包含重复字母 A 到 J 的行。 7. **正则表达式应用**: - `/fred_.*end`: 多行搜索,匹配包含 "fred" 和 "end" 的行。 - `/fred\|joe`: 或者匹配 "fred" 或 "joe"。 8. **匹配特定结构**: - `/\<fred\>/i`: 区分大小写的独立单词 "fred"。 - `/\<\d\d\d\d\>`, `\D\d\d\d\d\D`, `\{4\}`: 匹配独立的四位数字的不同方式。 9. **复杂搜索**: - `/([^0-9]\|^\)%.*%;`: 查找不包含0-9数字或行首的百分号的内容。 - `/^\n\{3}/`: 匹配三行连续的空行。 10. **正则表达式组和重复**: - `/\(fred\).*\(joe\).*\2.*\1`: 匹配两个字符串重复出现的情况。 11. **视觉模式下的操作**: - `vmap//y/<C-R>"<CR>`: 映射可视模式下的搜索并粘贴当前选中的文本。 - `vmap<silent>//y/<C-R>=escape(@",'\\/.*$^~[]')<CR><CR>`: 包括空白字符的搜索和粘贴。 12. **`\zs` 和 `\ze` 命令**: - `/<\zs[^>]*">`: 这个例子展示了如何使用 `\zs` 和 `\ze` 控制搜索起始点和结束点。 这些技巧展示了 Vim 的强大功能和灵活性,熟练掌握它们可以显著提高编辑效率,尤其是在处理文本处理和编程任务时。记住,随着经验的增长,Vim 提供的命令和配置选项可以进一步扩展和自定义以适应个人偏好。