vim命令记录
前言
本文是关于学习实验楼Vim 基础入门以及平时使用的一些记录笔记。
常用命令
| 键值 | 说明 |
|---|---|
| h | 左 |
| l | 右 |
| j | 下 |
| k | 上 |
| w | 移动到下一个单词 |
| b | 移动到上一个单词 |
| a/i | 插入 |
| I | 行首插入 |
| A | 行末插入 |
| o | 在当前行后插入一个新行 |
| O | 在当前行前插入一个新行 |
| cw | 替换光标所在位置后到一个单词结尾的字符 |
| : | 进入命令行 |
| / | 搜索,输入n查找下一个内容,输入N查找上一个内容 |
| ? | 向前搜索输入的单词 |
| shift+zz | 保存退出vim |
| ~ | 将游标所在位置的字母进行大小写转换 |
删除
| 键值 | 说明 |
|---|---|
| x | 删除游标所在的字符 |
| X | 删除游标所在前一个字符 |
| delete | 同x |
| dd | 删除整行 |
| dw | 删除一个单词 |
| d$ 或 D | 删除至行尾 |
| d^ 或 d0 | 删除至行首 |
| dG | 删除到文档结尾处 |
| d1G | 删至文档首部 |
重复执行上一次命令
输入一个命令后,再输入 . 可以实现对上一个命令的重复。
例如:输入x,删除一个字符,如果紧接着输入一个.,再会继续执行一次删除。
执行指定次数相同命令
普通模式下输入N <command>,N表示重复的次数
例如:
10x,表示删除10个连续的字符
10dd,表示删除10行文本
d2w和2dw,执行的内容相同,都是删除两个单词
跳转
| 键值 | 说明 |
|---|---|
| nG 或 ngg | 游标移动到第n行 |
| gg | 移动到第一行 |
| G | 移动到最后一行 |
执行Ctrl+o快速回到上一次跳转前光标所在位置。
行内跳转
| 键值 | 说明 |
|---|---|
| w | 到下一个单词开头 |
| e | 到当前单词结尾 |
| b | 到前一个单词的开头 |
| ge | 到前一个单词的结尾 |
| 0 或 ^ | 到行头 |
| $ | 到行尾 |
| f<字母> | 向后搜索<字母>并跳转大第一个匹配的位置 |
| F<字母> | 向前搜索<字母>并跳转到第一个匹配的位置 |
| t<字母> | 向后搜索<字母>并跳转到第一个匹配位置之前一个字母 |
| T<字母> | 向后搜索<字母>并跳转到第一个匹配位置之后的一个字母 |
复制及粘贴文本
| 键值 | 说明 |
|---|---|
| yy | 复制光标所在的一行 |
| nyy | 复制光标所在的一行至往下的n行 |
| y^ 或 y0 | 复制光标到行首内容 |
| y$ | 复制光标到行尾 |
| yw | 复制光标所在处的单词 |
| y2w | 复制光标所在处的后两个单词 |
| yG | 复制至文本末尾 |
| y1G | 复制至文本开头 |
| p | 粘贴至光标所在的下一行 |
| P | 粘贴至光标所在的上一行 |
命令行模式
| 键值 | 说明 |
|---|---|
| :q! | 强制退出,不保存 |
| :q | 退出 |
| :wq! | 强制保存并退出 |
| :wq | 保存并退出 |
| :x | 保存并退出 |
| :w <文件路径> | 另存为 |
| :saveas <文件路径> | 另存为 |
| :set nu | 显示行号 |
| :set nonu | 隐藏行号 |
替换和撤销
| 键值 | 说明 |
|---|---|
| r<替换字母> | 将游标所在的字母替换为指定字母 |
| R | 连续替换,知道按下Esc |
| cc | 替换整行,即删除游标所在行,并进入插入模式 |
| cw | 替换一个单词,即删除一个单词,并进入插入模式 |
| C | 替换游标以后至行末 |
| ~ | 反转游标所再字母大小写 |
| {n}u | 撤销一次或n次操作 |
| U | 撤销当前行的所有修改 |
| ctl+r | redo,即撤销undo操作 |
全局替换
按Esc,然后输入:
- 将文件中的所有old字符串替换为new
:%s/old/new/g
- 将当前行的old替换为new
:s/old/new/
- 将第2行到10行之间的old替换为new
:2,10/old/new/g
缩进
| 键值 | 说明 |
|---|---|
| >> | 整行向右缩进 |
| << | 整行向左缩进 |
| :set shiftwidth=8 | 设置缩进和回退的字符数, :set shiftwidth? 查看设置的字符个数 |
| :ce | 命令行模式下,设置本行内容居中 |
| :ri | 命令行模式下,设置本行内容靠右 |
| :le | 命令行模式下,设置本行内容靠左 |
搜索
| 键值 | 说明 |
|---|---|
| / | 搜索,输入n查找下一个内容,输入N查找上一个内容 |
| ? | 向前搜索输入的单词 |
| \* | 普通模式下输入*,寻找游标所在处的单词 |
| \# | 普通模式下,输入#,向上查找游标所在处的单词 |
| g\* | 同*,部分符合该单词即可 |
| g\# | 同#,部分符合该单词即可 |
多文件编辑
vim 1.txt 2.txt
同时编辑两个文件,默认打开第一个文件;
输入:n进入下一个文件,输入:n!即使当前文件未保存也强制切换到另外一个文件;
输入:N进入上一个文件,输入:N!即使当前文件未保存也强制切换到另外一个文件;
进入vim后打开新文件
| 键值 | 说明 |
|---|---|
| :e 3.txt | 打开新文件3.txt |
| :e# | 回到前一个文件 |
| :ls | 列出以前编辑过的文档 |
| :b 2.txt(或者编号) | 可以直接进入文件2.txt编辑 |
| :bd 2.txt(或者编号) | 可以删除以前编译过的列表中的文件项目 |
| :e! 4.txt | 新打开文件4.txt,放弃正在编辑的文件(不保存) |
| :f | 显示正在编辑的文件名 |
| :f new.txt | 改变正在编辑的文件名字为new.txt(复制并重命名) |
恢复文件
对于filename.swp文件,可以使用 vim filename,然后命令行模式输入:recover filename,用swp文件恢复为保存的编辑内容。
或者使用vim -r filename来恢复。
可视模式
| 键值 | 说明 |
|---|---|
| v | 进入字符选择模式,移动光标选择内容,再按一次v取消选择。 |
| shift+v | 横向进入可视模式进行行选择,上下移动光标来选择多行,再次输入shift+v退出选择 |
| ctrl+v | 纵向进入区域选择,再按一次ctrl+v取消选择 |
可视模式下,输入d 删除选取区域的内容;
可视模式下,输入y复制选取区域内容;
可是模式下,输入>>选中的行整体缩进;
视窗操作
再vim中,输入:new (或者ctrl+w)打开新的视窗
命令行模式下输入 :sp 1.txt 打开新的水平分屏视窗来编辑 1.txt
命令行模式下输入 :vsp 2.txt 打开新的垂直分屏视窗来编辑 2.txt
普通模式下 Ctrl+w s 将当前窗口分割成两个水平的窗口
普通模式下 Ctrl+w v 将当前窗口分割成两个垂直的窗口
普通模式下 Ctrl+w q 即 :q 结束分割出来的视窗。如果在新视窗中有输入需要使用强制符!即:q!
普通模式下 Ctrl+w o 打开一个视窗并且隐藏之前的所有视窗
普通模式下 Ctrl+w j 移至下面视窗
普通模式下 Ctrl+w k 移至上面视窗
普通模式下 Ctrl+w h 移至左边视窗
普通模式下 Ctrl+w l 移至右边视窗
普通模式下 Ctrl+w J 将当前视窗移至下面
普通模式下 Ctrl+w K 将当前视窗移至上面
普通模式下 Ctrl+w H 将当前视窗移至左边
普通模式下 Ctrl+w L 将当前视窗移至右边
普通模式下 Ctrl+w - 减小视窗的高度
普通模式下 Ctrl+w + 增加视窗的高度
文件加密
使用
vim -x filename
创建加密文件,创建时候设置密码
在vim执行外部命令
在命令行模式输入!,可以执行外部的shell命令
:!ls 用于显示当前目录内容
:w filename 将正在编辑的文件另存为filename
在vim中查看帮忙
普通模式下按F1打开vim帮助文档
命令行模式下输入:h <命令>查看命令的帮助
命令行模式输入:ver 查看版本和参数
147

被折叠的 条评论
为什么被折叠?



