目录
一、vim介绍
vim是从vi发展出来 ,第一个版本由布莱姆·米勒在1991年发布 ,它基于VIM许可证,兼容GPL
二、vim的三种模式
1、编辑模式的基本操作
功能类型 | 操作键 | 功能描述 |
---|---|---|
移动光标 | h | 向左 |
j | 向下 | |
k | 向上 | |
l | 向右 | |
以单词为单位移动 | w | 移至下一个单词的词首 |
e | 跳至当前或先一个单词的词尾 | |
b | 跳至当前或前一个单词的词首 | |
行内跳转 | 0 | 表示行首,绝对行首 |
^ | 表示行首的第一个非空白字符 | |
$ | 表示绝对行尾 | |
行间跳转 | G | 跳转至这个文件的最后一行 |
nG | n为数字,表示跳转至第n行 | |
gg | 跳转至这个文件第一行,相当于1G | |
翻屏 | Ctrl+f | 向下翻一屏 |
Ctrl+b | 向上翻一屏 | |
Ctrl+d | 向下翻半屏 | |
Ctrl+u | 向上翻半屏 | |
删除单个字符 | x | 删除光标所在处的后单个字符 |
X | 删除光标所在处的前单个字符 | |
删除行 | dd | 删除当前光标所在行 |
ndd | n为数字,删除包括当前光标所在行内的n行 | |
复制 | yy | 复制当前光标处整行 |
nyy | n为数字,复制包括当前光标所在行内的n行 | |
y1G | 复制光标所在行到第一行的所有数据 | |
yG | 复制光标所在行到最后一行的所有数据 | |
y0 | 复制光标所在的那个字符到该行行首的所有数据 | |
y$ | 复制光标所在的那个字符到该行行尾的所有数据 | |
粘贴 | p | 粘贴到光标处下一行,如果复制内容为非整行,则粘贴至光标所字符的后面 |
P | 粘贴到光标处上一行,如果复制内容为非整行,则粘贴至光标所字符的前面 | |
撤销 | u | 只消除上一次可多次使用 |
Ctrl+r | 撤销最近一次撤销操作 | |
查找 | n | 向下查找 |
N | 向上查找 | |
f# | 同行内跳转下一个匹配#的字符 |
2、输入模式
快捷键 | 功能描述 |
---|---|
i | 在当前光标所在字符的前面 |
a | 在当前光标所在字符的后面 |
o | 在当前光标所在行的下方,新建一行 |
I | 在当前所在行的行首,转为输入模式 |
A | 在当前所在行的行尾 |
O | 在当前光标所在行的上方,新建一行 |
R | 替换模式,可以替换多个字符 |
r | 替换单个字符 |
如需回到编辑模式则使用Esc
3、末行模式
快捷键 | 功能描述 |
---|---|
: | 从编辑模式转为末行模式 |
:w | 保存 |
:w! | 强制保存,不过到底能不能写入,和文件权限有关 |
:q | 退出不保存 |
:q! | 强制退出不保存 |
:w 新文件名 | 另存为新文件: |
:wq :zz :x | 保存并退出,若为:wq!为强制保存并退出 |
:e 其他文件名(如果已修改需要加e!) | 打开新文件进行编辑 |
:r 其他文件名 | 在当前文件中读入其他文件内容,即将这个文件的内容加到光标所在行的后面 |
:s /old/new | 替换当前行中的第一个old改为new |
:s /old/new/g | 替换当前行中的所有old改为new |
:n,n s /old/new/g | n为数字,n到n行所有old改为new |
:%s /old/new/g | %代表全文 全文替换所有old改为new |
:n,n d | n为数字,删除n到n行 |
:n,n y | n为数字,复制n到n行 |
:! 命令 | 暂时离开vim编辑器,到命令行中执行命令,例如:! ls -l /home,即可查看输出的信息 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:set ai | 对齐 回车后和上一行对齐 |
三、打开多个文件
vim file1 file2…… #打开后默认显示第一个文件
打开后可以在末行模式:
netx:切换至下一个文件
prev:切换至上一个文件
last:切换至最后一个文件
first:切换至第一个文件
四、vim多窗口功能
1、分屏显示一个文件
Ctrl+w,s:水平拆分窗口
Ctrl+w,v:垂直拆分窗口
2、分屏显示多个窗口
Vim -o file1 file2 …… #水平拆分显示多个文件
Vim -O file1 file2 …… #垂直拆分显示多个文件
快捷键 | 功能描述 |
:sp 文件 | 打开一个新窗口,如果有加文件,则在新窗口打开一个新文件,否则表示两个窗口为同一文件内容(同步显示) |
Ctrl+w+j | 先按Ctrl不放,在按w后放开所有按键,然后在按j,则光标移动到下方窗口 |
Ctrl+w+k | 操作同上,不过光标移动到上面的窗口 |
Ctrl+w+q | 结束离开 |