linux中强大的vim你还是只会普通的编辑保存内容?,2024年最新牛皮轰轰

本文详细介绍了Vim编辑器的基本操作,包括模式切换、编辑模式中的命令、暂存文件的使用、恢复功能、块选择、多文件编辑、多窗口功能以及ex指令和set参数设置。此外,还讨论了vim编辑器在Linux环境中的重要性和常见问题解决方法。
摘要由CSDN通过智能技术生成
  • p将已复制的数据在光标下一行粘贴上

  • P 则为贴在光标的上一行

  • u 恢复前一个操作(后退)

  • Ctrl+r重做上一个操作

  • Ctrl + R 撤销刚才的撤销(前进)

  • . 是重复前一个操作

一般模式切换到编辑模式的可用的按钮说明

  • i, I 进入编辑模式:

i 为从目前光标所在处插入

I 为在目前所在行的第一个非空格符处开始插入

  • a, A 进入编辑模式(Insert mode):

a 为 从目前光标所在的下一个字符处开始插入

A 为 从光标所在行的最后一个字符处开始插入

  • o, O 进入编辑模式:

o 为 在目前光标所在的下一行处插入新的一行

O 为在目前光标所在处的上一行插入新的一行

  • r, R 进入取代模式:

r 只会取代光标所在的那一个字符一次

R会一直取代光标所在的文字,直到按下 ESC 为止;

  • Esc 退出编辑模式,回到一般模式

一般模式切换到命令行模式可用的按钮说明

  • :w 保存编辑的内容

  • :w!强制写入该文件,但跟你对该文件的权限有关

  • :q 离开vi

  • :q! 不想保存修改强制离开

  • :wq 保存后离开

  • :x 保存后离开

  • ZZ 若文件没有更动,则不保存离开,若文件已经被更改过,则保存后离开

  • :w filename 将编辑的数据保存成另一个文件(类似另存)

  • :r filename 在编辑的数据中,读入另一个文件的数据。即将- filename 这个文件的内容加到光标所在行后面。

  • :n1,n2 w filename 将n1到n2的内容保存成filename这个文件。

  • :! command暂时离开vi 到命令行模式下执行command的显示结果!例如 - :! ls /home即可在 vi 当中察看/home底下以ls输出的文件信息!

  • :set nu 显示行号

  • :set nonu 与 set nu 相反,为取消行

vim的缓存文件、恢复与开启时的警告信息


说明

  • 我们知道一些常用的编辑软件,都有个恢复的功能,就是说当你的系统因为某些原因而导致类似当机的情况时,还可以利用这个恢复功能将之前未保存的数据找回来。我们的VIM也有这个功能。

  • 当我们在使用vim编辑时,vim会在与被编辑的文件的目录下,再建立一个名为 .filename.swp的文件。如果你的系统因为某些原因断线了, 导致你编辑的文件还没有保存,这个时候.filenam.swp就能够发会救援的功能了。

  • 我们来演示一下

在文本中安 ctrl+z放到后台执行

“test.txt” 10L, 35C written

[1]+ Stopped vi test.txt

[root@ciserver ~]#

#我们停止VI的进程

#方法1

ps aux |grep vi

kill -9 进程编号

#方法2

jobs

kill -9 %1

[root@ciserver ~]# kill -9 %1

[1]+ Stopped vi test.txt

[root@ciserver ~]#

[1]+ Killed vi test.txt

[root@ciserver ~]# jobs

[root@ciserver ~]#

#我们用ls -l 命令来查看一下目录里面,会发现有个.test.txt.swp的文件,这个文件就是个缓存的文件

[root@ciserver ~]# ls .test.txt.swp

.test.txt.swp

[root@ciserver ~]#

  • 我们再来编辑

vim test.txt

这时候会出现一些信息

E325: ATTENTION

Found a swap file by the name “.test.txt.swp”

owned by: root dated: Tue Nov 16 11:14:11 2021

file name: ~root/test.txt

modified: no

user name: root host name: ciserver

process ID: 109278

While opening file “test.txt”

dated: Tue Nov 16 11:14:11 2021

