首页 > 系统相关 >Linux-vim文本编辑器-三种模式-vim里的替换

Linux-vim文本编辑器-三种模式-vim里的替换

时间:2024-04-14 15:44:55浏览次数:22  
标签:文本编辑 ## 所在 跳转 模式 vim Linux 光标

1. vi 和 vim 命令是linux中强大的文本编辑器, 由于Linux系统一切皆文件,而配置一个服务就是在修改其 配置文件的参数。 vim 编辑器是运维工程师必须掌握的一个工具, 没有它很多工作都无法完成。 vim 其实是 vi 的升级版   2. vim三种工作模式 Vim编辑器中设置了三种模式: 命令模式、编辑模式、末行模式,每种模式分别又支持多种不同的命令快捷键,大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。要想高效率地操作文本,就必须先搞清这三种模式的操作区别以及模式之间的切换方法。  

 

命令模式:vim /etc/passwd   # 进行快捷键操作 ## 光标的跳转 Shift + g | G                    // 将光标跳转到文件最后一行 gg                                   // 将光标跳转到文件的第一行 Ngg                                // 将光标跳转到指定的行(N为阿拉伯数字) Shift + 4 | $                    // 将光标跳转到当前所在行的行末 Shift + 6 | ^ | 0               // 将光标跳转到当前所在行的行首   ## 复制粘贴 yy                                  // 复制光标所在行的整行内容 p(小写p)                   // 将复制的内容粘贴到光标所在行的下一行 P(大写P)                  // 将复制的内容粘贴到光标所在行的上一行 Nyy|yNy                       // 将光标所在行整行内容及下面N-1行内容复制 (N为阿拉伯数字)   ## 剪切删除 dd                                // 将光标所在行一整行内容,剪切(删除) Ndd | dNd                    // 将光标所在行及下面N-1行内容剪切(N为阿拉伯数字) Shift + d | D                 // 将光标所在字符及后面整行内容剪切(删除) x                                  // 删除当前光标所在字符 Shift + x | X                 // 将光标所在当前字符的前一个字符删除 d + Shift + g | dG        // 将光标所在行及后面所有行内容删除   ## 撤销回滚替换 u                                 // 撤销上一次操作 Ctrl + r                        // 恢复上一次撤销的操作 r                                 // 替换光标当前所在的一个字符 Shift + r | R                // 从光标所在字符开始进行替换直到按ESC结束   ## 翻页 Ctrl + b                      // 向前翻页 Ctrl + f                       // 向后翻页   4.编辑模式 -- INSERT -- 像正常的Windows文本编辑器一样,可以随意写入内容   ## 从命令模式如何进入编辑模式 i                                // 在光标所在位置进入编辑模式(输入内容在光标之前) I                               // 将光标跳转到光标所在行的行首并进入编辑模式(输入内容在光标之前) a                              // 将光标跳转到光标所在字符的后一个字符并进入编辑模式(输入内容在光标之前) A                              // 将光标跳转到光标所在行的行末并进入编辑模式(输入内容在光标之前) s                              // 将光标所在字符删除并进入编辑模式(输入内容在光标之前) S                              // 将光标所在行的整行内容删除并进入编辑模式 o                              // 将光标移动到当前所在行的下一行并进入编辑模式 O                             // 将光标移动到光标所在行的上一行并进入编辑模式   末行模式(底行模式) # 在编辑器的左下角进行操作 显示行号、搜索、替换、保存、退出 ...   # 进入末行模式的方法 1)在命令模式下,输入冒号 2)在命令模式下,输入/                 (搜索想要的内容)

 

:w                            // 只保存但是不退出 :q                            // 退出但不保存 (没有改内容) :wq                         // 保存退出 快捷键 Shift + zz | ZZ :x                            // 保存退出 和:wq相等 :q!                          // 强制退出 :w!                         // 强制保存 :wq!                       // 强制保存并退出

 

E37: No write since last change (add ! to override)                         // 文件写入内容,没有保存,无法直接退出,除非强制退出 E45: 'readonly' option is set (add ! to override)                               // 只读文件,无法保存退出,只有root用户可以强制保存退出 E212: Unable to open and write files                                               // 文件无法写入,没有写入权限 E212: Can't open file for writing                                                      // 文件无法写入,文件写入到一个不存在的目录中

 

