教你用Vim编辑器

1、Vim编辑器基本使用方法

光标移动

查找/替换

插入模式

复制/粘贴

复制/粘贴

2、vim打开时的警告信息

当使用vim打开一个文件时,会同时在该目录下创建个.filename.swap的文件。对文件filename的操作会被记录到.filename.swap文件中,防止因意外关闭vim/断电等造成文件的损坏。

当存在.filename.swap的文件时,使用vim打开filename文件时,会出现以下提示

出现上述提示的问题有以下几点原因:

1、 可能有其他人或程序在同时编辑此文件

2、 在前一个vim中,可能因为某些不明原因或者正在编辑时掉电

解决方法:

针对第一种情况,找到编辑该文件的人,让其结束对文件的操作,然后再操作

针对第二种情况,因先按下R,这样vim会载入swap文件中的内容,挽救之前未保存的工作。但结束vim操作后,需要自行删除swap文件。

3、vim的块选择

例:

1) 建立文件host.txt

192.168.1.1 host1.class.net

192.168.1.2 host2.class.net

192.168.1.3 host3.class.net

192.168.1.4 host4.class.net

2)复制第二列的内容,将其粘贴到末行的下面

将光标移动到第一行的h上,按下 ctrl-v,这时候下面显示

移动光标选择

按y复制,按p粘贴

4、Vim的典型例子

1) 请在 /tmp 这个目录下建立一个名为 vitest 的目录;

2) 进入 vitest 这个目录当中;

3) 将 /etc/man.config 复制到本目录底下(或由上述的连结下载 档案);

4) 使用 vi 开启本目录下的 man.config 这个档案;

5) 在 vi 中设定一下行号;

6) 移动到第 58 行,向右移动 40 个字符,请问你看到的双引号内是什么目录?

7) 移动到第一行,并且向下搜寻一下『 bzip2 』这个字符串,请问他在第几行?

8) 接着下来,我要将 50 到 100 行之间的『小写 man 字符串』改为『大写 MAN 字符串』,并且一个一个挑选是否需要修改,如何下达指令?如果在挑选过程中一直按『y』, 结果会在最后一行出现改变了几个 man 呢?

9) 修改完之后,突然反悔了,要全部复原,有哪些方法?

10) 我要复制 65 到 73 这九行的内容(含有MANPATH_MAP),并且贴到最后一行之后;

11) 21 到 42 行之间的开头为 # 符号的批注数据我不要了,要如何删除?

12) 将这个档案另存成一个 man.test.config 的檔名;

13) 去到第 27 行,并且删除 15 个字符,结果出现的第一个单字是什么?

14) 在第一行新增一行,该行内容输入『I am a student...』;

15) 储存后离开吧!

结果如下:

1) 『mkdir /tmp/vitest』

2) 『cd /tmp/vitest』

3) 『cp /etc/man.config .』

4) 『vi man.config』

5) 『:set nu』然后你会在画面中看到左侧出现数字即为行号。

6) 先按下『58G』再按下『40→』会看到『/dir/bin/foo』这个字样在双引号内;

7) 先执行『1G』或『gg』后,直接输入『/bzip2』,则会去到第 118 行才对!

8) 直接下达『 :50,100s/man/MAN/gc 』即可!若一直按『y』最终会出现『在 23 行内置换 25 个字符串』的说明。

9) (1)简单的方法可以一直按『 u 』回复到原始状态,(2)使用不储存离开『 :q! 』之后,再重新读取一次该档案;

10) 『65G』 然后再『 9yy 』之后最后一行会出现『复制九行』之类的说明字样。 按下『 G 』到最后一行,再给他『 p 』贴上九行!

11) 因为 21~42 22 行,因此『 21G 』→『 22dd 』就能删除 22 行,此时你会发现游标所在 21 行的地方变成 MANPATH 开头啰, 批注的 # 符号那几行都被删除了。

12) 『 :w man.test.config 』,你会发现最后一行出现 "man.test.config" [New].. 的字样。

13) 『27G』 之后,再给他『 15x 』即可删除 15 个字符,出现『 you 』的字样;

14) 先『 1G 』去到第一行,然后按下大写的『 O 』便新增一行且在插入模式;开始输入『I am a student...』后, 按下[Esc]回到一般模式等待后续工作;

15) 『:wq』

