vi/vim 编辑器介绍及基本使用方法

发布于:2023-01-22 ⋅ 阅读:(244) ⋅ 点赞:(0)

vi/vim 简介及三种状态模式

vi/vim 都是多模式编辑器,不同的是 vim 是 vi 的升级版本,不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。vi 编辑器是所有 Unix 及 Linux 系统下的标准编辑器,对 Unix 及 Linux 系统的任何版本,vi 编辑器是完全相同的。

1、编辑模式

  • I (shift + i) 在当前行的第一个非空字符之前进入编辑模式
  • a (append) 在光标之后进入编辑模式
  • A 在行尾进入编辑模式
  • o 在当前行下新插入一行,光标移动至行首,进入编辑模式
  • O 在当前行上面新插入一行,光标移动至行首,进入编辑模式

三种状态:命令模式(Command mode),插入模式(Insert mode),底行模式(Last line mode)

  • 命令行模式

控制屏幕光标的移动,字符、字或行的删除,移动、复制某区段及进入 Insert mode 下,或到 Last line mode。

  • 插入模式

只有在 Insert mode 下,才能进行文字输入,按 i 在当前位置开始编辑,按小写 o 在下一行的行首开始编辑,按大写 O 在上一行开头开始编辑,按 Esc 键可回到命令行模式。

  • 底行模式

将文件保存或退出 vi,也可设置编辑环境,寻找字符串,列出行号等。

  • 退出 vi 及保存文件

在命令模式下,按下:冒号进入 Last line mode,如:

:w filename (保存当前内容只filename文件中,可带路径)
:wq (存盘并退出)
:q! (不存盘强制退出)
:e (更新文件内容)

2、命令模式功能键

2.1 移动光标

ctrl+b 屏幕往后翻一页
ctrl+f 屏幕往前翻一页
ctrl+u 屏幕往后翻半页
ctrl+d 屏幕往前翻半页
行间移动:
w 向后移动一个词。
b 向前移动一个词
e 向后移动到当前词的末尾字符
{number}w/b/e 移动规定词数,比如 3w 会向后移动三个词
$ / ^ 光标移动至行尾/行首

gg 光标移至文章的开头
G 光标移至文章的末尾
^ 移至光标所在行的行首
$ 移至光标所在行的行尾
w或W 光标移至下个字的字首
b或B 光标移至上个字的字首
e或E     移至下一个字的字尾
( 光标移至句首
) 光标移至句尾
{ 移至段落开头
} 移至段落结尾
H 移至屏幕顶行
M 移至屏幕中间行
L 移至屏幕底行

2.2 删除文本

x:每按一次,删除光标所在位置的后面1个字符
#x:如6x表示 后面6个字符
X:每按一次,删除光标所在位置的前面1个字符
#X:如6X表示 前面6个字符
dd:删除光标所在行
d^:删除至行首
d$:删除至行尾
#dd:从光标所在行开始删除#行
ggdG:删除所有内容
ggyG:复制所有内容
dG:删除光标之后的所有内容

2.3 撤销上一次操作 undo 及重做 redo

u:按一次u,撤销上一步的操作,按多次u可撤销多次
ctrl+r:恢复上一步被撤销的操作
.:重复执行上一次的命令操作

2.4 复制文本

y^:复制至行首
y$:复制至行尾
yy:复制光标所在行
#yy:复制从光标所在行往下数#行文字
p:粘贴到光标所在位置

3、底行模式功能键

:set nu列出行号 :set nonu 取消列出行号
:# 跳转到到文件中第#行
:5,10d 删除第5行至第10行
:5,10y 复制第5行至第10行

查找字符(按正则表达式匹配)

/关键字:先按/键,再输入要查找的字符串,可一直按n往后继续查找(按N往反方向查找)
?关键字:先按?键,再输入要查找的字符串,可一直按n往后继续查找(按N往反方向查找)
替换匹配字符串:%s/network/net/g (s代表search,g代表所有,用net替换所有的network)
替换整字:%s/\<network\>/net/g (s代表search,g代表所有,用net替换所有的network)

批量注释和取消注释

批量注释

ctrl+v 进入列编辑模式,向上或向下移动光标,把需要注释行的开头标记起来,然后按大写的 I(shift+i),再插入注释符,如“//”或“#”,再按 Esc 键就 OK 了。

批量取消注释

ctrl+v 进入列编辑模式,向上或向下移动光标,选中需要注释的行,然后按 d 就 OK 了。

解决 vim 打开文件的乱码问题

vim /etc/vimrc
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1