Vim是我们在Linux日常工作中不可或缺的文本编辑器。它强大的功能和高效的编辑方式可以极大提升工作效率。本文将全面解析Vim的各种操作指令,从基础操作到高级技巧。
Vim是一个模式化编辑器,理解不同模式是掌握Vim的关键:
i
进入)v
进入):
进入)指令 | 功能 |
---|---|
| 左移一个字符 |
| 下移一行 |
| 上移一行 |
| 右移一个字符 |
指令 | 功能 |
---|---|
| 移动到下一个单词开头 |
| 移动到上一个单词开头 |
| 移动到当前单词末尾 |
| 移动到下一个空白分隔词开头 |
| 移动到上一个空白分隔词开头 |
指令 | 功能 |
---|---|
| 移动到行首 |
| 移动到行首第一个非空白字符 |
| 移动到行尾 |
| 移动到文件第一行 |
| 移动到文件最后一行 |
| 跳转到第n行(如 |
指令 | 功能 |
---|---|
| 在光标前插入 |
| 在光标后插入 |
| 在行首插入 |
| 在行尾插入 |
| 在当前行下方新建一行 |
| 在当前行上方新建一行 |
| 删除当前字符 |
| 删除当前行 |
| 复制当前行 |
| 粘贴到光标后 |
| 粘贴到光标前 |
| 撤销上一步操作 |
| 重做 |
指令 | 功能 |
---|---|
| 修改从光标到单词结尾 |
| 修改引号内的内容 |
| 修改直到指定字符前的内容 |
| 向右缩进当前行 |
| 向左缩进当前行 |
| 当前行转为小写 |
| 当前行转为大写 |
指令 | 功能 |
---|---|
| 向前搜索pattern |
| 向后搜索pattern |
| 跳转到下一个匹配项 |
| 跳转到上一个匹配项 |
| 搜索当前光标下的单词 |
指令 | 功能 |
---|---|
| 替换当前行第一个old为new |
| 替换当前行所有old为new |
| 替换全文所有old为new |
| 替换全文所有old为new(需确认) |
指令 | 功能 |
---|---|
| 水平分割窗口(可指定文件) |
| 垂直分割窗口(可指定文件) |
| 在窗口间循环切换 |
| 切换到左/下/上/右窗口 |
| 关闭当前窗口 |
指令 | 功能 |
---|---|
| 新建标签页 |
| 切换到下一个标签页 |
| 切换到上一个标签页 |
| 移动当前标签页到第n位置 |
Vim有多个寄存器用于存储文本:
指令 | 功能 |
---|---|
| 复制当前行到寄存器a |
| 粘贴寄存器a的内容 |
| 复制到系统剪贴板 |
| 从系统剪贴板粘贴 |
指令 | 功能 |
---|---|
| 开始录制宏到寄存器a |
| 停止录制 |
| 执行寄存器a中的宏 |
| 重复执行上一次执行的宏 |
Vim的强大之处在于可以操作文本对象:
指令 | 功能 |
---|---|
| 删除当前单词 |
| 删除当前单词及空格 |
| 修改括号内的内容 |
| 复制XML/HTML标签内的内容 |
指令 | 功能 |
---|---|
| 删除所有包含pattern的行 |
| 删除所有不包含pattern的行 |
| 在10-20行行首添加#注释 |
指令 | 功能 |
---|---|
| 执行shell命令 |
| 插入命令输出到当前光标位置 |
| 保存只读文件(需要sudo权限) |
在~/.vimrc
中添加以下常用配置:
" 显示行号
set number
" 语法高亮
syntax on
" 自动缩进
set autoindent
" 显示命令
set showcmd
" 搜索时忽略大小写
set ignorecase
" 高亮搜索
set hlsearch
" 设置Tab为4个空格
set tabstop=4
set shiftwidth=4
set expandtab
" 启用鼠标支持
set mouse=a
vimtutor
:help
Vim的学习曲线虽然陡峭,但一旦掌握,它将为您带来前所未有的编辑效率。建议从基础指令开始,逐步掌握更高级的功能。记住,Vim的精髓在于"编辑思考",而不是单纯的按键记忆。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。