第五章VIM工具

本文详细介绍Vim编辑器的安装、配置及多种实用功能,包括颜色显示、光标移动、复制剪切、编辑模式切换、命令模式使用、文件加密解密、客户端连接问题解决、代码粘贴自动缩进调整、快速删除字符、有趣操作如替换模式和可视模式、多文件编辑、查找替换、文件另存、命令执行、同屏编辑、大小写敏感搜索、只读设置及恢复文件状态。

5.1 vim介绍

5.2 vim颜色显示和移动光标

5.3 vim一般模式下移动光标

5.4 一般模式下复制剪切粘贴

5.5 进入编辑模式

5.6 vim命令模式

5.7 vim拓展

 

5.1 vim介绍

yum install -y vim-enhanced      #安装vim工具

 

5.2 vim颜色显示和移动光标

 

/etc/vimrc(存在) 或用户家目录/vimrc(不存在,可创建)                 #vimrc是vim 的配置文件

 

5.3 vim一般模式下移动光标

一般模式移动光标:

数字+按键                          #表示移动多少

例: 10 +  k                  #表示向上移动10个字符      

 

vim界面右下角如下:

 

#36表示第36行,1表示第1个字符,50%表示已经到文章50%内容

 

5.4 一般模式下复制剪切粘贴

 

 

# ndd删除/剪切的方向是往下的

#u最多恢复50次

#CTRL + r   #重新返回(当u多按一次时使用)

#小p向下粘贴,大P向上粘贴

 

 

5.5 进入编辑模式

 

i                          #光标所在行直接插入

I                         # 光标所在行行首插入

o                        #光标所在行下面一行插入

O                       #光标所在行上面一行插入

a                        #光标所在的后一位插入

A                       #光标所在行行尾插入

 

5.6 vim命令模式

 

vim命令模式的三种替换字符方式 

  • 1,100s/查找字/替换字/g

  • 1,100s@查找字@替换字@g

  • 1,100s#查找字#替换字#g

 

替换:

1,100s/查找字/替换字/g

 

原本

 

:1,22s/root/xin123             #不加/g

 

:1,22s/root/xin123 /g

 

1,100s   #范围1~100行之间      

 1,$s         #范围整个文档

/g            #本行所有查找的字替换,不加/g,只会替换当前行的第一个替换字

 

#wq与x功能相似,但是wq会改变mtime,x不会

 

#1,$s/word1/word2/g     #当word1有/与前面的/冲突时,将前面的/和g前面的/改为#即可

 

例:1,$s#/root#/xin/windows#g  

 

5.7vim拓展

一、vim加密

一、        利用 vim/vi 加密:

优点:加密后,如果不知道密码,就看不到明文,包括root用户也看不了;

缺点:很明显让别人知道加密了,容易让别人把加密的文件破坏掉,包括内容破坏和删除;

 

vi编辑器相信大家都很熟悉了吧,vi里有一个命令是给文件加密的,举个例子吧:

1)        首先在root主目录/root/下建立一个实验文件text.txt:

[root@www ~]#  vim/vi  text.txt

2)        进到编辑模式,输入完内容后按ESC,然后输入:X(注意是大写的X),回车;

3)        这时系统提示让你输入密码,2次,如下所示:

输入密码: *******

请再输入一次: *******

4)        保存后退出,现在这个文件已经加密了;

5)        用cat或more查看文件内容,显示为乱码;用 vim/vi 重新编辑这个文件,会提示输入密码,如果输入的密码不正确,同样会显示为乱码!

注意:文件加密后,千万别忘了密码

 

二、        解密用vi加密的文件(前提是你知道加密的密码):

1)        用 vim/vi 打开文件如text.txt,要输入正确的密码,然后在编辑时,将密码设置为空,方法是输入下面的命令:

:set key=

然后直接回车,保存文件后,文件已经解密了。

2)        或者这样也行:

在正确打开文件后用 “:X” 指令,然后给一个空密码也可以。保存用“wq!”保存。

