所有的Linux
系统都会内建一个Vi
文本编辑器,而Vim
是从Vi
发展出来的一个高度可配置的文本编辑器,旨在高效的创建和更改任何类型的文本,它还可以根据文件的扩展名判别编程语言。
使用方式:vim 文件名
。
Vim
有三种编辑模式分别是:
(1) 普通命令模式
用户刚启动Vim
时,就处于命令模式
,在命令模式下,用户的输入会被识别为命令。在这个模式下可以进行文本的复制、粘贴、剪切等操作。在此模式下命令可以进行组合操作。
(2) 编辑模式
在命令模式
下按a
、i
、o
中的任意一个按键就可以切换到编辑模式
,在编辑模式
下按Esc
键可以切换到普通命令模式
。编辑模式
主要是对文件的内容进行编辑。
(3) 底线命令模式
在命令模式
下按:
就可以切换到底线命令模式
,在底线命令模式
下按Esc
可以切换到普通命令模式
。在底线命令模式
下,可以对文件内容进行检索、保存、退出等操作。
这三种模式的关系可以表示为(图像来源:菜鸟教程):
通过Vim打开文件之后处于命令模式,在此模式下可以:
光标移动
(1)h
和左箭头
键表示光标向左移动一个字符,j
和下箭头
表示光标向下移动一个字符、k
和上箭头
表示光标向上移动一个字符、l
和右箭头
表示光标向右移动一个字符
(2)gg
:可以将光标移动到文件第一行
;G
:可以将光标移动到文件的最后一行
。如果要移动到指定的某一行
可以使用nG
,n
为一个具体的数字,比如想要移动到第三行可以输入3G
,就可以跳转到第三行
。
(3)$
:将光标移动到当前光标所在行的末尾
,n<space>
:可以将光标从当前位置向后移动n个位置
。
文本操作
(1)v
:选择模式,在此模式下可以通过上下左右选择需要的文本,然后进行操作。
(2)d
:剪切当前选中的文本;dd
:剪切当前行;ndd
:剪切包括当前行在内的n行;dG
:剪切从光标所在行到最后一行的数据,如果想要删除所有数据,可以将gg
命令和dG
命令组合使用,输入ggdG
,光标会先跳转到第一行,然后删除当前行到最后一行的所有数据。可以将这几个命令当删除使用
。
(3)y
:复制选中的文本;yy
:复制当前行;nyy
:复制当前行在内的n行
(4)p
:在当前光标位置粘贴之前剪切或者复制的内容
(5)u
:撤销上一步操作
对文件的内容进行编辑,类似Word操作,在当前模式下可以通过Esc
切换到普通命令模式,再通过:
、/
、?
中的任意一个就可以切换到底线命令模式。
在底线命令模式下Enter
键表示输入完成,在此命令模式下可以:
:set nu
:显示当前文本的行号;:set nonu
:取消行号显示/word
:从光标当前位置向下查找第一个为word
的字符串,使用n
可以重复前一个查找操作,这样就可以从光标当前位置一直向下查找带有word
的字符串,使用N
可以反向重复前一个操作,与n
相反,这样就可以从光标当前位置向上查找带有word
的字符串;?word
从光标当前位置向上查找第一个为word
的字符串。:n1,n2s/w1/w2/g
:其中n1
、n2
位数字,g
表示全局搜索,该命令表示在第n1
行与n2
行之间寻找w1
这个字符串,并将该字符串替换为w2
;:1,$s/w1/w2/g
:将第一行到最后一行的w1
替换为w2
;:1,$s/w1/w2/gc
:将第一行到最后一行的w1
替换为w2
,且在替换前要求用户确认。:w
:保存当前文件:q
:退出当前文件(不保存):q!
:强制退出当前文件(不保存):wq
:保存当前文件并退出:wq!
:强制保存当前文件并退出,如果是写入之后强制保存需要确保当前文件有写权限