sudo apt-get install vim  确认后按y就行了

vim的三种模式
1.普通模式

当vim打开的时候就直接进入普通模式,在普通模式下可以进入命令,插入模式

2.插入模式

可以通过普通模式进入插入模式, 插入模式可以编辑文本

3.命令模式

可以通过普通模式进入命令模式,命令模式可以设置文本的保存退出方式

.三种模式的切换

1.普通模式—> 插入模式 i , a , o
2.普通模式—>命令模式
3.插入模式—>普通模式 esc
4.命令模式 —>普通模式 删除 :

使用
1.vim 打开文件

格式: vim 文件名 打开一个可编辑文件
注:如果文件名不存在,会自动创建一个空的文件,并打开

2.普通模式 —> 插入模式

i 进入插入模式,按下i之后,光标不动,插入文本的时候,在原光标 前面 插入文本内容
a 进入插入模式,按下a之后,光标向后移动一位,插入文本的时候,在原光标 后面 插入文本内容
I 进入插入模式,按下I之后,光标会移动该行的起始位置,插入文本的时候,在行首位置开始插入内容
A 进入插入模式,按下A之后,光标会移动该行的末尾位置,插入文本的时候,在行末尾置开始插入内容
o 进入插入模式,按下o之后,会先在该行创建一个空的下一行,且光标在下一行的行首,直接会再下一行的行首插入内容
O 进入插入模式,按下O之后,会先在该行创建一个空的上一行,且光标在上一行的行首,直接会再上一行的行首插入内容
3.普通模式下的命令
G :将光标移至最后一行行首

nG :将光标移至第n行行首

n+ :将光标下移n行

n- :将光标上移n行

n$ :光标下移至第n行行尾

0(数字零) :将光标移到所在行的行首

$ :将光标移到所在行的行尾

^ :将光标移动所在行的第一个字符(非空字符)

h,j,k,l :分别用于光标左移,下移,上移,右移一个字符

H :将光标移至当前屏幕首行的行首

M :将光标移至屏幕显示中间行的行首

L :将光标移至当前屏幕最低行的行首

x :删除光标处的字符

dw :删除一个单词

**dd :删除光标所在行

**yy :复制光标所在行

**p :粘贴

**/str :向右进行搜索

**?str :向左进行搜索

n :向相同的方向查找

N :向不同的方向查找

4.命令模式的命令

wq 保存并退出
q 退出
q! 强制退出
5.查看文件内容 查看文件内容时尽量不要用vim

cat 文件名 直接查看文件内容 cat -n 文件名 显示文件内容,并显示行号,空白行算 cat -b 文件名 显示文件内容,并显示行号,空白行不算
tac 文件名 倒叙查看文件内容
head 文件名 直接查看文件内容 默认查看文件的最上面的10行 head -n 文件名 显示文件开始的n行内容
tail 文件名 倒叙查看文件的内容 默认查看文件的最后的10行 tail -n 文件名 显示文件末尾的n行内容
more 文件名 当文件内容过多的时候,分页显示内容, 按空格进行翻页
wc 文件名 统计一个文件中各种数据的数量计算文件的Byte数、字数或是列数
6.异常终止了再次打开时会报错

通常会报” 源文件名.swp的文件已经存在”,原因: 当我们编辑文件的时候,系统为了安全,会自动的生成一个文件名为
原文件名.swp的文件,用来保证源文件出错时,可以及时的恢复

如果出现了异常,再次打开时,会直接打开swp文件, 可以删除,覆盖,修改….通常直接删除del

vim 替换:

#将当前行第一个a替换为b

:s/a/b/

#将当前行的所有a替换为b

:s/a/b/g

#将每行第一个a替换为b

:%s/a/b

#将整个文件的所有a替换为b

:%s/a/b/g

#将1至3行的第一个a替换为b

:1,3s/a/b/

#使用#作为分隔符,此时中间出现的/不会作为分隔符,如:将当前行的字符串"a/"替换为"b/"

:s#a/#b/#

#找到包含字母a的行并删除

:g/a/d

#删除所有空行
:g/^$/d

 #多个空格替换为一个空格

:s/ \+/ /g

#在正则表达式中使用符号括起正则表达式,即可在后面使用\1,\2等变量来访问中的内容,如下
将data1 data2修改为data2 data1
:s/\s\+/\2\t\1

以十六进制显示:

(1) 首先以二进制方式编辑这个文件: vim -b datafile

(2) 现在用 xxd 把这个文件转换成十六进制: :%!xxd   和 :%!xxd -r

文件里的很多字符都是不可显示的。用 Hex 格式来显示它们的值: 显示隐藏不显示的值:

set display=uhex

vim 将十六进制转换成十进制:

全局替换所有字符为十进制:

:%s/\w\+/\=str2nr(submatch(0),16)/g

注意:上边没有^,所有长得像^的都是/ \

str2nr是将字符串转成数字,submatch(0)是前边匹配到的第一个字符,16表示将其识别成十六进制。

可以使用vim插件略

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