两种方法实际上效果是一样的。

 

 

二、客户端putty, xshell连接linux中vim的小键盘问题

 

1、在putty上用vi的时候,开NumLock时按小键盘上的数字键并不能输入数字,而是出现一个字母然后换行(实际上是命令模式上对应上下左右的键)。解决方法

 

选项Terminal->Features里,找到Disable application keypad mode,选上就可以了

 

 

2、在xmanager 4 中的xshell也有小键盘问题 解决方法为

 

修改session 属性 -> 终端->VT模式->初始数字键盘模式

 

选择 设置为普通。

 

 

三、vim 粘贴代码自动缩进导致全乱了

用vim打开一个空白文档,然后把已经复制的代码给粘贴进来,发现它有自动缩进功能,最终导致粘贴的文本一行比一行靠右,看起来乱成一团。比较快的解决办法是,

1、在粘贴文档前,在命令行模式下,输入

 :set noai nosi

然后按'i' 进入编辑模式,再粘贴已经复制的代码内容,这样就不会自动缩进了。

 

2、有时候,这样的方法不好用,可以尝试这种:

:set paste

 

 

四、vim 快速删除指定的一段字符

1、使用da,将要删除的那一大串字符用{ }括起来,然后将光标英东到括号前一个字符处,按da即可删除这串字符。

