【学习笔记之Linux】工具之vim基本介绍

简介: 【学习笔记之Linux】工具之vim基本介绍

vim基本认识


vim是一种多模式的编辑器,它是vi的升级版本,它兼容vi所有的指令并加入了一些新的特性在里面。vi是一个老式的文本编辑器,功能相当齐全,vim则是在vi之上更进了一步,拥有代码补全、编译及错误跳转等功能,被称为编辑器之神,就连vim的官网自己也说vim是一个程序开发工具而不是一个文字处理软件。

 vim拥有多种模式,每种模式的用法各不相同,每种模式之间可以进行切换。而我们最常用的有3-5种模式:命令模式(我们vim打开文件就是这个模式,也叫正常模式、普通模式)、插入模式(输入模式)、末行模式(底行模式)、替换模式、可视化模式。


vim常用模式

命令模式:


用户一启动vim就进入命令模式,此状态下敲击键盘会被vim识别为命令,而非输入字符。这时可以控制屏幕光标的移动,字符、字或行的删除,移动复制某区段,可以切换至不同的模式。

 因为最开始的老式键盘并没有现在键盘中的一部分按键,所以vim设置了其他按键来实现对应的功能。同时应为按键有限,所以vim是区分大小写的,大小写不同,命令也是不同的。


vim命令模式中的常用命令

 光标移动相关命令:

 h/←:光标向左移动一个字符

 j/↓:光标向下移动一个字符

 k/↑:光标向上移动一个字符

 l/→:光标想有移动一个字符

 [Ctrl]+f:屏幕向下移动一页,相当于[Page Down]键

 [Ctrl]+b:屏幕向上移动一页,相当于[Page Up]键

 [Ctrl]+d:屏幕向下移动半页

 [Ctrl]+u:屏幕向上移动半页

 +:光标移动到非空格符的下一行

 -:光标移动到非空格符的上一行

 数字n+[space]:光标向右移动n个字符

 0/[home]:光标移动到这一行的第一个字符前一位

 ^:光标移动到所在行的行首

 $/[end]:光标移动到这一行的最后候一个字符处

 H:光标移动到屏幕最上方一行的第一个字符处

 M:光标移动到屏幕中央一行第一个字符处

 L:光标移动到这个屏幕最下方一行的第一个字符处

 G:光标移动至文本的最后一行

 数字n+G:光标移动至文本的第n行的第一个字符处,绝对位置

 gg(连按):光标移动至文本第一行第一个字符处

 数字n+[Enter]:光标向下移动n行,相对于当前位置移动

 删除:

 x:删除光标所在位置的字符,在x之前加上数字n,可以实现向后连续删除n个字符

 X:删除光标之前的一个字符,在X之前加上数字n,可以实现向前连续删除n个字符

 dd:剪切光标所在的那一行,在dd之前加上数字n,可以实现向下剪切n行

 d1G:删除光标所在行到第一行的内容

 dG:删除光标所在行到之后一行的内容

 d$:从光标所在处删除至该行的最后一个字符

 d0:从光标所在处删除至该行的第一个字符

 复制:

 yy:复制光标所在行,在yy之前加上数字n,可以向下复制n行

 y1G:复制光标所在行到第一行的所有内容

 yG:复制光标所在行到对吼一行的内容

 y$:复制光标所在处至该行第一个字符处的内容

 y0:复制光标所在处至该行最后一个字符处的内容

 粘贴:

 p:将已复制的内容,从光标所在行的之下开始粘贴

 P:将已复制的内容,从光标所在行的之上开始粘贴

 撤销:

 u:撤销上一个操作

 [Ctrl]+r:重做上一个动作,u与[Ctrl]+r可以相互撤回


 .(这里有一个点):重复上一个操作

 切换大小写:

 ~:将光标处的字母进行大小写转换

 切换模式:

 i/l:进入输入模式,i为从目前光标所在处输入,l为在目前所在行的第一个非空格符处开始输入

 a/A:进入输入模式,a为从光标所在的下一个字符处开始输入,A为从光标所在行的最后一个字符处开始输入

 o/O:进入输入模式,o为在光标的下一行处输入新的一行,O为在光标的上一行处输入新的一行

 s:进入输入模式,s为删除光标处字符开始输入

 r/R:进入替换模式,r只会取代光标所在的字符,R会不断向后取代字符,直到按下ESC键停止

 :([shift]+;):进入底行模式

 [ctrl]+v:进入视图模式


