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工具