欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

vim程序编辑器

程序员文章站 2023-02-06 22:11:01
基本上vi共分为3种模式,分别是 一般命令模式、编辑模式与命令行模式 。 一般命令模式(command mode) 以vi打开一个文件就直接进入一般命令模式了(这是默认的模式,也成为一般模式)。在这个模式中,你可以使用【上下左右】按键来移动光标,你可以使用【删除字符】或【删除整行】来处理文件内容,也 ......

基本上vi共分为3种模式,分别是一般命令模式、编辑模式与命令行模式

vim程序编辑器

一般命令模式(command mode)
以vi打开一个文件就直接进入一般命令模式了(这是默认的模式,也成为一般模式)。在这个模式中,你可以使用【上下左右】按键来移动光标,你可以使用【删除字符】或【删除整行】来处理文件内容,也可以使用【复制、粘贴】来处理你的文件内容。

编辑模式(insert mode)
在一般命令模式中可以进行删除、复制、粘贴等的操作,但是却无法编辑文件的内容。要等到你按下【i、i、o、o、a、a、r、r】等任何一个字母之后才会进入编辑模式。注意了,通常在linux中,按下这些按键时,在界面的左下方会出现【insert】或【replace】的字样,此时才可以进行编辑,而如果要回到一般命令模式时,则必须要按下【esc】这个按键即可退出编辑模式。

命令行模式(command-line mode)
在一般模式当中,输入【:/?】三个中的任何一个按钮,就可以将光标移动到最下面的一行。在这个模式当中,可以提供你【查找数据】的操作,而读取、保存、批量字符替换、退出vi、显示行号等的操作则是在此模式中完成。

一般命令模式可与编辑模式及命令行模式切换,但编辑模式与命令行模式之间不可互相切换。

常用vim命令:

插入命令:

命令 说明
i 当前位置插入
i 行首插入
a 当前位置后插入
a 行尾插入
o 下一新行插入
o 上一新行插入
s 删除光标所在的字符,当前位置插入
s 删除光标所在行,当前行插入

移动光标:

命令 说明
h 光标左移
j 光标下移
k 光标上移
l 光标右移
^ 光标移动到行首
$ 光标移动到行尾
gg 光标移动到文件首行
g 光标移动到文件尾行
ngg n为数字,移动到这个文件的第n行
ng n为数字,移动到这个文件的第n行

查找与替换:

命令 说明
/word 向光标之下寻找一个名称为word的字符串。例如要在文件内查找itbsl这个字符串,就输入/itbsl即可(常用)
?word 向光标之上寻找一个字符名称为word的字符串
n 这个n是英文按键,代表【重复前一个查找的操作】。举例来说,如果刚刚我们执行/itbsl去向下查找itbsl这个字符串,则按下n后,会向下继续查找下一个名称为itbsl的字符串,如果是执行?itbsl的话,那么按下n则会向上继续查找名称为itbsl的字符串
n 这个n是英文按键,与n刚好相反,为【反向】进行前一个查找操作,例如/itbsl后,按下n则表示【向上】查找itbsl
:n1,n2s/word1/word2/g n1与n2为数字,在第n1与n2行之间寻找word1这个字符串,并将该字符串替换为word2,举例来说,在100到200行之间查找itbsl并替换为itbsl,则 :100,200s/itbsl/itbsl/g(常用)
:1,$s/word1/word2/g 从第一行到最后一行寻找word1字符串,并将该字符串替换为word2(常用)
:1,$s/word1/word2/gc 从第一行到最后一行寻找word1字符串,并将该字符串替换为word2,且在替换前显示提示字符给用户确认(confirm)是否需要替换(常用)

删除、复制与粘贴:

命令 说明
xx 在一行当中,x为向后删除一个字符(相当于[del]按键),x为向前删除一个字符(相当于[backspace]即退格键)(常用)
nx n为数字,连续向后删除n个字符。举例来说,我要连续删除10个字符,【10x】
dd 删除(剪切)光标所在的那一整行(常用)
ndd n为数字,删除(剪切)光标所在的向下n行,例如20dd则是删除(剪切)20行(常用)
d1g 删除(剪切)光标所在到第一行的所有数据
dg 删除(剪切)光标所在到最后一行的所有数据
d$ 删除(剪切)光标所在处,到该行的最后一个字符
d0 删除(剪切)光标所在处,到该行的最前面的一个字符
yy 复制光标所在的那一行(常用)
nyy n为数字,复制光标所在的向下n行,例如20yy则是复制20行(常用)
y1g 复制光标所在行到第一行的所有数据
yg 复制光标所在行到最后一样的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
yw 拷贝一个单词
nyw 拷贝n个单词(n表示数字)
p 后置粘贴
p 前置粘贴

保存:

命令 说明
:w 直接保存
:w file 保存成新文件

退出:

命令 说明
:q 退出

强制执行:

命令 说明
:wq! 强制保存退出
:q! 强制退出

显示行号:

命令 说明
:set nu 显示行号

配置系统:

  • 全局配置
    /etc/virc
  • 用户级别
    ~/vimrc

vim搜索

命令 说明
/字符串 比如搜索user,输入/user

按下回车之后,可以看到vim已经把光标移动到该字符处和高亮了匹配的字符串
查看下一个匹配,按下n(小写n)
跳转到上一个匹配,按下n(大写n)
搜索后,我们打开别的文件,发现也被高亮了,怎么关闭高亮?
命令模式下,输入:nohlsearch 也可以:set nohlsearch; 当然,可以简写,noh或者 set noh

资料:
linux私房菜(第四版)