光标跳转

上下左右

上下左右
#command:跳转#个字符

单词跳转

w:下个单词的词首
e:下个单词的词尾
b:上个单词的词首
#command:跳转#个单词

行首行尾跳转

^:行首非空白字符
0:行首
$:行尾

行间移动

#G:跳到第#行
G:跳到尾巴
gg:跳到开头

文本编辑

删除

d:配合光标跳转删除
d^
d$
d#command
d0
dw
de
db
dd:删除光标所在行
#dd:删除多行
ggdG:删除全部

x删除光标所在字符
#x

复制剪切粘贴撤销

y,复制,用法类d
yy 以行为单位
#yy #行
ygg
yG

p粘贴

u撤销

模式转换

插入模式

a:选中字母后
i:选中字母
o:选中一行下面新建一行
A:行尾
esc:退出

末行模式

:
#:进入第几行
w:保存
w filename:另存为
q:退出
command!:强制
x 、ZZ:保存并退出
X:加密文档
r filename:读入文件到当前行后
# r filename:读入文件到5行后

查找替换

s/old/new/选项(g全文,c交互确认) 替换

50,100 s/man/MAN/gc 把50到100的man换成MAN并确认每一个替换

,$ s/.*// 从光标所在行开始一直到最后替换为空
如果出现替换文本里面有/,担心会造成歧义,可以使用#或者@来替代/

环境配置

在vim里面输入的都是临时的配置,如需永久环境,个人修改自己目录下的.vimrc,全局修改/etc/vimrc

set nu:行号
set nonu:取消行号
set ai:自动缩进
set noai:取消自动缩进
set ic:忽略字符的大小写
set noic:不忽略
set hlsearch:高亮搜索
set nohlsearch:不高亮
set sm:括号匹配
set nosm:不匹配
help:帮助

4VOTA[7XQ0{JYQX{D98(QNC.png
个人答案

cd /tmp
[root@server1 tmp]# mkdir vitest

[root@server1 tmp]# cd vitest/

[root@server1 vitest]# cp /etc/man_db.conf man.config

vi man.config


set nu

58G
40l

gg
?bzip2

50,100 s/man/MAN/gc   g为每行全部替换,不然只换一个,c为确认

u

65G
9yy
G
$
p

21,42 g/^#/d

w ./man.test.config

27G
d15l

gg
o
I am a student

esc
wq

标签: none

评论已关闭