前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux工具之Vim编辑器

Linux工具之Vim编辑器

作者头像
AsiaYe
发布2019-11-06 14:33:12
1.1K0
发布2019-11-06 14:33:12
举报
文章被收录于专栏:DBA随笔DBA随笔
Vim工具
关于Vim

Vim是Linux系统下一款功能强大的编辑器,在Vi的基础上改进和增加了许多特性。

Vim的三种模式

编辑模式。

输入模式。

末行模式。

三种模式之间的关系如下图:

三种模式之间的转换方式如下:

编辑-->输入:

代码语言:javascript
复制
    i: 在当前光标所在字符的前面,转为输入模式;
a: 在当前光标所在字符的后面,转为输入模式;
o: 在当前光标所在行的下方,新建一行,并转为输入模式;
I:在当前光标所在行的行首,转换为输入模式
A:在当前光标所在行的行尾,转换为输入模式
O:在当前光标所在行的上方,新建一行,并转为输入模式;

输入-->编辑:

代码语言:javascript
复制
    ESC

编辑-->末行:

代码语言:javascript
复制
    :

末行-->编辑:

代码语言:javascript
复制
    ESC, ESC

Vim常用命令

Vim的常用命令如下图所示:

具体常用命令可以分为以下几个大类:

打开/退出

代码语言:javascript
复制
vim -R file1 只读打开
:qall 退出所有文件
:wq 写入并退出
:q! 强制退出
代码语言:javascript
复制

插入

代码语言:javascript
复制
i 在当前位置生前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行

移动

代码语言:javascript
复制
h 左移一个字符
l 右移一个字符
k 上移一个字符
j 下移一个字符

删除

代码语言:javascript
复制
dd 删除当前行
dj 删除当前行和上一行
dk 删除当前行和下一行
10dd 删除当前行开始的共10行
D 删除当前字符至行尾
代码语言:javascript
复制
x: 删除光标所在处的单个字符
#x: 删除光标所在处及向后的共#个字符
代码语言:javascript
复制

跳转

代码语言:javascript
复制
gg 跳转到文件头
G 跳转到文件尾
gg=G自动缩进 (非常有用)
Ctrl + d 向下滚动半屏
Ctrl + u 向上滚动半屏
Ctrl + f 向下滚动一屏
Ctrl + b 向上滚动一屏
冒号+行号,跳转到指定行;比如:120,跳转到120行;
$ 跳转到行尾0 跳转到行首

编辑

代码语言:javascript
复制
u             撤销
Ctrl + r      重做
yy            复制当前行
按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按y即可复制任意部分
p 粘贴在当前位置
另外,删除在vim里面就是剪切的意思,所以dd就是剪切当前行,可以用v或V选择特定部分再按d就是任意剪切了

查找

/text  查找text,按n健查找下一个,按N健查找前一个

?text  查找text,反向查找,

代码语言:javascript
复制
:set ignorecase  忽略大小写的查找
:set noignorecase  不忽略大小写的查找

替换

代码语言:javascript
复制
:s/old/new/ 用old替换new,替换当前行的第一个匹配
:s/old/new/g 用old替换new,替换当前行的所有匹配
:%s/old/new/ 用old替换new,替换所有行的第一个匹配
:%s/old/new/g 用old替换new,替换整个文件的所有匹配
也可以用v或V选择指定行,然后执行

多文件操作

代码语言:javascript
复制
vim file1 file2 file3 ... 同时编辑多个文件
:split 将窗口分成上下两个子窗口,对应两个不同的文件
:vsplit 将窗口分成左右两个子窗口,对应两个不同的文件
:open file4 打开新文件
:bn 切换到下一个文件(当前窗口)
:bp 切换到上一个文件(当前窗口)
Ctrl-w h    移动到窗口左边
Ctrl-w j    移动到窗口下边
Ctrl-w k    移动到窗口上边
Ctrl-w l    移动到窗口右边

高级话题

1、显示或取消显示行号

代码语言:javascript
复制
    :set nu
:set nonu
mu = number

2、显示忽略或区分字符大小写

代码语言:javascript
复制
    :set ic
:set noic
ic = ignorecase

3、设定自动缩进

代码语言:javascript
复制
    :set ai
:set noai
ai = autoindent

4、查找到的文本高亮显示或取消

代码语言:javascript
复制
    :set hlsearch
:set nohlsearch

5、语法高亮

代码语言:javascript
复制
    :syntax on
:syntax off
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档