(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 test.txt”

to recover the changes (see “:help recovery”).

If you did this already, delete the swap file “.test.txt.swp”

to avoid this message.

Swap file “.test.txt.swp” already exists!

[O]pen Read-Only, (E)dit anyway, ®ecover, (D)elete it, (Q)uit, (A)bort:

  • 遇到这种情况有2种情况

  • 问题一:可能有其他人或程序同时在编辑这个文件:

  • 问题二:在前一个vim的环境中,可能因为某些不知名原因导致vim中断 (crashed):

  • 右下角会出现六个命令项,其作用说明如下:

  • (O)pen Read-Only:打开此文件成为只读档, 可以用在你只是想要查阅该文件内容并不想要进行编辑行为时。一般来说,在上课时,如果你是登入到同学的计算机去看他的配置文件, 结果发现其实同学他自己也在编辑时,可以使用这个模式;

  • (E)dit anyway:还是用正常的方式打开你要编辑的那个文件, 并不会载入暂存盘的内容。如果说两个人都在编辑这个文件的话,很容易出现互相改变对方的文件等问题。

  • (R)ecover:就是加载暂存盘的内容,用在你要救回之前未保存的工作。 不过当你救回来并且储存离开vim后,还是要手动自行删除那个暂存档。

  • (D)elete it:你确定那个暂存档是无用的!那么开启文件前会先将这个暂存盘删除

  • (Q)uit:按下 q 就离开vim,不会进行任何动作回到命令提示字符。

  • (A)bort:忽略这个编辑行为,感觉上与 quit 非常类似!

处理方法

直接删除这个.test.txt.war文件就不会再有上面的报错了

[root@ciserver ~]# rm -rf .test.txt.swp

[root@ciserver ~]#

vim的功能

=====================================================================

其实,目前大部分的Linux发行版本都以vim取代了vi。为什么要用vim呢?因为vim具有颜色显示的功能,并且还支持许多的程序语法(syntax)和相应的提示信息。查看自己的VI是不是被VIM代替,可以用

alias这个命令来查看是不是有alias vi=’vim’这一行。

块选择【可视化操作】


  • v字符选择,会将光标经过的地方反白选择

  • V 行选择,会将光标经过的行反白选择

  • Ctrl+v 块选择,可以用长方形的方式选择资料 (提制竖列)

  • y 将反白的地方复制

  • d 将反白的地方删除

  • 如,我们批量注释内容或批量取消注释【必须使用vim】

  • ctrl+v快选择以后,按I插入,插入内容以后,再按→或←【或者直接esc以后会自动插入】,插入的内容就可以批量出现刚刚选择的地方了

额,没法展示,自己测试一下吧

多文件编辑


  • 大家在使用vim的时候,可能会碰到你需要复制一个文件中的某段到另外一个文件中,而vim不能够在关闭的时候,把这段保留住。或者是用其它的方法复制。

  • vim file1 file2

  • :n编辑下一个文件

  • :N编辑上一个文件

  • :files列出目前这个vim编辑的所有文件

多窗口功能


  • 有两个需要对照着看的文件

  • :sp filename开启一个新窗口,如果有加 filename, 表示在新窗口开启一个新文件,否则表示两个窗口为同一个文件内容(同步显示)。

  • ctrl+w+jctrl+w+↓按键的按法是:先按下 - ctrl 不放, 再按下 w 后放开所有的按键,然后再按下 j (或向下箭头键),则光标可移动到下方的窗口。

  • ctrl+w+kctrl+w+↑同上,不过光标移动到上面的窗口。

  • 上面详细说明了2个,下面总结几个切换到其他窗口的快捷键,如下

  • CTRL-W 、h 到左边的窗口

  • CTRL-W 、j 到下面的窗口

  • CTRL-W 、k到上面的窗口

  • CTRL-W、 l到右边的窗口

  • CTRL-W、 t 到顶部窗口

  • CTRL-W、 b 到底部窗口

  • 如果打开了多个窗口,针对所有窗口操作的命令

  • :qall放弃所有操作并退出

  • :wall保存所有

  • :wqall保存所有并退出。

vim的ex指令


  • 读写资料

  • :10,20w test 将第10行至第20行的资料写入test文件。

  • :10,20w>>test将第10行至第20行的资料加在test文件之后。

  • :r test 将test文件的资料读入编辑缓冲区的最后。

  • :e [filename] 编辑新的文件。

  • :e! [filename] 放弃当前修改的文件,编辑新的文件。

  • :sh 进入shell环境,使用exit退出,回到编辑器中。

  • :!cmd 运行命令cmd后,返回到编辑器中。

  • 删除、复制及搬移

  • :10,20d 删除第10行至第20行的资料。

  • :10d 删除第10行的资料。

  • :%d 删除整个编辑缓冲区。

  • :10,20co30 将第10行至第20行的资料复制至第30行之后。

  • :10,20mo30 将第10行至第20行的资料搬移至第30行之后。

vim的set参数使用说明


  • vim的环境设定参数有很多,如果你想要知道目前的设定值,可以在一般模式时输入:set all来查阅,由于设定项目实在太多了,我们在这里就仅列出一些平时比较常用的一些简单的设定值,给大家提供参考。

  • :set all 显示目前所有的环境参数设定值

  • :set paste解决粘贴格式乱的问题

  • :set cursorcolumn【简写set cuc】显示竖线,k8s和python炒鸡方便【有些工具可能不支持】

:set nocuc取消竖线

  • :set list显示制表位(Ctrl+I)和行尾标志($)

  • report:显示由面向行的命令修改过的数目

  • terse:显示简短的警告信息

  • warn:在转到别的文件时若没保存当前文件则显示NO write信息

  • :set hlsearch 高亮度反白(高亮度搜寻)

  • :set nohlsearch取消高亮度反白(高亮度搜寻)

  • :set backspace=2在编辑的时候可随时用退格键删除 (0、1的时候,只针对刚输入的字符有效)

  • :set autoindent自动缩排

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
img

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-DYYg5MVX-1712675934236)]

  • 27
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值