MSCBSC 移动通信论坛
搜索
登录注册
网络优化工程师招聘专栏 4G/LTE通信工程师最新职位列表 通信实习生/应届生招聘职位

  • 阅读:3209
  • 回复:0
CentOS Linux之路【vi/vim相关】
细阿哥
中级会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 500
帖子 100
威望 4542 个
礼品券 15 个
专家指数 0
注册 2009-2-25
专业方向  通信
回答问题数 0
回答被采纳数 0
回答采纳率 0%
 
发表于 2019-09-16 22:59:42  只看楼主 

所有的 Unix/linux 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是 vim 编辑器。

Vim是从 vi 发展出来的一个文本编辑器。提供了代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode)插入模式(Insert mode)末行模式(Last line mode)

1.   如何进入插入模式

命令

说明

i

光标前一个字符插入

I

行首插入

a

光标后一个字符插入

A

行末插入

o

向下新开一行,插入行首

O

向上新开一行,插入行道

 

2.   如何进入命令模式

ESC 从插入模式或末行模式进入命令模式

在命令模式下移动光标:

命令

说明

h

左移

j

下移

k

上移

l

右移

 

 

3.   不同模式间的互相转换

命令模式->末行模式

输入冒号  :

末行模式->命令模式

输入两次 ESC

 

 

4.   命令模式的命令:

 

命令说明
0移动至绝对行首
^移动至相对行首
$移动至行尾
j向下移动
k向上移动
h向左移动
l向右移动
M移动至中间行
L移动至最后一行的行首
行号+G移动至指定行
G移动至文件末尾
gg移动至文件开头
w/W向后移动一个字
b向前移动一个字
{按段移动,上移
}按段移动,下移
ctl+d向下翻半屏
ctl+u向上翻半屏
ctl+f向下翻一屏
ctl+b向上翻一屏



4.1   关于删除 

命令

说明

x

删除光标后一个字符

X

删除光标前一个字符

dd

删除光标所光标所在行

n

dd删除光标后指定行数

D

删除光标后本行所有内容,包含光标所在字符

d0

删除光标前本行所有内容,不包含光标所在字符

全部删除

按esc后,然后dG

dw

删除光标开始位置字符,包含光标所在字符

 

4.2   关于撤销命令

命令

说明

u

一步一步撤销

ctl+r

反撤销

 

4.3   关于重复命令

命令

说明

.

重复上一次操作的命令

4.4   关于文本行移动

命令

说明

>> 

文本行右移

<< 

文本行左移

4.5   关于选择行

v 进入“可视”,按键盘选择行

 

4.6   关于复制/粘贴

命令

说明

yy

复制当前行

n yy

复制n行

yw

复制单词

p

在光标所在位置向下新开辟一行,粘贴

 

 

4.7   关于复制多行

任务:将第9行至第15行的数据,复制到第16

915 copy 16  或:915 co 16
由此可有:
915 move 16   :9,15 m 16 将第9行到第15行的文本内容到第16行的后面  

 

复制多行,然后粘贴。
1.
将光标移动到要复制的文本开始的地方,按v进入可视模式。
2.
将光标移动到要复制的文本的结束的地方,按y复制。此时vim会自动将光标定位到选中文本的开始的地方,并退出可视模式。
3.
移动光标到文本结束的地方,按p粘贴。

 

全部删除:按esc后,然后dG
全部复制:按esc后,然后ggyG

4.8   关于可视模式

命令

说明

v

按字符移动,选中文本

V

按行移动,选中文本可视模式可以配合 d,y,>>,<<实现对文本块的删除,复制,左右移动

 

4.9   末行模式下 . 点号表示当前行;  $ 表示末行

例如,在末行模式下输出

命令

说明

1,.-3y

表示复制第1行至光标所在位的前3行

1,.+3y

表示复制第1行至光标所在位的后3行

.,.+3d

表示删除光标所在行至光标往行3行

 

4.10     关于替换操作

命令

说明

r

替换当前字符

R

替换当前行光标后的字符

 

4.11     关于查找命令

命令

说明

/str

光标位置开始向下查

?str

光标位置开始向上查找

n

下一个

N

上一个

 

例如,查找Sock

image.png

4.12     关于替换命令s

abc 全部替换成123

末行模式下,将光标所在行的abc替换成123

:%s/abc/123/gi  %  表示全部,整个文档;

                            g 表示全部替换,

                            i  表示忽略大小写,不加i表示区别大小写

末行模式下,将第一行至第10行之间的abc替换成123

:1,10s/abc/123/g

 

末行模式下,感叹号!+命令可以在vi模式下执行命令,例如

:!cp /root/abc.txt /root/abcd.tx

 

4.13     关于保存退出

所处模式

命令

末行模式下

:wq 

:x

命令模式下

ZZ

 

 

4.14     关于不保存退出

 

所处模式

命令

末行模式下

:q!

 

5.   其它说明

如何显示行号

1.    末行模式输入: set number/set nu 可以显示行号

 

2.修改当前用户vimrc文件:

arvindeMacBook-Air:~ arvin$ vi ~/.vimrc

set nu    显示行号

set ts=4  TAB缩进字符数

 

Set tabstop=4

Set shiftwidth=4

 

【其中】:~/ 表示当前用户的家目录

当用vi编辑文件时,非正常退出时将产生一个隐藏文件,原文件将不能修改,需要将隐藏文件删除后才可以修改


扫码关注5G通信官方公众号,免费领取以下5G精品资料
  • 1、回复“LTBPS”免费领取《《中国联通5G终端白皮书》
  • 2、回复“ZGDX”免费领取《中国电信5G NTN技术白皮书
  • 3、回复“TXSB”免费领取《通信设备安装工程施工工艺图解
  • 4、回复“YDSL”免费领取《中国移动算力并网白皮书
  • 5、回复“5GX3”免费领取《 R16 23501-g60 5G的系统架构1
  • 6、回复“iot6”免费领取《【8月30号登载】物联网创新技术与产业应用蓝皮书——物联网感知技术及系统应用
  • 7、回复“6G31”免费领取《基于云网融合的6G关键技术白皮书
  • 8、回复“IM6G”免费领取《6G典型场景和关键能力白皮书
  • 对本帖内容的看法? 我要点评

     
    [充值威望,立即自动到帐] [VIP贵宾权限+威望套餐] 另有大量优惠赠送活动,请光临充值中心
    充值拥有大量的威望和最高的下载权限,下载站内资料无忧

    快速回复主题    
    标题
    内容
     上传资料请点左侧【添加附件】

    当前时区 GMT+8, 现在时间是 2024-04-25 00:38:25
    渝ICP备11001752号  Copyright @ 2006-2016 mscbsc.com  本站统一服务邮箱:mscbsc@163.com

    Processed in 0.237949 second(s), 13 queries , Gzip enabled
    TOP
    清除 Cookies - 联系我们 - 移动通信网 - 移动通信论坛 - 通信招聘网 - Archiver