分享
 
 
 

(四)文本编辑器Vim/Vi

王朝学院·作者佚名  2016-05-26
窄屏简体版  字體: |||超大  

(四)文本编辑器Vim/Vi Posted on 2015-04-14 00:20 wsying 阅读(...) 评论(...) 编辑 收藏目录

前言常用命令扩展应用总结

本系列先前的随笔位于新浪博客

前言

Vi和Vim都是文本编辑器,不同的是Vim是Vi的升级版本,它不仅兼容Vi的所有指令,而且还有一些新的特性在里面。

Vim/Vi是一个功能强大的全屏幕文本编辑器,是linux/UNIX上最常用的文本编辑器,主要用于使用Linux Sever时进行类似于DOS下批处理的Shell脚本编程,以及进行配置文件的修改,它的作用是建立、编辑、显示文本文件。

Vim/Vi没有菜单,只有命令

Vim/Vi的三种工作模式:

常用命令1、插入命令插入命令命令

作用

a(append)

在光标后附加文本

A

在本行行末附加文本,即光标移至行末并进入插入模式

i(insert)

在光标前插入文本

I

在本行行首插入文本,即光标移至行首并进入插入模式

o

在光标下插入新行

O

在光标上插入新行

2、定位命令定位命令命令

作用

h、方向左键

光标左移一个字符

j、方向下键

光标下移一行

k、方向上键

光标上移一行

l、方向右键

光标右移一个字符

$

光标移至行尾

0

光标移至行首

H(High)

光标移至屏幕上端

M(Middle)

光标移至屏幕中央

L(Low)

光标移至屏幕下端

:set nu

显示行号

:set nonu

取消显示行号

gg

光标到第一行

G

光标到最后一行

nG、:n

光标到第n行

3、删除命令删除命令命令

作用

x

删除光标所在处字符

nx

删除光标所在处后n个字符

dG

删除光标所在行起到文件末尾的内容

D

删除从光标所在处到行尾

:n1,n2d

删除指定范围(n1~n2)的行

4、复制和剪切命令复制和剪切命令命令

作用

yy、Y

复制当前光标所在行

nyy、nY

复制当前光标所在行起n行

dd

剪切当前光标所在行

ndd

剪切当前光标所在行起n行

p(paste)

粘贴在当前光标所在行下面

P

粘贴在当前光标所在行上面

5、替换和撤销命令替换和撤销命令命令

作用

r(replace)

替换光标所在处字符

R

从光标所在处开始替换字符,按Esc结束

u(undo)

撤销上一步操作

6、搜索和替换命令搜索和替换命令命令

作用

/string

从前向后搜索指定字符串string

按n跳到下一个指定字符串出现的位置

按N跳到上一个指定字符串出现的位置

搜索时忽略大小写:set ic

:%s/old/new/g

全文替换指定字符串(用new替换old)

:n1,n2s/old/new/g

在一定范围(n1~n2)内替换指定字符串

7、保存和退出命令保存和退出命令命令

作用

:w

保存修改

:w new_filename

另存为指定文件

ZZ、:wq

保存修改并退出

:q!

不保存修改退出

:wq!(只有管理员root或

文件的所有者可以使用)

保存修改并退出

可忽略文件的只读属性

扩展应用

1.在当前文件末尾导入其他文件的内容:r 文件名

2.在Vim/Vi中执行命令:! 命令

3.在当前文件末尾导入命令执行的结果(上面两个命令结合):r !命令

范例:常用于把当前时间导入到文件末尾用来标识最后一次修改时间:r !date

4.定义快捷键:map 快捷键 触发命令(取消定义的快捷键:unmap 快捷键)

范例:定义快捷键ctrl+p在行首插入#注释本行:map ^P I#<ESC> (^P并不是直接打出来的,而是先按ctrl+v,再按ctrl+p,I为在行首插入,#为注释符号,在Shell脚本和Linux系统配置文件中#表示注释,<ESC>表示从插入模式返回到命令模式)

定义快捷键ctrl+b删掉行首字符(多用于取消注释):map ^B 0x(0把光标移至行首,x删除这个字符)

定义快捷键ctrl+e在当前光标前插入我的邮箱地址:map ^E iupc_eniac12@163.com<ESC>

5.连续行注释:n1,n2s/^/#/g(实际上就是之前提到过的替换命令,^表示行首(是直接打出来的,不是ctrl+v),这里的行首指的是这个位置不是光标移到行首指示的那个是字符,所以这么命令起到的作用是添加而不是替换,要添加的符号是#)

在大多数程序设计语言中注释符号是//,而不是#,这时连续行注释要这么写:n1,n2s/^/\/\//g(错误的写法:n1,n2s/^////,Vim识别不出中间的//为要添加的内容,所以要用转义字符'\/'表示'/',new的地方是\/\/,使用了转义字符表示//)

6.连续行取消注释:n1,n2s/^#//g(^#表示行首的#,把行首#替换成空,即删除行首#)

7.实时替换:ab mymail upc_eniac12@163.com(ab是替换命令,把a替换成b,此处a是mymail,b是upc_eniac12@163.com,该命令是实时替换即当我们在文本中输入mymail后再按下空格或ESC,Vim会自动把我们刚才输入的mymail替换成upc_eniac12@163.com,所以这是一个懒人必备的命令,取消这个实时替换的命令是:unab mymail)

上述对Vim的设置只在本次打开有效,如果要让其再任意时刻打开都有效需要编辑Vim的配置文件(~/.vimrc,~表示用户的宿主目录,管理员root的宿主目录缺省在/root下面,普通用户的宿主目录缺省在/home下面),配置文件.vimrc缺省是空的,例如在文件中写入set nu,则以后每次打开Vim都会默认显示行号

总结

Vim/Vi博大精深,初学者使用会觉得十分复杂,操作效率低下,但当你完全熟悉了它之后,你就会觉得它简直就是个神器,使用它可以极大的提高我们码代码的效率。

这是一个你不需要使用鼠标,不需使用小键盘,只需要使用大键盘就可以完成很多复杂功能文本编辑的编辑器,不然,Visual Studio也不就会有vim的插件了。

学习vim就像学弹钢琴一样,一旦学会,受益无穷。

另外这里还有一篇关于Vim比较不错的文章,想要深入学习可以看一看

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有