加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

2.9-vim编辑器

发布时间:2020-12-15 09:21:04 所属栏目:安全 来源:网络整理
导读:vim编辑器 vi:Visual Interface,文本编辑器 文本:ASCII,Unicode 文本编辑种类: 行编辑器:sed 全屏编辑器:nano,vi VIM - Vi IMproved 使用VIM vim:模式化的编辑 基本模式: 编辑模式,命令模式: 输入模式: 末行模式: 内置的命令行接口 打开文件: #v

vim编辑器

vi:Visual Interface,文本编辑器

文本:ASCII,Unicode

文本编辑种类:

行编辑器:sed

全屏编辑器:nano,vi

VIM - Vi IMproved


使用VIM

vim:模式化的编辑

基本模式:

编辑模式,命令模式:

输入模式:

末行模式:

内置的命令行接口

打开文件:

#vim [option]... FILE...

+#:打开文件后,直接让光标处于第#行的行首

+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首

模式转换:

编辑模式-->输入模式

i:insert,在光标所在处输入

I:在当前光标所在行行首输入

a:append,在光标所在处后面输入

A:在当前光标所在行行尾输入

o:在当前光标所在行下方打开一个新行

O:在当前光标所在行上方打开一个新行

c:

C:

输入模式-->编辑模式

ESC

编辑模式-->末行模式

:

末行模式-->编辑模式

Ctrl+c或两次ESC


关闭文件:

:q 退出

:q! 强制退出,丢弃做出的修改

:wq 保存退出

:x 保存退出

:w /PATH/TO/SOMEWHERE

ZZ:保存退出(编辑模式下)


光标跳转:

字符间跳转:

h,j,k,l

h:左

j:下

k:上

l:右

#COMMAND:跳转由#指定个数的字符

单词间跳转:

w:下一个单词的词首

e:当前或下一单词的词尾

b:当前或上一个单词的词首

#COMMAND:跳转由#指定个数的单词

行首行尾跳转:

^:跳转至行首的第一个非空白字符

0:跳转至行首

$:跳转至行尾

行间移动:

#G:跳转至由#指定的行

G:最后一行

1G,gg:跳转至首行

句间移动:

):下一个句子

(:上一个句子

段间移动:

}:下一段

{:上一段

vim的编辑命令:

字符编辑:

x:删除光标所在处的字符

#x:删除光标所在处向后#个字符

xp:交换光标所在处的字符及后面字符的位置

替换命令:

r:替换光标所在处的字符

删除命令:

d:删除命令,可结合光标跳转字符,实现范围删除

d$:光标到行尾的内容

d^:光标到行首的内容

d0:光标到行首的内容

dw:

de:

db:

#COMMAND

#dw:

#de:

#db:

dd:删除光标所在处的整行

#COMMAND:删除#行

粘贴命令(p,put,paste):

p(小写):缓冲区存储的如果为整行,则粘贴在当前光标所在行的下方。否则,则粘贴至当前光标所在处的后面

P(大写):缓冲区存储的如果为整行,则粘贴在当前光标所在行的上方。否则,则粘贴至当前光标所在处的前面

复制命令(y,yank):

y:复制,工作行为相似于d命令:

y$

y0

y^

ye

yw

yb

#COMMAND

yy:复制行

#yy:复制#行

改变命令(c,change)

c:修改

编辑模式-->输入模式

c$

c0

c^

ce

cw

cb

#COMMAND

cc:删除并输入新内容

#cc:删除#行


可视化模式:

v:按字符选定

V:按行选定

Note:经常结合编辑命令

d,c,y

撤销此前的编辑:

u(undo):撤销此前操作

#u:撤销此前#次操作

撤销此前的撤销:

Ctrl+r

重复前一个编辑操作:

.


翻屏操作:

Ctrl+f:向文件尾部翻一屏

Ctrl+b:向文件首部翻一屏

Ctrl+d:向文件尾部翻半屏

Ctrl+u:向文件首部翻半屏


vim自带的教程

vimtutor


vim中的末行模式:

内建的命令行接口

(1)地址定界

:start_pos,end_pos

#:具体第#行,例如2表示第2行

#,#:从左侧#表示行起始,到右侧#表示行结尾

#,+#:从左侧#表示行起始,加上右侧#表示的行数

.:当前行

$:最后一行

例如:.,$-1:从当前行到倒数第二行

%:全文,相当于1,$

/pattern1/,/pattern2/:从第一次被pattern1模式匹配到的行开始,一直到第一次被pattern2匹配到的行结束

常见的用法:

#,/pattern/

/pattern/,$

使用方式:

后跟一个编辑命令

d

y

w /PATH/TO/SOMEWHERE:将范围内的行另存至指定文件中

r/PATH/FROM/SOMEFILE:在指定位置插入指定文件中的所有内容


(2)查找

/PATTERN:从当前光标所在处向文件尾部查找

?PATTERN:从当前光标所在处向文件首部查找

n:与命令同方向查找符合PATTERN的内容

N:与命令反方向查找符合PATTERN的内容


(3)查找并替换

s:在末行模式下完成查找替换操作

s/要查找的内容/替换为的内容/修饰符

要查找的内容:可使用模式

替换为的内容:不能使用模式,但可以使用1,2,...等后向引用符号,还可以使用"&"引用前面查找时查找到的整个内容

修饰符:

i:忽略大小写

g:全局替换:默认情况下,每一行只替换第一次出现

查找替换中的分隔符/可替换为其他字符,例如

:% s //var/log/message//etc/passwd/g

可以写成:% s@/var/log/message@/etc/passwd@g


练习:

1.复制/etc/grub.conf至/tmp目录,用查找替换命令删除/tmp/grub.conf文件中的行首的空白字符

2.复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#号

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读