Linux文本编辑工具Vim解析 及 课后习题解答----工坊学习记录--3.1

一、文本编辑工具 Vim

 
若你的虚拟机系统没有Vim工具,可以输入如下命令安装:
#yum install -y vim-enhanced

 

Vim 的三种常用模式

1. 一般模式

当我们使用命令 vim filename 编辑文件时,默认进入该文件的一般模式。在这个模式下,你可以做的操作有:上下移动光标、删除某个字符、删除某行以及复制或粘贴一行或者多行。
 

移动光标,操作方法如表所示:

按键作用
h或者向左的方向键光标向左移动一个字符
l(小写字母l)或者向右的方向键光标向右移动一个字符
k或者向上的方向键光标向上移动一个字符
j或者向下的方向键光标向下移动一个字符
Ctrl+B文本页面向前翻一页
Ctrl+F文本页面向后翻一页
数字0或者Shift+6移动到本行行首
Shift+4移动到本行行尾
gg移动到首行
G移动到尾行
nG(n是任意数字)移动到第n行

删除、复制、粘贴,操作方法如表所示:

按键作用
x和Xx表示向后删除一个字符,X表示向前删除一个字符
nx向后删除n个字符
dd删除/剪切光标所在的那一行
ndd(n为number的缩写)删除/剪切光标所在行之后的n行
yy复制光标所在行
p从光标所在行开始,向下粘贴已经复制或者粘贴的内容
P从光标所在行开始,向上粘贴已经复制或者粘贴的内容
nyy从光标所在行开始,向下复制n行
u还原上一步操作
V按v后移动光标会选中指定字符,然后可以实现复制、粘贴等操作

 

2. 编辑模式

在一般模式下不可以修改某一个字符,如果要修改字符,只能进入编辑模式。从一般模式进入编辑模式,只需按i、I、a、A、o、O、r和R中的某一个键即可。当进入编辑模式时,在屏幕的尾行会显示INSERT或REPLACE的字样(如果你的CentOS支持中文,则会显示“插入”)。从编辑模式回到一般模式,只需按Esc键即可。
 

编辑模式操作如表所示:

命令作用
i在当前字符前插入
I在光标所在行的行首插入
a在当前字符后插入
A在光标所在行的行尾插入
o在当前行的下一行插入新的一行
O在当前行的上一行插入新的一行

 

3. 命令模式

在一般模式下,输入:或者/即可进入命令模式。在该模式下,我们可以搜索某个字符或者字符串,也可以实现保存、替换、退出、显示行号等操作。
 
如表所示:

命令作用
/word在光标之后查找一个字符串word,按n向后继续搜索
?word在光标之前查找一个字符串word,按n向前继续搜索
:n1,n2s/word1/word2/g在nl和n2行之间查找word1并替换为word2,不加g则只替换每行的第一个word1
:1,$s/word1/word2/g将文档中所有的worda替换为word2,不加g则只替换每行的第一个word1
:w保存文本
:q退出Vim
:w!强制保存,在root用户下,即使文本只读也可以完成保存
:q!强制退出,所有改动不生效
:wq保存并退出
:set nu显示行号
:set nonu不显示行号

 
 

二、课后习题

(1)vi与Vim有什么区别?它们之间有什么关系?
答:Vim是从Vi发展出来的一个文本编辑器,可以看作是vi的升级版。Vim的主要功能与原始的Vi完全兼容,与Vi不同的是,vi不会显示颜色,而vim会根据文件内容显示不同颜色,方便阅读和编辑。而且Vim具有代码补完、编译及错误跳转等方便编程的丰富功能,在程序员中被广泛使用。( Vim和Emacs并列成为类Unix系统用户最喜欢的编辑器。)

(2)如何查看当前系统的Vim版本?
答:如图:
在这里插入图片描述

(3)如何把文档中出现的全部abc替换成def?如何只替换每行中出现的第一个abc?
答:

:n1,$s/abc/def/g

:n1,$s/abc/def/

(4)当搜索某个关键词时,光标定位的关键词所在的行是如何决定的?也就是说,光标是定位到
出现关键词的最顶端那行还是最底端那行,还是另外的情况?如何从当前关键词移动到下一个关键词?如何从当前关键词移动到上一个关键词呢?

答:根据vim进入文档时,光标所在的位置,在哪个位置就是定位到靠近关键词最近的地方;如果使用 / 搜索关键词,则按 n 向下移动,按shift + n 向上,如果使用 ?搜索关键词,和前者正好相反。

(5)当编辑完文档后,按Esc键进人命令模式,此时输入命令:x,会怎么样?
答:

  1. 如果修改了内容就保存退出,并更新文件修改时间。
  2. 如果没有修改内容,一样会保存退出,不过不会更新文件修改时间。

(6)在一般模式下,如何把光标快速向右或向左移动10个字符?
答:向右:10l 向左:10h

(7)vim + filename表示什么含义?执行vim +10 filename将会发生什么?
答:进入文档后光标在尾行;进入文档光标在第十行。

(8)用Vim打开文档后,如何使光标跳转到第20行?如何使光标跳到最后一行呢?
答:输入20G ; 输入G

(9)用Vim打开文档后,默认是不显示行号的,如何才能显示行号呢?
答:

:set nu

(10)用Vim打开文档后,如何把第20行至第50行中的第一个abc替换为efg?如果想替换所有的abc
呢?

答:

:20,50s/abc/efg

:20,50s/abc/efg/g

(11)用Vim打开文档后,如何快速删除前100行?
答:先按“gg”到首行,再输入100dd

(12)用Vim打开文档后,如何复制一行并将其粘贴到第20行的下面?
答:定位到要复制的行,然后输入yy,然后输入20G,再输入p

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值