linux vim用法:常用,列模式,多窗口,多文件编辑

时间:2024-04-13 07:52:34

vim是linux下常用的一款文本编辑工具,关于用法,网上已经有很多,但是感觉自己经常还是会忘记某些快捷键,所以写下来供自己查看,【+代表同时按下两个键】
正如大家所知,vim分为三种模式,分别是一般模式,编辑模式,命令模式,使用vim的时候默认用的一般模式,通过一些快捷键进入编辑模式和命令模式,切换方式如下:

linux vim用法:常用,列模式,多窗口,多文件编辑

一、vim常用

1、编辑模式

编辑模式很容易理解,所以放在第一个,在一般模式下按下a,A,i,I,o,O,r,R其中一个,即可进入编辑模式,进入编辑模式最下面会有提醒,如按下i,最下面会提醒-- INSERT --

插入:

i:从光标所在字符的前面插入
I:所在行行首的第一个非空字符处前插入
a:从光标所在字符的后面插入
A:所在行行首的最后一个字符处后插入
o:光标所在行的下一行处插入新的一行
O:光标所在行的上一行处插入新的一行

替换:

r:取代光标所在的那一个字符
R:R会一直取代光标所在的文字,直到按下 ESC 为止

2、命令模式

:w 保存文件
:wq 保存文件并退出
:q! 强制退出,不会保存所做的修改
:set nu 显示行号
:set nonu 取消行号
:sh 暂时离开vim,切换到命令行执行命令,Ctrl+d可回到vim
:! command 暂时离开vim,并显示command的执行结果,如果【:! pwd】,显示当前目录
:w filename 将正在编辑的文件另存为filename
:n1,n2 w file 将n1行到n2行之间的内容(包括n1和n2行)另存为file
:r filename 读入filename文件,并将其内容加到游标所在行后面
:files 列出当前vim打开的文件

3、一般模式

移动光标

[h 或 ←] 光标向左移动一个字符,4h表示向左移动四个字符
[j 或 ↓] 光标向下移动一个字符,同上
[k 或 ↑] 光标向上移动一个字符,同上
[l 或 →] 光标向右移动一个字符,同上

[Ctrl+f] 向下移动一页
[Ctrl+b] 向上移动一页
[Ctrl+d] 向下移动半页
[Ctrl+u] 向上移动半页

+ 光标移至下一列
- 光标移至上一列

n[space] 先按数字,后按空格,光标会向右移动n个字符,0代表行首,$代表行尾

gg 移动到第一行
G 移动到最后一行
nG 移动到第n行
n[Enter] 先按数字,后按确认,向下移动n行

搜索和替换

/key 光标之后之下搜索关键字
?key 光标之前之上搜索关键字
n 向下重复前一个搜寻的动作
N 向上重复前一个搜寻的动作
:n1,n2s/old/new/g 在第n1与n2行之间寻找old,并将其替换为new,如:1,$s/old/new/g 将所有的old替换为new
:n1,n2s/old/new/gc 在第n1与n2行之间寻找old,并将其替换为new,在替换之前需要用户确认是否替换

复制,粘贴和删除

x 为向后删除一个字符,相当于del按键
X 为向前删除一个字符,相当于backspace
nx 连续向后删除n个字符
dd 删除光标所在行
ndd 删除光标所在的向下n行,如10dd,删除光标所在行开始的10行
d1G 删除光标所在到第一行的所有数据
dG 删除光标所在到最后一行的所有数据
d$ 删除游标所在处,到该行的最后一个字符
d0 删除游标所在处,到该行的最前面一个字符
yy 复制光标所在行
nyy 复制光标所在行的向下n行
y1G 复制光标所在列到第一列的所有数据
yG 复制光标所在列到最后一列的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
p 将已复制的数据在光标下一行贴上
P 将已复制的数据在光标上一行贴上
J 将光标所在行与下一行的数据结合成同一行
c 重复删除多个数据,例如向下删除 10 行,[ 10cj ]
u 复原前一个动作
[Ctrl+r] 重做上一个动作
. 重复前一个动作的意思。如果想要重复删除、重复贴上等等动作,按下小数点就好了!

二、vim的列模式

1、常用键说明

v 字符选择,光标经过的地方反白选择
V 行选,光标经过的行反白选择
Ctrl+v 区域选择,即长方形区域
y 复制反白的地方
d 删除反白的地方

2、删除列

1、光标定位到要操作的地方
2、Ctrl+v 进入【– 可视 块 –】模式,通过h(左),j(下),k(上),l(右)选取行和列
3、d 删除。

3、插入列

1、光标定位到要操作的地方
2、Ctrl+v 进入【– 可视 块 –】模式,通过h(左),j(下),k(上),l(右)选取行和列
3、Shift+i输入要插入的内容。
4、Esc连按两次,就会在每行选定的区域插入内容

三、vim编辑多个文件

1、打开多个文件

1、【vim file1 file2 file3 … 】打开file1,file2,file3…文件(启动vim的同时打开多个文件)
2、【:open file】打开文件file(vim已经启动)
另外,可用:files 列出当前vim打开的文件

2、多个文件间切换

Ctrl+6 下一个文件
:bn 下一个文件,如果当前文件是最后一个,会切换到第一个文件
:bp 上一个文件,与bn类似
:n 下一个文件
:N 上一个文件

3、同时显示多个文件及其之间切换

:sp [file] 或者:split [file] 在下侧开启一个新的窗口,如果有加file,表示下侧窗口显示的file文件,如果没有,则显示一样的文件
:vs [file] 或者:vsplit [file] 在右侧开启一个新的窗口,如果有加file,表示右侧窗口显示的file文件,如果没有,则显示一样的文件

以下按键方法需要特殊说明一下:
比如Ctrl+w,h,先按住Ctrl不放,再按下w键后释放所有键,最后按下h
Ctrl+w,方向键 切换到相应方向的窗格
Ctrl+w,h/j/k/l 切换至h(左),j(下),k(上),l(右)方向的窗口
Ctrl+w,q 退出当前窗口