vim命令大全图解(vim保存退出命令)

vim是一款功能强大的文本编辑器,它是Linux下常用的编辑器之一,对于熟练掌握了vim的人来说,用它编辑文件,方便又快捷,能极大的提高工作效率vim功能强大,对应的命令也非常的多,对于初学者来说,看到这么多的命令容易打退堂鼓,

vim 是一款功能强大的文本编辑器,它是Linux下常用的编辑器之一,对于熟练掌握了 vim 的人来说,用它编辑文件,方便又快捷,能极大的提高工作效率

vim 功能强大,对应的命令也非常的多,对于初学者来说,看到这么多的命令容易打退堂鼓,想当初,自己刚接触vim的时候,由于不熟悉vim,每一个命令都要上网查阅,真的是举步维艰

其实,工作中常用的vim命令也就那么些,只需学习这些常用的命令,勤加练习,假以时日定能熟练的掌握它们,进而就能解决大部分的编辑问题

本文结合我自己工作中使用vim的经验,整理了一些常用的vim命令

vim 的模式

进入vim之后,会有多种不同的模式,模式之间的切换,让你只需要通过键盘,就能完成文本的编辑,这也是vim存在多种模式的原因,vim主要有以下几个模式

  • 正常模式

刚进入vim界面的时候是正常模式,复制、粘贴操作都是在这个模式下进行的

  • 插入模式

文本内容输入,修改是在这个模式下进行的

可以按 i 或者 I 进入到插入模式,在插入模式下,按 esc会返回到正常模式

  • 命令模式

输入或者修改完之后,需要保存退出,这个时候vim就会进入到命令模式

按 esc + : 进入命令模式,再次按 esc 返回正常模式

  • 可视模式

可视模式是对文件进行大量重复操作的时候,可以一次性执行完成的功能

可通过 v、V、ctrl v 进入可视模式

常用命令

  • 打开、保存、另存为、退出

vim file #打开文件
vim #打开临时文件,保存的时候需要制定文件名

:w #保存
:w file #另存为

:q #退出
:wq #保存并退出
:x #保存并退出
ZZ 或 shift zz #保存并退出
:q! #不保存退出,会丢失数据

例如: vim a.txt命令打开 a.txt文件,假如a.txt存在的话,打开已有的,不存在的话,则会打开一个新的文件

  • 光标移动

k、j #光标向上、向下移动一行
h、l #光标向左、向右移动一个位置, l 是字母L的小写

^ #光标移动到当前行首
$ #光标移动到当前行尾

w #光标向前移动一个单词
b #光标向后移动一个单词

gg #光标移动到文件开头
G 或 shift g #光标移动到文件末尾
n G #光标移动到指定行号的行首, n 表示行号

ctrl f #向下翻一页
ctrl b #向上翻一页

分别按 k j h l能实现光标上下左右移动,键盘上下左右箭头的按键也表示方向键,它跟 k j h l 有什么区别呢

如果是图形界面和远程终端都可以使用,如果是字符终端的时候,键盘上下左右箭头的按键有时会出现乱码,所以最好统一使用 k j h l

  • 插入

i #光标前插入
I #当前行首插入

o #当前行后面插入一行,光标移动到插入行的行首,o 是字母,不是数字0
O #当前行前面插入一行,光标移动到插入行的行首,O 是字母,不是数字0

a #当前光标后插入
A #当前行尾插入

小技巧: 当前处于正常模式, 输入数字 10,按i进入插入模式, 接着输入字母 #,最后按esc键,此时,在光标所在行会出现 10 个#字符,相当于插入了10个#,当你想在文本中插入一行字符作为分割线的时候,就能应用到这个小技巧

  • 复制、粘贴、剪切

yy 或 Y #复制光标所在行
n yy 或 n Y #从光标行向下复制 n 行
y$ #复制从光标位置到行尾
y^ #复制从光标位置到行首
yw #复制一个单词
ynw #复制n个单词,n为单词个数

