嵌入式Linux系统编程学习之三vi编辑器
文章目录
- 前言
- 一、插入文本
- 二、删除与修改
- 三、光标的移动
- 四、查找与替换
- 五、块操作
- 六、结束编辑
前言
在Linux下编程,使用编辑器vi(vim)、gedit或Emacs,编译链接器gcc,调试器gdb,项目管理器make。
一、插入文本
a 从光标后面开始插入文本
A 从光标所在行的末尾插入文本
i 从光标前面开始插入文本
I 从光标所在行的开始插入文本
o 在光标所在行的下一行插入新一行
O 在光标所在行的上一行插入新一行
s 删除光标所在字符,并进入编辑模式
S 删除光标所在行,并进入编辑模式
r 输入字符,取代光标所在的那个字符
R 一直取代光标所在的字符,直到按下ESC为止
二、删除与修改
x 删除光标处的字符
dd 删除光标所在的整行
3dd 删除光标所在行以及下面两行
D或d$ 删除光标到行尾的文本
d^ 删除光标到行首的文本
三、光标的移动
h或左方向键 光标向左移动一个字符
j或下方向键 光标向下移动一个字符
k或上方向键 光标向上移动一个字符
l或右方向键 光标向右移动一个字符
w 光标向后移动一个字符
b 光标向前移动一个字符
^ 光标移动到行首
$ 光标移动到行尾
Ctrl+f 向下翻一页
Ctrl+b 向上翻一页
Ctrl+d 向下翻半页
Ctrl+u 向上翻半页
gg 光标定位到文档头
G 光标定位到文档尾
H 光标定位到当前页首
L 光标定位到当前页的最后一行的行首
[n]+ 光标向后移动n行
[n]- 光标向前移动n行
[n]G 光标定位到第n行行首
四、查找与替换
/[str] 查找字符串str(n移动到下一个找到的字符串、N移动到上一个找到的字符串)
s/[src]/[dst] 部分替换
3,6 s/[src]/[dst]/ig 3-6行中替换,"i"忽略大小写,"g"全部匹配
%s/[src]/[dst]/g 全部替换
%s/^//g 去掉文档每一行行首的空格
五、块操作
v 可视化块选择状态(对于选中的块,d(删除)、y(复制)、x(剪切))
yy 复制光标所在整行
[n]yy 从光标开始往下复制n行
p 将复制后文本粘贴到光标处
u 撤销上一次操作
Ctrl+r 恢复上一次操作
六、结束编辑
:q 在未修改文档的情况下退出
:q! 放弃修改,强行退出
:w 保存
:wq 保存并退出
嵌入式Linux系统编程学习之三vi编辑器相关推荐
- 嵌入式Linux系统编程学习之三十三网络相关概念
文章目录 一.网络相关名词的概念 1.套接口 2.端口号 3.IP 地址 二.Socket 概念 三.Socket 类型 四.Socket 的信息数据结构 五.数据存储优先顺序的转换 六.地址转格式转 ...
- 嵌入式Linux系统编程学习之三十一线程的属性
文章目录 前言 一.线程属性初始化 二.设置绑定属性 三.设置分离属性 四.获取线程优先级 五.设置优先级 前言 pthread_create 的第 2 个参数 attr 是一个结构体指针,结构体 ...
- 嵌入式Linux系统编程学习之三十四 Socket 编程
文章目录 一.使用 TCP 的流程图 1.1 头文件包含 1.2 socket 函数 1.3 bind 函数 1.4 listen 函数 1.5 accept 函数 1.6 recv 函数 1.7 s ...
- 嵌入式Linux系统编程学习之三十线程的同步
文章目录 一.条件变量 1.创建和注销 2.等待和激发 3.其他 二.信号灯 1.创建和注销 2.点灯和灭灯 3.获取灯值 4.其他 一.条件变量 条件变量是利用线程间共享的全局变量进行同步的一种 ...
- 嵌入式Linux系统编程学习之二常用命令
嵌入式Linux系统编程学习之二常用命令 文章目录 嵌入式Linux系统编程学习之二常用命令 前言 一.常用命令 1.su(用户切换) 2.useradd(添加用户) 3.passwd(修改密码) 4 ...
- 嵌入式Linux系统编程学习之一目录结构
嵌入式Linux系统编程学习之一目录结构 文章目录 嵌入式Linux系统编程学习之一目录结构 前言 一.Linux目录结构 前言 Linux目录结构 一.Linux目录结构 /bin:存放Linux的 ...
- 嵌入式Linux系统编程学习之九基于文件描述符的文件操作
文章目录 前言 一.文件描述符 二.打开.创建和关闭文件 三.读写文件 四.改变文件大小 五.文件定位 六.原子操作 七.进一步理解文件描述符 八.文件描述符的复制 九.文件的锁定 十.获取文件信息 ...
- 嵌入式Linux系统编程学习之八基于文件指针的文件操作
文章目录 前言 一.文件的创建.打开与关闭 二.读写文件 三.文件定位 四.标准输入/输出流 五.目录操作 前言 对文件进行操作有打开文件.关闭文件.读写文件. 文件指针:每打开一个文件,就返 ...
- 嵌入式Linux系统编程学习之十二守护进程
文章目录 前言 一.守护进程的特性 二.daemon 进程的编程规则 1.创建子进程,父进程退出 2.在子进程中创建新会话 前言 daemon 运行在后台,也称作"后台服务进程" ...
最新文章
- dll的概念、dll导出类(转)
- Android NDK JNI 简单例子2
- ​Nessus更新到8.9.1
- graphviz linux教程,程序员绘图利器 — Graphviz
- 机器学习系列之神经网络入门基础知识
- URL编码 - Java加密与安全
- 朱建辉php,朱建辉/laravel-bjyblog
- c盘users的用户名怎么改_做完这几个操作,我从C盘中清理了30G垃圾文件
- 【翻译】Pro.Silverlight.5.in.CSharp.4th.Edition - 第三章 布局 03
- php全局变量的关键字,php的static关键字和全局变量
- eclipse中配置c++开发环境 Eclipse + CDT + MinGW
- GIS生涯个人总结及个人感悟
- java 是否继续_Java异常被抛出或被捕获之后,代码是否继续执行的问题
- html5 canvas 详细使用教程
- 递归算法分析-最简单的例子
- 结合公司业务后,对极光推送的进一步思考
- 单网口RFC2544测试——信而泰网络测试仪实操
- 如何更改Dropbox的同步文件夹?
- API接口错误码设计最佳实践
- 内蒙古中医药杂志内蒙古中医药杂志社内蒙古中医药编辑部2022年第4期目录
热门文章
- Easyconnect mac版本下载地址
- pandas保存为excel,同时设置保存的excel的样式
- c语言编程命令,C语言编程命令
- hadoop 依赖式job_Java项目中使用XXL-JOB调度框架
- python学习day07-encode和decode
- nginx 反向代理之 proxy_redirect
- 萌新向Python数据分析及数据挖掘 第二章 pandas 第二节 Python Language Basics, IPython, and Jupyter Notebooks...
- poj2793 素数和
- SizeClass和Autolayout
- HDOJ 1896 Stones