Vim 是一款功能强大的文本编辑器,广泛应用于编程、配置文件编辑以及日常文本处理。Vim 在其命令行模式下提供了丰富的操作命令,这些命令能够大幅提升编辑效率。以下是 Vim 中常用的命令及操作的总结,覆盖了 Vim 中的基本操作、查找、替换、文件操作、窗口管理、宏操作等多个方面。
一、Vim 模式
Vim 的操作方式基于多种模式,最常见的包括:
-
普通模式(Normal Mode):用于浏览、删除、复制和粘贴等操作。
-
插入模式(Insert Mode):用于文本的输入。
-
命令模式(Command-line Mode):用于输入执行命令,如保存、退出等。
-
可视模式(Visual Mode):用于文本选择和操作。
二、基本操作命令
1. 启动和退出
-
启动 Vim:
vim filename或vi filename。 -
退出 Vim:
-
:q:退出当前文件(如果文件已保存)。 -
:q!:强制退出当前文件,不保存更改。 -
:wq或ZZ:保存并退出。 -
:x:保存并退出(类似:wq)。 -
:w filename:保存文件为新名称。
-
2. 模式切换
-
从普通模式切换到插入模式:
i(当前光标位置),I(行首),a(光标后),A(行尾)。 -
从插入模式切换到普通模式:
Esc。 -
从普通模式切换到可视模式:
v(字符选择),V(行选择),Ctrl+v(块选择)。
3. 移动光标
1. 按字符、单词、行和页面移动
-
左、右、上、下移动:
h、j、k、l。 -
移动单词:
w(跳到下一个单词的开头),b(跳到上一个单词的开头),e(跳到单词的结尾)。 -
移动到行首或行尾:
0(行首),$(行尾)。 -
移动到特定行:
<number>G(跳转到第number行),gg(跳到文件开头),G(跳到文件末尾)。
2. 页面操作
-
向上/向下滚动页面:
Ctrl+u(向上),Ctrl+d(向下)。 -
跳转到屏幕顶部/底部:
H(顶部),M(中部),L(底部)。
4. 文本插入和删除
-
删除单个字符:
x(删除光标处字符)。 -
删除单词:
dw(删除光标所在单词),daw(删除光标所在单词及前后的空格)。 -
删除行:
dd(删除当前行)。 -
删除直到行尾:
D(删除光标到行尾的内容)。 -
删除到指定字符:
d<char>(删除到指定字符<char>为止)。 -
删除到指定位置:
d<number>G(删除到指定行)。
5. 剪切、复制和粘贴
-
剪切:
d+ 移动命令(例如dw或dd)。 -
复制:
y(复制) + 移动命令(例如yw或yy)。 -
粘贴:
p(光标后粘贴),P(光标前粘贴)。
6. 撤销与重做
- 撤销:
u(撤销上一个操作),Ctrl+r(重做)。
三、查找和替换
1. 查找
-
查找字符串:
/pattern(查找下一个匹配pattern的字符串),?pattern(向上查找)。 -
查找下一个:
n(查找下一个匹配的字符串)。 -
查找上一个:
N(查找上一个匹配的字符串)。
2. 替换
-
替换当前行的第一个匹配项:
:s/old/new/。 -
替换当前行所有匹配项:
:s/old/new/g。 -
替换全文件范围:
:%s/old/new/g。 -
在替换时确认:
:%s/old/new/gc(c表示每次替换时询问确认)。
3. 高级查找和替换
-
使用正则表达式:
/pattern和:s/old/new/g支持基本的正则表达式,可以使用如\d、\w等。 -
查找并替换区间:
:'<,'>s/old/new/g(区间替换)。
四、文件操作
1. 打开和切换文件
-
打开新文件:
:e filename。 -
保存文件:
:w。 -
保存并退出:
:wq。 -
切换到最近编辑的文件:
:e #。 -
切换文件标签:
:bnext(下一个文件),:bprev(上一个文件)。
2. 文件浏览
-
查看文件信息:
:ls(列出缓冲区中的所有文件),:file(显示当前文件的路径和状态)。 -
切换文件:
:b <buffer number>(切换到指定编号的缓冲区)。
五、窗口和标签页管理
1. 分屏显示
-
垂直分屏:
:vsp filename(垂直分屏打开文件)。 -
水平分屏:
:sp filename(水平分屏打开文件)。 -
切换分屏:
Ctrl+w+h(左侧分屏),Ctrl+w+j(下侧分屏),Ctrl+w+k(上侧分屏),Ctrl+w+l(右侧分屏)。 -
关闭分屏:
:q(关闭当前分屏)。
2. 标签页管理
-
新建标签页:
:tabnew。 -
切换标签页:
:tabnext(下一个标签页),:tabprev(上一个标签页)。 -
关闭标签页:
:tabclose。
六、宏操作
1. 录制宏
-
开始录制宏:
q<char>(开始录制到寄存器char)。 -
执行宏:
@char(执行寄存器char中的宏命令)。 -
以指定次数重复执行宏:
<number>@char。
2. 退出宏录制
- 停止录制宏:
q(停止录制并退出)。
七、文本操作和格式化
1. 缩进
-
增加缩进:
>>(增加当前行缩进),3>>(增加接下来的三行缩进)。 -
减少缩进:
<<(减少当前行缩进),3<<(减少接下来的三行缩进)。
2. 复制与移动
-
复制到系统剪贴板:
"+y(复制),"+p(粘贴)。 -
剪切到系统剪贴板:
"+d(剪切)。 -
从剪贴板粘贴:
"+p(粘贴内容)。
3. 自动缩进
-
启用自动缩进:
:set autoindent,:set smartindent,:set tabstop=4(设置制表符宽度为4)。 -
禁用自动缩进:
:set noautoindent。
八、Vim 高级操作
1. 跳转和标记
-
设置标记:
m<char>(设置标记char,例如ma)。 -
跳转到标记:
'<char>(跳转到标记位置)。
2. 自定义快捷键
-
映射快捷键:
:map(映射一个快捷键),nmap(普通模式映射),imap(插入模式映射)。 -
示例:
:nmap <F5> :w<CR>(将 F5 键映射为保存文件)。
九、Vim 插件管理
1. 使用插件管理器
-
使用 Vundle 安装插件:
-
安装插件管理器:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim -
配置插件:在
.vimrc文件中添加插件,例如:Plugin 'tpope/vim-fugitive' -
安装插件:
:PluginInstall
-
2. 使用其他插件管理器
-
vim-plug:Plug 'junegunn/fzf.vim'。 -
安装插件:
PlugInstall。
总结
Vim 提供了非常丰富的命令和操作方式,掌握这些命令可以极大地提高编辑效率。对于日常的编辑任务,了解基本的移动、复制、粘贴、查找和替换命令是必不可少的;而对于高级用户,掌握窗口管理、宏录制以及插件管理等功能,将能更好地发挥 Vim 的强大功能。
当然也可传输到本地用typora或者其他txt工具