yl #复制光标位置的一个字符, l 是字母L的小写形式
ynl #从光标位置向右边复制n个字符, 光标位置也算一个字符

yh #复制光标位置左边的一个字符,光标位置不计算在内
ynh #从光标左边位置向左边复制n个字符,光标位置不计算在内

dd #剪切(删除)光标所在行
ndd #从光标行向下剪切(删除)n行
d$ 或者 D #从光标位置剪切(删除)到行尾
d^ #从光标前一个位置剪切(删除)到行首

dl #剪切(删除)光标位置的字符
dnl #从光标位置向行尾方向剪切(删除)n个字符
dh #剪切(删除)光标坐标位置的一个字符
dnh #从光标左边位置向行首方向剪切(删除)n个字符

dw #剪切(删除)光标位置的一个单词
dnw #从光标位置向行尾方向,剪切(删除)n个单词,光标位置的单词也算在内

p #在当前光标后粘贴
P 或 shift p #大写的字母p, 再当前光标前粘贴

如果是复制一行内容,再按小写字母p则是在当前光标下一行进行粘贴,而不是在当前光标后面粘贴,同样的,如果是按大写字母P则是在当前光标上一行粘贴

如果一个单词比较长,通过dw 剪切一个单词时,剪切的是光标位置到光标位置单词的结尾字符串

比如,现有一个字符串 9ssxphu7898%mn ,假如光标位于字符 h 位置,按dw,此时剪切的字符串是 hu7898%mn

  • 删除、替换字符

x #每次删除光标处的字符,删除之后,光标后面的字符串向光标方向移动一个位置

X #每次删除光标前面一个字符,删除之后,光标以及后面的字符串会向行首方向移动一个位置

r #替换光标位置的一个字符

替换字符的方法: 光标移动到准备替换的字符位置,按 r键,然后按替换之后的字符键,光标位置的字符就被目标字符替换了

  • 撤销、重做

u #撤销
ctrl r #重做

在多行操作的时候,有时候会出现误操作,这时候可以按 u 键撤销误操作

可以多次进行撤销,当你每按一次 u键的时候,之前做过的操作就会被撤销一次

如果发现撤销的时候进行了错误的撤销操作,希望把刚才做过的事情重做一次,可以按 ctrl r键进行重做

  • 查找、替换

/string #查找指定字符串,按n向后查找下一个,按N向前查找下一个

/stringc #查找指定字符串,不区分大小写,按n向后查找下一个,按N向前查找下一个

/stringC #查找指定字符串,区分大小写,按n向后查找下一个,按N向前查找下一个

:s/old/new #用new字符串替换当前行中第一次匹配达到的old字符串

:s/old/new/g #用new字符串替换当前行中所有的old字符串

:n,ms/old/new #第n行到第m行之间,用new字符串替换每一行中第一次匹配到的old字符串

:n,m/s/old/new/g #第n行到第m行之间,用new字符串替换每一行中所有匹配到的old字符串

:%s/old/new/g #用new字符串替换文件中所有匹配到的old字符串

如果想要像windows上记事本查找替换一样,每次替换之前有是否替换的确认,只需要在替换命令后面加一个c字符

vim命令大全图解(vim保存退出命令)

上面的例子中,:%s/we/WE/gc 命令是把文件中所有的we字符串全部替换成WE字符串,每次替换之前人工确认,如果把命令中的 c字符去掉,就是自动全部替换功能了

  • 执行外部命令

:! cmd #执行cmd命令
:r !cmd #执行cmd命令,把命令的结果插入光标后面一行

vim命令大全图解(vim保存退出命令)

上面例子中,输入 :! date 是在vim中执行 date命令,命令结果会显示在下面,再次按 ENTER键回到了vim

