vim

5.5 进入编辑模式

  • 编辑模式是进入到可以删除,添加字符的模式

  • 按i键可以在光标前进行插入

  • 按I键光标会移动到该行的行首,再进行插入

  • 按o键可以在光标所在行的下一行插入新的一行

  • 按O键则是在光标所在行的上一行插入新的一行

  • 按a键光标向后移动一位,再进行插入

  • 按A键光标移动到该行的行末开始插入


5.6 vim命令模式

  • 在一般模式下,输入或者/即可进入命令模式
  • 在命令模式下,可以搜索某个字符或者字符串,也可以实现保存,替换,退出,显示行号等操作。
    (1)/word ——表示在光标之后查找该word字符串,按n键向后继续搜索
    (2)?word ——表示在光标之前查找该word字符串,按n键向前继续搜索
    (3):1,50s/word/boot/g ——表示在第一行到第50 行中所有的word替换为boot。如果不加g,那么某行中有多个word字符串则只替换第一个。
    (4):1,$s/word/boot/g ——表示将文档中所有的word替换为boot。
    (5):1,$s/\/etc\/hosts/aminglinux.com/g ——表示将文档中所有出现的/etc/hosts这个字符串替换为aminglinux.com,需要\来脱意。也可以用#来组成语法的字符,例:
1$s#/etc/hosts#aminglinux.com#g

(6):w -保存文本
:q -退出vim
:w! -强制保存,在root用户下,即使文本只读权限也可以完成保存
:q! -强制退出,所有改动不生效
:wq -保存并退出
:set nu -显示行号
:set nonu -不显示行号
:nohl -去除字符高亮状态
:x -当文件改动后,使用:wq与:x的作用是相同的。如果只是查看了该文档,没有任何操作,使用:wq来保存退出会修改该文件的mtime ,而使用:x则不会更改该文件的mtime(修改时间)


5.7 vim实践

1.分别向下,向上,向左,向右移动6个字符【6j , 6k ,6h ,6l】
2.分别向下、向上翻2页【分别按2次ctrl+f和ctrl+b】
3.把光标移动到第49行【49G】
4.把光标移动到行尾,再移动到行首【shift+4,shift+6或者0】
5.移动到1.txt文件的最后一行【shift+g】
6.移动到文件的首行【gg】
7.搜索文件中出现的“dnsmasq”,并数下该字符出现的次数【gg光标定位到首行,在输入/dnsmasq ,然后按n 】 共48次
8.把从第一行到第10行出现的dnsmasq替换成dns 【:1,10s/dnsmasq/dns/g
9.还原上一步操作 【u】
10.把整个文件中所有 的etc替换成cte:1,$s#etc#cte#g
11.把光标移动到第25行,删除字符ly 【25G 然后按j向右移动光标找到ly,按v选中,然后按x】
12.删除第50行【50G dd】
13.删除第37-42行的所有内容 【37G 6dd 】
14.复制第48行的内容并粘贴到第52行下面【48G, yy ,52G ,p 】
15.复制第37-42行的内容并粘贴到第44行上面【37G 6yy 44G P】
16.把第37-42行的内容移动到第19行下面【37G 6dd 19G p】
17.把光标移动到首行,把第一行内容改为#!/bin/bash【先gg定位到首行,再A进入编辑模式光标自动移动到第一行行末,删除之前的字符进行修改,:wq保存退出
18.在第一行下面插入新的一行,并输入#hello! 【光标定位到首行,按小写o进入编辑模式(光标自动新增加一行),输入#hello!即可
19.保存文档并退出 【:wq


扩展

  1. 一般模式下按r键,则输入的字符会替换光标所在处的字符。然后自动退出替换模式
  2. 一般模式下按R键,则会从光标所在处开始向后一直替换,退出替换需要使用ESC键。
  3. 在一般模式下按小v进入了视图模式,以光标所在位置为中心点向左或向右移动光标来选择字符,进行复制或删除,按V键则会吧光标所在行全部选择,再进行复制或删除。
  4. 删除从光标所在处到行尾字符 ——【在一般模式下输入大写“D”或者输入d d
    5.删除指定范围内所有行
    例:删除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”那么只保留当前正在编辑的窗口,其它全关闭

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

在一般模式下输入“:set ic”
如果想取消就输入“:set noic”

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

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

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

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

18.配置文件的使用
以上那么多操作,像设置忽略大小写,设定快捷键,设定自动替换,等一些操作,当电脑重启后就没有了。这时候我们可以把这些命令写入配置文件,这样电脑重启后还是可以使用,我们有两种方法
第一种:所有用户都统一
修改“/etc/vimrc”文件,在末尾加入需要设置的命令,就是我红色标注的部分
第二种:只对当前用户
修改用户家目录下的“.vimrc”文件,注意有个点,这是隐藏文件,一般用户家下没有,需要自己手工创建


vim里常用的快捷键
1,注释所有的行:ctrl+v j/k+ shift +i
2,查看光标当前的man手册 shift+k
3,d+f+字符
4,选中面积 v+t+字符
5,在vim里面删除光标后的所有字符 shift+d
6,删除当前光标上的单词 d+i+w
7,选中当前光标上的单词 v+i+w


删除一大段字符串
【可以按v键来进行选择,然后按d来删除这些字符串】


vim 粘贴代码自动缩进导致全乱了
【用vim打开一个空白文档,然后把已经复制的代码给粘贴进来,发现它有自动缩进功能,最终导致粘贴的文本一行比一行靠右,看起来乱成一团。比较快的解决办法是,在粘贴文档前,在命令行模式下,输入
:set noai nosi
然后按’i’ 进入编辑模式,再粘贴已经复制的代码内容,这样就不会自动缩进了。

可以尝试这种

:set paste】


客户端putty, xshell连接linux中vim的小键盘问题
1.putty设置
这里写图片描述

2.xshell设置

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

选择 设置为普通。


文件加密
Linux用vim/vi给文件加密和解密
一、 利用 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!”保存。
两种方法实际上效果是一样的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值