替换 :%s                               #要被替换的内容#替换的内容#g %:                              所有行 s:                               search 搜索 g:                               全局替换

 

光标跳转及命令   ## 显示行号 :set number 简写 :set nu   ## 取消显示行号 :set nonumber 简写 :set nonu   ## 光标跳转到指定行 :N (N为阿拉伯数字)   ## 忽略大小写 :set ic   ## 取消忽略大小写 :set noic## 自动缩进 :set ai   ## 取消自动缩进 :set noai   ## 显示制表符,结束符... :set list   ## 取消 :set nolist  

 

 

 

当我们在使用vim编辑文件时 1)首先会在源文件目录下生成一个.swp的临时文件 2)如果vim非正常退出的情况下,该临时文件一直存在 3)下一次编辑则会提示 E325: ATTENTION Found a swap file by the name "/etc/sysconfig/network-scripts/.ifcfg-ens33.swp" owned by: root dated: Tue Apr 9 17:08:59 2024 file name: /etc/sysconfig/network-scripts/ifcfg-ens33 modified: no user name: root host name: localhost.localdomain process ID: 7334 (still running) While opening file "/etc/sysconfig/network-scripts/ifcfg-ens33" dated: Tue Mar 26 17:08:45 2024 (1) Another program may be editing the same file. If this is the case, be careful not to end up with two different instances of the same file when making changes. Quit, or continue with caution. (2) An edit session for this file crashed. If this is the case, use ":recover" or "vim -r /etc/sysconfig/network scripts/ifcfg-ens33" to recover the changes (see ":help recovery"). If you did this already, delete the swap file "/etc/sysconfig/network scripts/.ifcfg-ens33.swp" to avoid this message. Swap file "/etc/sysconfig/network-scripts/.ifcfg-ens33.swp" already exists! [O]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort: 只读模式打开          继续编辑           覆盖           退出

 

解决方案: 1)查看modified状态 如果是yes,则需要覆盖源文件 - vim -r /etc/sysconfig/network-scripts/ifcfg-ens33 - vim /etc/sysconfig/network-scripts/ifcfg-ens3 (R)ecover 按 r 2)删除.swp临时文件即可 rm -f /etc/sysconfig/network-scripts/.ifcfg-ens33.swp   1)查看modified状态 如果是no,则需要覆盖源文件 (Q)uit 按q退出 2)直接删除.swp临时文件 rm -f /etc/sysconfig/network-scripts/.ifcfg-ens33.swp

 

 

视图模式(命令模式) vim进入编辑

 

块视图模式 -- VISUAL BLOCK -- Ctrl + v # 批量注释 1)Ctrl + v 进入块视图模式 2)按键盘的上下左右,选中想要的内容 3)如果是在行前加入内容,Shift + i 4)如果是在行后加入内容,Shift + a 5)输入想要的内容后,返回命令模式(ESC) 行视图模式 -- VISUAL LINE -- Shit + v     ## 编辑文件直接跳转到指定行 [root@localhost ~]# vim +N 1.txt // N为阿拉伯数字 [root@localhost ~]# vim +3 1.txt   ## 对比文件不同之处 [root@localhost ~]# vimdiff 1.txt 2.txt   [root@localhost ~]# diff 1.txt 3.txt    (另一种对比方式) 3,6c3,6 < http://pxost.baidu.com/index.html < http://mp3.baiadu.com/index.html < http://www.baidu.com/3.html < http://post.baidxu.com/2.html --- > http:aaaaa//pxost.baidu.com/index.html > http://mp3xxx.baiadu.com/index.html > http://www.baxxidu.com/3.html > http://post.baixxdxu.com/2.html   ## 同时编辑多个文件 (使用Ctrl + ww 进行切换) [root@localhost ~]# vim -o 1.txt 2.txt // 水平拆分 [root@localhost ~]# vim -O 1.txt 2.txt // 垂直拆分

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:文本编辑,##,所在,跳转,模式,vim,Linux,光标
From: https://www.cnblogs.com/style0427/p/18134213