Linux vim常见使用详解的更多相关文章

  1. Linux vim编辑器使用详解

    在Linux中,主要编辑器为vi或者vim,本文围绕vim做简单的讲解说明: Linux默认自带vi(vim)编辑器,其程序包为: [root@xuegod163 ~]# rpm -qf `--1.8 ...

  2. linux下tar命令详解

     linux下tar命令详解    tar是Linux环境下最常用的备份工具之一.tar(tap archive)原意为操作磁带文件,但基于Linux的文件操作机制,同样也可适用于普通的磁盘文件.ta ...

  3. [转帖]Linux:cut命令详解

    Linux:cut命令详解 https://www.cnblogs.com/Spiro-K/p/6361646.html cut -f cut -f -d cut -c1- 这三个命令好像最常见, 记 ...

  4. Linux /etc/profile文件详解

    Linux /etc/profile文件详解   转载地址:http://linux.chinaitlab.com/administer/820910.html linux /etc/profile文 ...

  5. Linux惊群效应详解

    Linux惊群效应详解(最详细的了吧)   linux惊群效应 详细的介绍什么是惊群,惊群在线程和进程中的具体表现,惊群的系统消耗和惊群的处理方法. 1.惊群效应是什么?        惊群效应也有人 ...

  6. syslog之一:Linux syslog日志系统详解

    目录: <syslog之一:Linux syslog日志系统详解> <syslog之二:syslog协议及rsyslog服务全解析> <syslog之三:建立Window ...

  7. 【转】linux中inittab文件详解

    原文网址:http://www.2cto.com/os/201108/98426.html linux中inittab文件详解 init的进程号是1(ps -aux | less),从这一点就能看出, ...

  8. (转)Linux curl命令参数详解

    Linux curl命令参数详解 命令:curl在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具.它支持文件的上传和下载,是综合传输工具, ...

  9. Linux下ps命令详解 Linux下ps命令的详细使用方法

    http://www.jb51.net/LINUXjishu/56578.html Linux下的ps命令比较常用 Linux下ps命令详解Linux上进程有5种状态:1. 运行(正在运行或在运行队列 ...

随机推荐

  1. 软件职位进阶--立Flag

    PS:是我从看过的书籍<软件测试进阶之路>上摘录的 很喜欢:深耕细作一词,可以走管理leader方向,但我更愿意是技术掌握到手后,兼职管理岗位. 庆幸吧,脚踏实地,没有上来就学自动化,所以 ...

  2. Spring Cloud和Spring Boot的区别

    Spring MVC: Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC ...

  3. orcal -学习准备

    格式化命令: 设置每行长度 SET LINESIZE 300; 设置每页长度 SET PAGESIZE 30; 使用文本编辑 文本编辑sql:ed aa 使用@aa 切换用户: CONN 用户名/密码 ...

  4. Python第7天

    其他内置函数: abs() 绝对值 all()均为真则为True any()有一个为真就为True bin()十进制->二进制 bool() 空,0,None为False,其余为True byt ...

  5. JS常见兼容性问题

    兼容性问题:函数(方法)兼容 描述:部分W3C指定的函数,有部分老的浏览器不支持 解决: 条件判断,如果有,则使用,添加原型方法,例如 String 的 trim 方法 if(!String.prot ...

  6. 3sum 求三数之和等于0,不允许重复

    https://leetcode.com/problems/3sum/ 套路比较常见了,最重要的是去重.还是没法一次通过. class Solution { public: vector<vec ...

  7. angular的符号

    1.括号 {{模板标签}}: 模板标签中的内容会被当作一个表达式展开. [传入名] = ”接收变量名“: 可以把一个值传入组件.输入. (事件名) = “处理函数()”: 响应事件.输出. #视图变量 ...

  8. leetcode答案 有效的括号(python)

    def isValid(s): if s and len(s) % 2 is 0: a = {')': '(', ']': '[', '}': '{'} l = [None] for i in s: ...

  9. 二.第一个自动化demo,打开APP-如何获取包名和activity。(真机)

    环境配置成功后,我们就可以进行第一个自动化测试了.用真机则不需要安装安卓模拟器.以一个简单的打开APP为例. 一.获取包名和activtity      启动一个app,我们需要知道它的平台.版本号. ...

  10. 团队作业5——《Spring_Four》项目需求改进与系统设计

    团队项目需求分析改进: 任务1: a.分析<基于Jsoup的大学生考试信息展示系统项目需求规格说明书>初稿的不足,特别是文档需求描述建模不完整的内容. 通过软件工程更深入的学习发现我们的需 ...