嵌入式学习笔记---VIM常用操作和命令

嵌入式学习笔记—VIM常用操作和命令

写在前面

这里我使用的开发环境是Windows下的Cygwin软件,如果不想下载虚拟机什么的,用这个日常开发完全够,具体的下载安装教程网上一大把,可以参考其他博主。

一些配置文件

1. 定义:

Cygwin是一个运行在Windows下的仿真Linux的软件

2. .bashrc

可以理解为bash run configuration(运行配置),位于home目录下(~/.bashrc),里面可以保存一些个性化设置,比如别名(alias),路径等。
具体操作:vim ~/.bashrc
个性化指令:alias ll=“ls -lha”(注意:设置别名的时候=左右不要有空格哦!)
设定环境路径:PATH=$PATH:路径
export PATH
提示符设置:PS1=“[\u: \w] $”

3. .bash_profile

常用于配置环境变量和用户一些自定义别名等,只表示当前用户的设置

4. .vimrc

VIM的配置文件,可以根据自己的习惯进行配置
系统vim配置文件/etc/vimrc
用户vim配置文件~/.vimrc
优先级:用户>系统

5.alias

别名,简化复杂的命令,例如alias la=‘ls -A’
检查是否是别名:which la
删除别名:unalias la

6.grep

主要用于查找文件中符合条件的字符串,统计相对应的行和行数
常用的参数:

参数选项解释说明
-v(–invert-match)排除符合的结果,显示其余部分
-n(–line-number)显示符合的行和行号
-i(–ignore-case)不区分大小写
-c(–count)只统计符合的行数
-E(–extended-regexp)使用egrep命令
–color = auto为grep过滤结果添加颜色
-w(–word-regexp)只匹配符合条件的单词
-o(–only-matching)只输出符合条件的内容

补充知识

①在Linux平台下, 所有文件的结尾都有一个$符,cat -A可以查看、

②一些符号和含义

符号含义
^表示开始
$表示结束
.表示任意一个字符,有且只有一个,不包括空行
&代表匹配的内容
*表示找出前一个字符0次或一次以上
1~2表示从第一行开始,每隔两行进行相应操作
1,2表示对1到2行进行操作
!表示取反

以上标识可以任意组合,比如:
^$ 表示空行;
.* 表示所以内容,包括空行
^.t 表示以任意内容开头, 直到t结束
(,.
)表示逗号后的所在内容

③[ ]表示匹配中括号中任意一个字符, 字符之间是或的关系,只要满足其中一个字符就行。

7.sed

sed遍历文件内容,读到符合条件的行就根据相应指令做操作,不符合条件就跳过。

命令含义
a(追加append)在符合条件的后面插入内容
i(插入insert)在符合条件的前面插入内容
c(更改change)更改匹配行的内容
d(删除delete)删除匹配的内容
s(替换substitute)替换掉匹配的内容
p(打印print)打印出匹配的内容,通常与-n选项和用
=用来打印被匹配的行的行号
n(nextline)读取下一行,遇到n时会自动跳入下一行
r(read),w(write)读和写编辑命令

操作之间用分号隔开,比如:

sed 's/^#.*//;/^$/d' main.c

表示 先替换main.c文件中所有注释的空行为空行,然后删除空行

举例说明:
①追加 ------a

sed -i '3ahello' main.c

表示向第三行后面添加hello,-i是保存,不加的话就是预览模式

sed -i '/22/achina' main.c

表示批量添加,向内容22后面添加china,如果文件中有多行包 括22,则每一行后面都会添加

②插入 ------i

sed '3igood' main.c 

表示在第三行之前插入good

sed '/china/inice' main.c 

表示在包含china之前的行插入数据,如果含多个,则都会插入

③更改 ------c

sed '7cworld' main.c  

表示将第7行的替换为world

sed '/22/cgoto' main.c    

表示将包含22的全部替换为goto

④删除 ------d

sed '7d' main.c    

表示删除第7行的数据

sed '/china/,$d' main.c   

表示删除从匹配到china的行到最后一行

sed '1,5{/china/d}' main.c  

表示删除1~5行中,匹配内容china的行

⑤替换 ------s

sed 's/love/爱/' main.c  

表示将love替换成爱,默认只替换每行第一个love

sed 's/love/爱/g' main.c  

表示g可将所有love替换成爱

sed 's/love/爱/2' main.c  

表示2可将每行第二个匹配到的love替换成爱

⑥打印 ------p

sed -n '4p' main.c   	  

表示打印文件中的第4行内容

sed -n '/love/p' main.c    

表示逐行读取文件,打印匹配love的行

⑦行号 ------=

sed -n "$=" main.c      

表示打印文件最后一行的行号

sed -n '/error/=' main.c  

表示打印匹配error的行的行号

⑧读取 ------r

sed 'r 2.txt' 1.txt   

表示将文件2.txt中的内容,读入1.txt中,会在1.txt中的每一行后都读入2.txt 的内容

sed '3r 2.txt' 1.txt   

表示在1.txt第三行之后插入文件2.txt的内容

⑨写入 ------w

sed -n 'w 2.txt' 1.txt  

表示将1.txt文件的内容写入2.txt文件,如果2.txt文件不存在 则创建,如果2.txt存在则覆盖之前的内容

熟悉VIM常用命令,快捷键,操作

1.VIM常用命令
①插入命令:在命令模式下输入i a o 三个其中一个字母即可进入编辑模式

以下命令都是在命令模式下面操作,如果在编辑模式下,按Esc键即可退出,切换到命令模式。

②定位命令:

命令作用
:set nu设置行号
:set nonu取消行号
gg到第一行
G到最后一行
nG 或 :n到第n行
$移至行尾 (我一般用键盘上面的End键)
0移至行首 (我一般用键盘上面的Home键)

③删除命令:

命令作用
x删除光标所在的字符
nx删除光标所在处后n个字符
dd删除光标所在行,ndd删除n行
dG删除光标所在行到文件末尾的内容
D删除光标所在处到行尾的内容
:n1,n2d删除指定范围的行

④复制和剪切命令:

命令作用
yy复制当前行
nyy复制当前行以下n行
dd剪切当前行(这个和删除不冲突,实测确实可以剪切)
ndd剪切当前行以下n行
P或者p粘贴在当前光标下

⑤保存和退出命令:

命令作用
:w保存修改
:w new_filename另寻为指定文件
:wq保存修改并退出
ZZ快捷键,保存修改并退出
:q!不保存修改退出
:wq!保存修改并退出(文件所有者及root可使用)

2.VIM操作
①查找:

快捷键功能
/abc从光标所在位置向前查找字符串abc
/^abc查找以abc为行首的行
/abc$查找以abc为行尾的行
?abc从光标所在为主向后查找字符串 abc
n向同一方向重复上次的查找指令
N向相反方向重复上次的查找指令

②替换:
r:替换光标所在位置的字符
R:从光标所在位置开始替换字符,其输入内容会覆盖掉后面等长的文本内容,按 “Esc”可以结束
:s/a1/a2/g:将当前光标所在行中的所有a1用a2替换(在编辑模式下操作)
③删除插入:直接用上述表格的删除命令
④复制粘贴:直接用上述表格的复制命令

写在最后

现在是一名刚刚起步嵌入式的小白,如果大家有疑问或者指正请积极提出,共勉!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值