另外,除了可以使用{ 外,还可以使用 ", ', (  等成对的特殊符号。

 

2、其实vim还有一个比较常用的那就是v了,用v和d来删除也挺方便的:

打开一个文本后,直接按v,然后移动光标可以选中文本,当选中完你想要的文本后,直接按d,就删除了。

 

 

五、vim编辑器里面一些有趣的操作

1.vim编辑器的替换模式与可视模式

在一般模式下按键盘上的r和R进入替换模式。如果按小r那么这时候就进入了替换模式,你下一个输入的字符会把你当前光标所在处的字符替换,然后自动退出替换模式。如果你按的是大R那么你下面输入的所有字符会把后面的字符依次替换,直到按退出替换模式。

 

在一般模式下按键盘上的v和V进入可视模式。如果是按小v那么这时候就时入了视图模式,这时候你移动光标会把你光标所在处到光标结尾处的所有字符选中,这时候可以进行复制,删除等操作。如果是按大V同样也是进入了视图模式,这时候移动光标会把光标所在行到光标结尾的行的所有内容选中,也可以进行复制,删除等操作。

 

注意:使用在一般模式使用“ctrl+v”组合键可以进入块操作模式

在这个模式下和可视模式差不多,但是选择的内容不同,大家可实际操作看看

 

2.在一般模式下输入大写“D”或者输入“d$”      #删除从光标所在处到行尾字符

 

3.在一般模式下输入大写“d^”                             #删除从光标所在处到行首字符

 

4.在一般模式下输入大写“dG”                             #删除从光标所在行到文件末尾行

 

5.删除指定范围内所有行                                    #一般模式下输入“:m,nd”,按回车键

例:删除10到15行的所有内容,在一般模式下输入“:10,15d”回车

 

6.把正在编辑的文件另存为新文件

例:把正在编辑的文件另存为到“/root/”下面并保存为1.txt

在一般模式下输入“:w /root/1.txt”

例:把正在编辑的文件的第10行到第15行另存为1.txt并保存到root目录下在一般模式下输入“:10,15 w /root/1.txt”

 

7.把其它文件的内容导入到正在编辑的文件的光标所在处

例:把“/root/1.txt” 文件的内容,导入到下在编辑的文件的第10行下面

首先在一般模式下按“10G”把光标定位到第10行

然后按“o”小写,当前行的下面另起一行,并进入插入模式

最后按键盘上的返回到一般模式,再输入“:r /root/1.txt”回车

 

8.正在编辑文件时,不退出文件仍可以运行linux命令

例:我下在编辑一个文件,但这时候我想查看“/root/1.txt” 文件的内容,但是我不想退出我正在编辑的文件,那么我们可以这样

在编辑模式下输入“:! cat /root/1.txt”

 

9.把命令的执行结果导入到正在编辑的文件的光标所在处

这题我们可以结合上面两题,在一般模式下输入“:r ! cat /root/1.txt”

 

10.查找替换的功能使用

例:在10到15行的行首增加“#”

在一般模式下输入“:10,15s/^/#/”

例:在10到15行的行首去掉“#”

在一般模式下输入“:10,15s/^#//”

例:在10到15行的行首增加“//”

在一般模式下输入“:10,15s/^/\/\//”或者“:10,15s@^@//@”或者“:10,15s#^#//#”

 

注意:在上面所有命令的最后面都可以加g或者c一起配合使用,g的意思是行中出现的所有指定字符都替换,但是如果加了g那么前面就不能出现位置定义字符,反之前面出现的位置定义字符,那么后面就不可以出现g。在后面加c可以跟用户交互,在查找到符合命令的字符提示用户是否替换,需要用户确认,否则不需要确认

 

11.把输入的指定字符替换为指定的字符

 

例:在编辑一个文档的时候,我要频繁的输入“abcdefghijklmnopqrstuvwxyz”这样的连续字符串,这时候我想只输入一个或者一串指定字符就可以替换为刚才的字符,比如我指定输入“aming”系统就会自动把“aming”替换成“abcdefghijklmnopqrstuvwxyz”

在一般模式下输入“:ab aming abcdefghijklmnopqrstuvwxyz”然后回车,再进入编辑模式,当你输入“aming”的时候就会发现自动替换成了“abcdefghijklmnopqrstuvwxyz”

 

12.快捷键的定义

 

例:我想在一般模式下按键盘上的ctrl+b快捷键,会自动在光标所在行的行首插入“#”号,然后自动退出到一般模式

在一般模式下输入“:map ctrl+v ctrl+b I # ”然后回车,这时候在一般模式按键盘上的ctrl+b的时候就会在光标所在的行首插入“#”号了

 

注意:命令中ctrl+v和ctrl+b是键盘上的组合键,不是输入进去的字符,是需要按的组合键,其中第一个ctrl+v就照按,第二个ctrl+b是要定义的快捷键,根据自己需要的设置按。然后“I”的意思就是一般模式下的“I”进入插入模式并将光标移动到行首,然后接着输入“#”号,后面“”的意思是退出编辑模式

 

13.同进编辑两个文件或者

 

例:我现正在编辑1.txt文件,然后我想再打开root目录下的2.txt同时编辑,并把窗口上下水平分隔,一起显示

在一般模式下输入“:new /root/2.txt”

 

例:我现正在编辑1.txt文件,然后我想再打开root目录下的2.txt同时编辑,并把窗口左右垂直分隔,一起显示

在一般模式下输入“:vsplit /root/2.txt”

 

注意:在一般模式下按“ctrl+w”组合键,再按左右,或者上下方向键,可以在不同窗口之间切换如果在一般模式下输入“:only”那么只保留当前正在编辑的窗口,其它全关闭

 

 

14.在vim查找关键字时不区分大小写

在一般模式下输入“:set ic

如果想取消就输入“:set noic

 

15.如何把文件设置成只读文件,只有强制保存时才能保存

在一般模式下输入“:set readonly”

 

17.把文件恢复到打开时的状态

在一般模式下输入“:e!

 

18.配置文件的使用

以上那么多操作,像设置忽略大小写,设定快捷键,设定自动替换,等一些操作,当电脑重启后就没有了。这时候我们可以把这些命令写入配置文件,这样电脑重启后还是可以使用,我们有两种方法

第一种:所有用户都统一

修改“/etc/vimrc”文件,在末尾加入需要设置的命令,就是我红色标注的部分

第二种:只对当前用户

修改用户家目录下的“.vimrc”文件,注意有个点,这是隐藏文件,一般用户家下没有,需要自己手工

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值