[Linux] vim命令总结

vim三种模式

  • 命令模式:打开文件后进入命令模式,在在命令模式中,所有在键盘上输入的字符都有可能是命令;
  • 编辑模式:在命令模式中,输入/,:,?进入编辑模式,再按回车回到命令模式;
  • 插入模式:在 命令模式中,输入i,I,o,O,a,A,R进入插入模式,可以对文件进行编辑,按Esc键退出插入进入命令模式。

命令模式

定位命令
h:    左移一个字符
j:    下移一个字符
k:    上移一个字符
l:    右移一个字符
$:    直接移至行尾
0:    直接移至行首
Enter:    移至下一行行首
H:    移至屏幕上端
M:    移至屏幕中央
L:    移至屏幕下端
G:    到文件最后一行
gg:   移至文件第一行
23G:    到文件23行
ctrl+f   向下移动一页,相当于PageDown
ctrl+b   向上移动一页,相当于pageup
ctrl+d   向上移动半页
ctrl+u   向下移动半页
:行数+Enter:    到第几行,等于 行数G
:set nu+Enter:    显示行数
:set nonu+Enter:    不显示行数
:set hlsearch:   搜索字符高亮显示
删除命令:
x:    删除光标所在处的字符,向后删除,相当于delete    
X:    删除光标前的字符,向前删除,相当于backspace
nx:   连续向后删除n个字符
nX:   连续向前删除n个字符
dd:    删除光标所在的行
ndd:   删除光标所在行向下n行内容
dG:    删除光标所在行到文本末尾的内容
d1G:   删除光标所在行到第一行的内容
D:    删除该行光标后的所有内容
:n1,n2d    删除给定的行数之间的内容
复制、剪切、粘贴命令:
  yy或Y:    复制当前行
  nyy或nY:    复制当前行以下n行
  y1G:     复制光标所在行到第一行的所有数据
  yG:      复制光标所在行到最后一行的数据
  y0:      复制光标所在字符到该行行首的所有数据
  y$:      复制光标所在字符到该行行尾的所有数据
  p:    将已经选择复制或被删除的行放在当前行下;(y复制,p粘贴)
  P:    将已经选择复制或被删除的行放在当前行上;(y复制,p粘贴)
替换和取消命令
r:    取代光标所在处的字符
R:    从光标所在处开始替换,直到按Esc键结束
s:    替换光标所在出字符,并进入插入模式
S:    替换光标所在全行,按Esc键结束
u:    取消上一步操作
U:    取消当前行所有操作
保存、退出命令:
:w   保存
:w new filename    另存为
:wq    保存退出
ZZ    命令模式下的保存退出
:q    退出
:q!    强制退出
:wq!    强制退出
:x    保存退出
:X!    强制保存退出
ZZ     命令模式下退出vim
搜索和替换命令:
/string    向下搜索字符串
?string    向上搜索字符串
n    /string时向下查看搜索结果,?string时向上查看搜索结果
N    ?string时向上查看搜索结果, /string时向下查看搜索结果
:%s/old/new/g    将搜索结果替换成新的结果
:n1,n2s/old/new/g   将n1-n2行所有搜索结果替换为新的
:%s/old//g    将搜索结果全部删除
其她命令:
:r fileName    打开一个文件
:! 后可以直接写操作系统指令
vi -o file1 file2    打开多个文件,切换时按ctrl+ww
vi -O file1 file2    竖屏打开多个文件,切换时按ctrl+ww

插入模式

i:    在光标前插入文本;
I:    在本行行头开始插入文本;
a:    在光标后插入文本;
A:    在本行末尾插入文本;
o:    在光标下插入新行;
O:    在光标上插入新行;

编辑模式

set nu    设置行号
:set nonu    取消行号
:set hlsearch   高亮显示搜索结果
:%s/old/new/g    将搜索结果替换成新的结果
:%s/old//g    将搜索结果全部删除
:n1,n2s/old/new/g   将n1-n2行的old替换为new
: r file      将文件file读入到该文件光标处

编辑模式进入插入模式,只能通过命令模式

配置Vim默认值

vim配置文件为/etc/vim/vimrc,因此打开该文件进行配置:

$ vi /etc/vim/vimrc

比如配置默认显示行号、语法高亮、搜索结果高亮:

set nu      #配置行号
syntax on    # 语法高亮
set hlsearch     #高亮搜索结果

vim块选择操作

vim除了以行为单位进行操作外,还可以以块为单位进行操作,命令如下:

V       字符、行选择,将光标经过的地方反白选择
ctrl+V     块选择,用长方形的方式选择数据
y      将反白选择的内容复制
d      将反白选择的内容删除

vim多文件操作

在同一个窗口中打开并显示多个文件

如果要在同一个窗口中对多个文件进行操作,则可以通过如下命令打开多个文件:

$ vim -o file1 file2     横排显示多个文件
$ vim -O file1 file2     竖排显示多个文件  
ctrl + ww        在两个文件之间进行切换

在同一个窗口中打开并显示当前文件

通过vim -O file file2会打开file和file2并同时显示在屏幕上,如果只显示一个文件,则在打开文件时不需要-o/-O,并使用如下命令操作:

:n 编辑下一个文件
:N 编辑上一个文件
:files   列出vim打开的所有文件

在同一个创建打开多个文件,可以方便的进行复制粘贴操作(yy,p)。

多窗口操作一个文件

vim可以将一个文件展示在不同的窗口上,可以方便地对文件前后内容进行对比、记录,使用步骤如下:

: sp             切割窗口
ctrl + w + j     将光标移动到下个窗口
ctrl + w + k     将光标移动到上一个窗口
ctrl + w + q     退出窗口

猜你喜欢

转载自blog.csdn.net/fightfightfight/article/details/80042334