当输入 :r !date时,“`date“命令的结果插入到光标后面一行

  • 批量处理

在可视模式下可以对文件进行批量的操作,比如: 批量选中,批量修改

我们平常用的比较多的批量操作是块可视模式

v #字符可视模式,以字符为单位选择
V 或 shift v #行可视模式,以行为单位选择
ctrl v #块可视模式,以块为单位选择

vim命令大全图解(vim保存退出命令)

上面例子中,在vim中按 ctrl v进入块可视模式,在屏幕的左下角有显示 –可视 块– 字样

接着通过 j k h l选中了第6行到第9行中,每一行的前三列这一块字符串

然后按 shift i切换到插入模式,把前三列字符串修改为 123,修改的时候只有第6行显示修改过,修改完之后连续按两次 esc键,前三列就全部变成了123

紧接着,再次按 ctrl v进入快可视模式,选中第6行到第9行前两列,然后按 d键,就把前两列删除了

小结

本文介绍了vim的一些常见用法,掌握这些常见用法足够满足工作的需要了,。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/59492.html

(0)
nan
上一篇 2021-12-08
下一篇 2021-12-08

相关推荐

  • 中国电信建成全球首条全G.654E陆地干线光缆(完成首次400Gb/s超长距现网传输试验)

    科猫网9月22日消息中国电信宣布,已在上海-广州间建成国内首条全G.654E陆地干线光缆,全长1970公里。为验证G.654E超低损耗及大有效面积新型光纤的实际性能,中国电信利用该条新建光缆完成了国内首次在G.654E光缆

    2021-09-24
    0
  • 目前河北石家庄共有8例确诊(石家庄深泽县一家五口确诊)

    11月1日,河北石家庄通报:2021年10月31日7时—24时,石家庄市深泽县新增新冠肺炎确诊病例3例,裕华区新增新冠肺炎确诊病例1例,桥西区1例新冠肺炎无症状感染者转为确诊病例。目前,河北石家庄共有8例确诊,从公布的流调信息初步判定,几

    2021-11-03
    0
  • 注册一个分公司的流程(办理分公司的流程)

    现在随着企业的不断发展,企业需要扩大经营范围。此时,最好的办法就是注册分公司。现在大多数公司为了扩大业务或扩大经营规模,都会选择注册分公司,但对于注册分公司的流程和所需材料不是很熟悉,下面就跟小编一起了解下注册分公司的流程和所需材料。分

    2021-12-14
    0
  • 冲正后钱去哪里了(为什么转账总是被冲正)

    冲正后钱去哪里了?为什么转账总是被冲正,爱惜日带你了解相关信息。相信很多朋友在查询银行卡交易明细时,会发现“冲正交易”的字样。那么,冲正交易时什么意思呢?我们一起来了解下。银行卡的冲正交易,是对一笔交易的反向操作,是指我们在进行转账、取现、交易时,没有操作成功,但却被扣了钱,银行所采取的一种补救手段。一般来说,冲正交易包括两种形式:实时冲正,表示当银行系统发现存在错误操作时,

    2021-09-08
    0
  • 苏世民的25条工作和生活原则

    苏世民,男,美国黑石集团共同创始人、全球主席兼首席执行官。[1]“苏世民学者”项目始于2013年4月,苏世民宣布以个人名义捐赠1亿美元(约合人民币6亿多元)在清华大学创立奖学金项目,每年资助来自世界各地的学生在清华大学攻读为期一年的硕士项目。截至2016年,该项目已募集到了4.35亿美元。1做大事和做小事的难易程度是一样的。所以要选择一个值得追求的宏…

    2021-08-16
    0
  • 免费考勤系统软件APP(考勤管理系统操作方法)

    考勤软件是人力资源管理系统的模块之一,大概可以分为三类:专业型,单一型,SAAS化!这三种考勤系统差异很大,适合的企业也不同,一起看看吧。1、专业型此类考勤系统功能强大,费用较高,不同品牌、不同的模块

    2022-01-16
    0

发表回复

登录后才能评论