插入模式:

  只有在插入模式下,才能够进行文字输入,我们编写代码就是在该模式下。按下ESC键就会切换到命令模式。

末行模式:

  末行模式也就是底行模式,可以进行文件的保存或退出,也可以进行文件替换,按下ESC键会切换到命令模式。


底行模式常用命令

 搜索:

 /关键字:查找含有关键字的内容,并进行高亮显示,同时光标跳转至当前光标之后的第一个关键字处

 ?关键字:功能与上同,光标跳转至当前光标的前一个关键字处

 n:搜索出关键字之后,按n,光标跳转至下一个关键字处

 N:搜索出关键字之后,按N,光标跳转至上一个关键字处

 替换:

 r+一个字符:替换光标所在处的字符,一次只能换一个

 数字n1,数字n2s/关键字1/关键字2/g:在n1行至n2行之间,查找关键字1,并将其换成关键字2

 【1,$s/关键字1/关键字2/g】/【%s/关键字1/关键字2/g】:从第一行开始查找关键字1,将其替换成关键字2

 【1,$s/关键字1/关键字2/gc】/【%s/关键字1/关键字2/gc】:功能与上同,替换之前向用户确认是否替换

 存储、退出

 w:将编辑的数据写入文件,加上!可以强制写入

 q:退出vim,加上!可以强制退出

 wq:写入之后退出,加上!可以强制写入并退出

 ZZ:保存并退出

 ZQ:不保存,强制退出

 w[文件名]:将当前文件另存为,名字为方框中的文件名

 vim设置

 set nu:显示行号

 set nonu:取消行号


 常用模式关系图:


36d71695c32443a4b1f25943aaaa9d02.png

3c8fad48e0cb45d596310f9eb64d946f.png


目录
相关文章
|
13天前
|
监控 安全 Ubuntu
Linux下如何安装配置Fail2ban防护工具
通过以上步骤,可以在Linux系统中成功安装和配置Fail2ban,从而有效保护服务器免受暴力破解等攻击。Fail2ban通过实时监控日志文件,自动更新防火墙规则,为系统安全提供了一层重要的保护。
69 36
|
22天前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
34 11
|
25天前
|
Linux 网络性能优化 网络安全
Linux(openwrt)下iptables+tc工具实现网络流量限速控制(QoS)
通过以上步骤,您可以在Linux(OpenWrt)系统中使用iptables和tc工具实现网络流量限速控制(QoS)。这种方法灵活且功能强大,可以帮助管理员有效管理网络带宽,确保关键业务的网络性能。希望本文能够为您提供有价值的参考。
79 28
|
27天前
|
Rust Ubuntu Java
[Linux工具] Makefile
Makefile是Linux环境下用于自动化编译和链接程序的配置文件,常用于简化大型项目的编译流程。通过定义目标文件、依赖文件及生成命令,Makefile能高效管理编译任务。它不仅适用于C语言项目,还可扩展到其他编程语言和非编程任务中。
53 20
[Linux工具] Makefile
|
1月前
|
安全 网络协议 Linux
结合 `nc` 工具利用笑脸漏洞(Smile Bug)攻击 Metasploitable2 Linux
本文介绍如何使用 `nc`(Netcat)工具结合笑脸漏洞(Smiley Bug)攻击 Metasploitable2 Linux 靶机。首先概述了 `nc` 的基本功能和高级用法,包括建立连接、监听端口、文件传输等操作。接着详细描述了笑脸漏洞的原理及其在网络攻防中的应用,展示了通过 `nc` 发送恶意输入检测漏洞的方法。最后结合 Python 脚本实现更复杂的攻击场景,并强调了合法性和环境隔离的重要性。
51 13
|
2月前
|
运维 监控 Linux
推荐几个不错的 Linux 服务器管理工具
推荐几个不错的 Linux 服务器管理工具
177 6
|
3月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
347 8
|
4月前
|
Unix Linux 开发工具
Linux Vim的 命令大全
Linux Vim的 命令大全
56 0
|
5月前
|
存储 Linux Shell
常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件
这篇文章介绍了Vim编辑器的基本使用、常用命令和模式,以及Linux系统中用户和组的管理方法,包括用户和组相关文件如/etc/passwd、/etc/shadow和/etc/group的说明。
常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件