相关文章

  • Linux文件属性及类型-替换(tr)
    1.##tr只能按照字符一一对应取替换,如果出现相同的字符,那么后面的赋值会将前面的赋值覆盖tr'被替换的内容''替换内容'<文件名可以替换但是文件真正的内容没变[root@localhost~]#tr'tyq''zyx'<1.txtzyxzym[root@localhost~]#cat1.txttyqtym如果不是一一对应就......
  • Linux内核协议栈skb成员
    struct__sk_buff{ __u32len; __u32pkt_type; __u32mark; __u32queue_mapping; __u32protocol; __u32vlan_present; __u32vlan_tci; __u32vlan_proto; __u32priority; __u32ingress_ifindex; __u32ifindex; __u32tc_index; __u32cb[5]; __u32has......
  • 04_NET中使用Redis(ServiceStack.Redis)和Linux中安装Redis
    官网:Redis-TheReal-timeDataPlatformLinux安装Redis: 1.安装gcc安装gccyum-yinstallgcctcl如果出现Complete表示成功查看gcc版本gcc-v 2.升级gcc升级到gcc9.3:yum-yinstallcentos-release-sclyum-yinstalldevtoolset-9-gccdevtoolset-9-gcc-c++......
  • 在Linux中,如何使用脚本进行系统配置和部署?
    在Linux中,使用脚本进行系统配置和部署是一种自动化和标准化环境设置的有效方法。脚本可以简化复杂的安装和配置过程,确保在多个系统或环境中的一致性。以下是使用脚本进行系统配置和部署的一般步骤:1.规划和设计在编写脚本之前,规划你需要执行的任务和步骤。确定脚本需要完成的功......
  • 在Linux中,如何使用LVM管理逻辑卷?
    在Linux中,逻辑卷管理(LVM)是一种灵活的磁盘管理方法,它允许你创建、调整和移动逻辑卷,而无需中断服务。LVM提供了对物理存储资源的抽象层,使得管理大型存储解决方案变得更加容易。以下是使用LVM管理逻辑卷的基本步骤:1.安装LVM工具首先,确保你的系统已经安装了LVM工具,包括lvm2和device......
  • 在Linux中,如何管理磁盘配额?
    在Linux中,管理磁盘配额是一种限制用户或组磁盘使用量的方法,以防止单个用户或组占用过多的磁盘空间,从而影响系统的稳定性和其他用户的正常使用。磁盘配额通常通过文件系统属性或使用专门的配额管理工具来实现。1.使用文件系统配额许多现代文件系统(如ext4、XFS)支持内置的磁盘配额......
  • 在Linux中,如何创建、检查和修复文件系统?
    在Linux中,创建、检查和修复文件系统是磁盘管理和维护的重要部分。以下是使用常用命令行工具进行这些操作的步骤:1.创建文件系统创建分区:使用fdisk或parted命令创建一个新的磁盘分区。sudofdisk/dev/sdx在fdisk提示符下,使用n创建新分区,w写入分区表并退出。格式化分区:......
  • 在Linux中,如何实现文件系统的快照和克隆?
    在Linux中,文件系统快照和克隆是两种用于数据备份和恢复的技术。快照是文件系统在特定时间点的只读副本,而克隆则是快照的可写副本。1.文件系统快照LVM(逻辑卷管理)提供了一种创建文件系统快照的简单方法。快照可以用于数据恢复、备份、升级系统或应用程序等场景。创建逻辑卷:如......
  • 2款Notepad++平替工具(实用、跨平台的文本编辑器)
    前言今天大姚给大家分享2款Notepad++平替工具,实用、跨平台(支持Window/MacOS/Linux操作系统平台)的文本编辑器。NotepadNextNotepadNext是一个跨平台的Notepad++的重新实现。开发是使用QtCreator和MicrosftVisualC++(msvc)编译器完成的。目前支持Window/MacOS/Linux操作......
  • 在Windows上部署ArchLinux(WSL)
    在Windows上部署ArchLinux(基于WSL)在开始前请确保你拥有一个Linux环境,以便于后续的步骤顺利地进行。ArchLinux大家应该用过,这个发行版属实需要折腾。但是MicrosoftStore没有提供ArchLinux的WSL版本,所以,才有了这篇文章。2024年4月14日补充:微软商店确实有,但是默认安装在C:......