业界动态
Linux vi/vim 工具
2024-11-12 10:24

目录

Linux vi/vim 工具

一、vi和vim命令

1.1、命令模式

1.1.1、vi清空文本所有内容

1.2、插入模式(编辑模式)

1.3、底行模式

1.3.1、替换文本内容

1.3.2、查找符合要求的字符串并执行相应操作(以行为单位

1.4、其他

1.4.1、多窗口同时编辑(退出要退多次

1.4.2、vim缓存文件(锁文件

1.4.3、vi/vim 键盘图

1.4.4、批量修改文件内容

1.4.5、不要用vim打开大文件

1.4.6、定制vim的工作特性


 

vim 配置文件位置: /etc/vimrc

 

  vi有三种模式(互相切换)

      

       i   --- 表示从光标所在位置进入编辑状态   

       I   --- 表示将光标移动到一行的行首,再进入编辑状态

       o   --- 在光标所在行的下面,新起一行进行编辑

       O   --- 在光变所在行的上面,新起一行进行编辑

       a   --- 将光标移动到右边的下一个字符,进行编辑

       A   --- 将光标移动到一行的行尾,进入到编辑状态

       C   --- 将光标到行尾内容进行删除,并进入编辑状态

       cc  --- 将整行内容进行删除并进入编辑状态

       r   --- 直接替换

       u   --- 输错信息,回撤操作

(多次按u可以回滚多次操作,也可以用Nu撤销指定撤销多少次操作(可以回滚到原始内容,提示Already at oldest change为止

       Ctrl + r   --- redo 回撤操作

       G   --- 将光标快速切换尾部

       gg  --- 将光标快速切换首部

       ngg --- 表示移动到第几行

y$  --- 复制光标到行尾  

       $   --- 将光标移动到一行的结尾

       0 或者 ^  --- 将光标移动到一行的行首

       dG   --- 将光标所在位置内容,到行尾信息全部删除

       p    --- 将内容进行粘贴(粘贴在光标下一行

       P(大写)   --- 将内容进行粘贴(粘贴在光标上一行

       yy   --- 复制一行内容

       3yy  --- 复制多行内容(从光标位置开始,总共复制3行)  

       dd   --- 将一行内容进行删除(剪切)  

       3dd  --- 将多行内容进行删除(剪切)  

       x    --- 删除一个字符(光标所在位置)      

       X(大写)  ---删除一个字符(光标所在位置前面的一个字符)   

j 或者 方向键↓ ---向下移动一行(向下移动30行:30j

       k 或者 方向键↑ ---向上移动一行

       w ---跳到光标所在单词的下一个

b --- 跳到光标所在单词的上一个

W --- 跳到光标所在单词的下一个(跳过字符)

B ---跳到光标所在单词的上一个(跳过字符)

ctrl + b  --- 翻转到上一页

ctrl + f  --- 翻转到下一页

D  --- 删除光标所在单词后所有内容,至行末

J  --- 合并下一行

ggVG  --- 全选文本内容

v  --- 可视化模式是非常有用的一种模式,在普通模式下按v即可进入。

使用h(左)、j(下)、k(上)、l(右)进行漫游,选中相应的内容。

按ESC退出

 

1.1.1、vi清空文本所有内容

gg

加上

dG

 

 

esc --- 退出编辑模式

 

       :wq  --- 保存并退出

       :w   --- 保存

       :q   --- 不保存退出

       :wq!  --- 强制保存退出

       :wqa  --- 保存所有文件并退出

       :q!  --- 强制退出

:nohl  ---  取消高亮    

        /      ---  进入搜索状态(向下搜索 n依次向下,N是向上)

       /PATTERN:从当前光标所在处向文件尾部查找能够被当前模式匹配到的所有字符串

       ?PATTERN:从当前光标所在处向文件首部查找能够被当前模式匹配到的所有字符串

 

        :set nu   --- 显示行数

:set nonu   --- 取消显示行数

 

%s#s##g  --去掉空白格( 是换行符

 

:!command   --- 暂时离开vim的编辑环境,去执行后面的Shell命令(例如要列出根目录下包含文件,则输出命令:!ls /,按下Enter键后又回到vim编辑环境。

 

忽略大小搜索(三种方法

        1. 设置方法   :set ic      取消方法 :set noic
        2. 设置方法   :set ignorecase    取消方法  :set  noignorecase
        3. / 要搜索的内容 c

      

 

:2,4move9      --- 将第几行到第几行的内容移动到指定行的后面

        :2,4copy9      --- 将第几行到第几行的内容复制到指定行的后面

 

  :r  可以将另外一个文件的内容读取到你正在编辑的文件上。        

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_10,color_FFFFFF,t_70,g_se,x_16

:r !command --- 就是把 command 命令的结果读取到当前编辑的文

件上面来

 

tips:如果在读取文件的时候使用了重定向到正在编辑的文件

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_19,color_FFFFFF,t_70,g_se,x_16

此时按“O”临时保留现有文件(此时文件已经被改变

按“L”重新加载文件的最新内容。(可以查看:help W12 或 w11

 

1.3.1、替换文本内容

         %s#oldboy#oldgirl#g   --- 将文件中指定信息全部做替换

         参数解释

% 全部做替换

           s substitute  替换

           g global      将整行符合要求的字符都做替换

            #要替换的信息#修改成什么信息#

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

        

   例如:替换修改文件部分内容

       :2,4s#oldgirl#oldboy#g    --- 将第二行到第四行内容进行替换

       :12,$s#oldgirl#oldboy#g   --- 将第十二行到结尾内容进行替换

      watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16        

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_17,color_FFFFFF,t_70,g_se,x_16

  watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

 

 

1.3.2、查找符合要求的字符串并执行相应操作(以行为单位

一般格式::[range]g/pattern/cmd

对range内所有符合pattern的行执行cmd

常见的一些用法

1, 删除包含某个Pattern的行

:g/pattern/d, 实际上作者更推荐这种用法: :g/pattern/d_

2,删除不包含某个Pattern的行

:g!/pattern/d 或者 :v/pattern/d,v表示inverse

3,删除所有空行

:g/^s*$/d,其中 s* 表示0个或者多个空格;似乎用 :g/^$/d 也行

 

例子

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_17,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_16,color_FFFFFF,t_70,g_se,x_16

 

 

1.4.1、多窗口同时编辑(退出要退多次

垂直2个分屏

# vim -O2 /tmp/f1 /tmp/f2   

水平2个分屏

# vim -o2 /tmp/f1 /tmp/f2

 

切换光标到指定窗口:Ctrl+w,按方向键,切换后,光标所在窗口

的状态栏会加粗显示

 

退出文件编辑:先退出光标所在窗口的文件,再退出另外一个

 

实际应用举例:使用分屏在文件间复制粘贴

2yy → (ctrl+w+(垂直:←→/水平:↑↓+p

 

1.4.2、vim缓存文件(锁文件

编辑文件突然非正常状态退出

vim编辑文件原理

    01. 开始利用vim编辑一个文件

    02. 需要判断编辑的文件所在目录中是否有隐藏文件

        a 拥有: 会有报错提示信息

        b 没有: 进入到命令模式

    03. 在命令模式就会产生临时文件

    04. 进入编辑模式对文件进行编辑

    05. 编辑完成之后需要确定是否正常保存退出

        a 是正常退出: 从编辑状态--esc--命令模式--:wq保存退出 (将临时文件重命名)

        b 非正常退出: 临时文件会永久保留

 

解决问题方法:

    第一个步骤: 进行查看文件内容

       按大写字母O

    第二个步骤: 确认文件是否需要恢复

       需要恢复: 重新编辑按R,恢复文件内容

       不用恢复: 重新编辑按E,进行重新编辑

    第三个步骤: 将临时文件进行删除

       1. 按大写字母D删除文件

       2. 利用rm命令删除临时文件

            #rm -f /oldboy/.oldboy.txt.swp

   

Tips.存在缓存文件时,分两种情况处理

Case 1:如果是一个正在编辑的文件被两个或多个程序打开,这个

要注意文件的保存可能会产生意外的结果(通常建议退出只保留一

个程序独占该文件,这时候缓存文件会删除

Case 2:如果是正在编辑的文件意外退出,可以使用 :recover 或者

vim -r 文件名去恢复更改(将缓存文件应用到现有编辑的文件

操作之后用 rm -f 删除缓存文件来避免再次提示此信息。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.4.3、vi/vim 键盘图

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

> 翻转到上一页:ctrl + b

 

> 翻转到下一页:ctrl + f

 

 

1.4.4、批量修改文件内容

01. 批量进行注释 --- 批量添加信息

        第一个步骤:进入批量编辑状态(视图模式

          ctrl+v    --- 进入视图模式

          -- VISUAL BLOCK --     

        第二个步骤:批量选中要编辑的行

         方向键选择

        第三个步骤:进行编辑修改

         shift+i--进行单行编辑

        第四个步骤:实现批量修改

         按esc

        

02. 批量删除信息(删除列

       第一个步骤:进入批量编辑状态(视图模式

            ctrl+v    --- 进入视图模式

           -- VISUAL BLOCK --

       第二个步骤:批量选中要删除的列

          方向键选择 

       第三个步骤:删除信息

           按键盘字母d 或者 按键盘字母x      

 

03. 批量删除信息(删除行

       第一个步骤:进入批量编辑状态(视图模式

           Shift + V 进入基于行的可视模式

      

       第二个步骤:选择要批量删除的行

           方向键选择

   

       第三个步骤:删除信息

           按键盘字母d 或者 按键盘字母x

 

 

 

1.4.5、不要用vim打开大文件

不要使用vim打开大文件,vim会一次性读取所有内容到内存,容易造成宿主机内存溢出。

打开文件前,可以使用du -h命令查看文件大小。一般,100MB以下为宜。

 

 

1.4.6、定制vim的工作特性

   

       注意:在末行模式下的设定,仅对当前vim进程有效

       永久有效

           全局:/etc/vimrc

           用户个人~/.vimrc

          

       1、行号

           显示:set number, 简写为set nu

           取消显示:set nomber, set nonu

       2、括号匹配高亮

           匹配:set showmatch, set sm

           取消:set nosm

       3、自动缩进

           启用:set ai

           禁用:set noai

       4、高亮搜索

           启用:set  hlsearch

           禁用:set nohlsearch

       5、语法高亮

           启用:syntax on

           禁用:syntax off

       6、忽略字符大小写

           启用:set ic

           禁用:set noic

          

       获取帮助

           :help

           :help subject

    以上就是本篇文章【Linux vi/vim 工具】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/news/429.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 https://sicmodule.kub2b.com/mobile/ , 查看更多   
最新文章
摩托罗拉RAZR手机怎么样 摩托罗拉RAZR手机介绍 每日快看摩托罗拉手机怎么样「摩托罗拉RAZR手机怎么样 摩托罗拉RAZR手机介绍 每日快看」
大家好,来来为大家解答以上问题。摩托罗拉droid,razr(摩托罗拉droid)很多人还不知道,现在让我们一起来看看吧!【资料图】一.
苹果iPhone14和13对比区别是什么 苹果怎么以旧换新购买?苹果手机换新「苹果iPhone14和13对比区别是什么 苹果怎么以旧换新购买?」
处理器、屏幕、摄像头、内存等不同处理器相同:iPhone14的处理器没有变化,还是iPhone13 Pro上的满血版A15 仿生芯片,只有iPhone
这等神卡!价格便宜!19元192G|2024流量卡推荐 手机卡 广电祥龙卡手机流量卡「这等神卡!价格便宜!19元192G|2024流量卡推荐 手机卡 广电祥龙卡」
大家好,我是你们的流量卡测评员。本期,我将为大家带来广电祥龙卡的全面测评。这张卡凭借其独特的套餐设计和长期流量优惠,在市
每日记账本手机记账本「每日记账本」
《每日记账本》是一款简单易用的免费记账软件,具有以下优点:首先,它能够协助用户记录每天的花费、收入、资产和帐务。用户可以
朝鲜印象:朝鲜很多场景让人怀旧,使用手机的人越来越多朝鲜手机「朝鲜印象:朝鲜很多场景让人怀旧,使用手机的人越来越多」
朝鲜是我很想去旅行的国家,最近终于有机会前往朝鲜旅游。短短几天的旅程,我发现这个让我觉得神秘的国家,和我想象中的朝鲜,还
iuni N1获封“小苹果” 霸气PK iPhone 6小苹果手机「iuni N1获封“小苹果” 霸气PK iPhone 6」
  说起手机,可能你第一个想到的就是苹果,实际上,苹果手机代表的不仅仅是一个品牌,还是一种精神,一种做手机的工匠精神!有
荣耀体脂秤怎么连接手机 荣耀体脂秤怎样连接手机体脂秤怎么连接手机「荣耀体脂秤怎么连接手机 荣耀体脂秤怎样连接手机」
好酷屋教程网小编为您收集和整理了荣耀体脂秤怎么连接手机 荣耀体脂秤怎样连接手机的相关教程:以荣耀10,emui8,运动健康10.0.2
小米平板电脑怎么插卡平板可以插手机卡吗「小米平板电脑怎么插卡」
小米平板电脑以其强大的功能和便携性,赢得了众多用户的青睐。对于需要移动网络支持的用户来说,如何在小米平板电脑上插卡成为了
苹果手机蓝牙与苹果电脑蓝牙怎么连接不上?蓝牙耳机连接不上手机怎么办「苹果手机蓝牙与苹果电脑蓝牙怎么连接不上?」
1、苹果产品的蓝牙一般只能连接外设,不能传文件。所以不能搜索别的手机,一直处于搜索状态。然而使用蓝牙耳机、蓝
2023年小米主题破解教程,安装第三方主题小米手机主题「2023年小米主题破解教程,安装第三方主题」
安装非来自主题商店的主题。2023年5月更新(有很多教程可能不适应当今版本)材料:1.小米手机MIUI14.0.6系统#用于执行的平台2.面具#