Vim及gcc/g++使用

news/2024/7/7 9:53:41

一:vim使用
首先了解三种常用模式:
普通模式是控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式或者到底行模式。
插入模式:只有在插入模式下,才可以做文字输入,按ESC可以回到普通模式。
底行模式:文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。
这里写图片描述
插入模式:
i:按i从普通转换插入模式,是从光标当前位置开始输入;
a:按a从普通模式转换为插入模式,是从光标下一个位置进行输入;
o:按o从普通模式转换为插入模式,是插入新的一行,从行首开始进行输入;
I:按I从普通模式转换为插入模式,是从该行首位置进行输入;
A:按A从普通模式转换为插入模式,是从该行行末进行输入;
O:按O从普通模式转换为插入模式,是从该行上行插入新的一行进行输入。
底行模式
如果在插入模式要到底行模式,需要先按esc回到普通模式,在按:到底行模式;如果在底行模式需要到普通模式可以按两下esc。
[:w]是保存文件;
[:q]是退出,如果没有先保存会有警告
[:wq]是保存并退出。
[:q!]是强制退出,不保存。
[:!pwd]是可以查看路径,按enter回到vim编辑模式。
这里写图片描述
[!ls]是可以查看文件名,按enter回到vim编辑模式。
这里写图片描述
列出行号
set nu:文件中每一行前面会出现行号。
跳到文件中的某一行
:#号表示一个数字,在冒号后输入一个数字,再按回车键就跳到该行。
查找字符
这里写图片描述
文本替换
如将第5-7行hello替换为hai
这里写图片描述
替换后为:
这里写图片描述
另一种全文替换
这里写图片描述
替换后为
这里写图片描述
如果是%s/hello/hai/gc将会每一行提示是否替换,输y替换,输n不替换。
普通模式
复制粘贴:
复制为[yy],粘贴为[p];
yyp:复制粘贴光标所在行;
nyyp:复制粘贴光标所在行“往下数(包括该行)”n行文字。
这里写图片描述
[3yyp]后:
这里写图片描述
删除
dd:删除该行;
ndd:删除光标所在行连续n行;
x删除光标所在字符;
这里写图片描述
替换
这里写图片描述
匹配光标所在单词
[#]:向上匹配

  • :向下匹配
    撤销
    u:按[u]可以回到上一个操作,按多次u可以执行多次;
    ctrl+r:撤销的恢复。
    移动光标
    vim可以直接在键盘上的光标来上下左右移动,但正规的vim是用小写字母h、j、k、l分贝控制光标左、右、上、下一格。
    全文对齐
    gg=G(gg是进入到文本开始,G是移动到文本最后)
    注释
    在普通模式下:先按ctrl +v 然后用光标选中要注释的行 ,再按r(替换),输入两个//,即可,如果不想注释,选中后按r,输入两个空格即可。
    gcc/g++
    这里写图片描述
    链接:
    这里写图片描述
    静态库和动态库:
    这里写图片描述
    动态库命名方式:libc.so ---->(lib是前缀,.so是后缀);
    静态库命名方式:libc.a ----->(lib是前缀,.a是后缀);
    gcc默认是动态库,
    -static对生成的文件采用静态链接( gcc -static test.c);
    -g调试信息;
    -share 此选项将尽量使用动态库,生成文件比较小,但是要求系统有动态库。
    -O0 、-O1 、-O2、-O3编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高。
    -w不生成任何警告信息;
    -Wall生成所有警告信息。

http://www.niftyadmin.cn/n/2559823.html

相关文章

配置 UltraEdit 为 MASM32 的IDE

一段老文字,存此,权当存档。(主要是为 UE 的语法高亮文件 WordFile.txt 存档:) 闲着没事,随意写一下怎样配置 UltraEdit,使之成为 MASM32 的IDE。 一、准备工作 这里先假设: 1. Ultr…

Linux调试器-gdb使用、makefile、进度条及yum

一:gdb -g 向可执行程序中添加调试信息: 然后用gdp调试:gdb ./test -->run ->start run:运行程序 start:开始逐步调试; n 进行下一步调试(不进入函数); s 进行下一步调试(进入…

Intent中的各种FLAG

Task Task就是一个任务栈,里面用来存放Activity,第一个进去的(Activity)处于栈的最下面,而最后创建的(Activity)则处于栈的最上面。从Task中取出(Activity)是从最顶端取…

冯诺依曼体系、操作系统、进程(PCB,getpid(),fork)

首先,简画下各进程间关系: 一:冯诺依曼体系 硬件结构决定软件行为----数据信号流向,控制信号的流向。 当然对冯诺依曼体系的理解不能停留在概念上,需要深入对软件数据流的理解,接下里将会解释从我登上qq开…

LinearLayout 与RelativeLayout的区别

LinearLayout:是线性布局控件,它包含的子控件以横向或纵向的方式排列,超过边界时,某些控件将缺失或消失。 RelativeLayout:是相对布局,允许子元素指定以相对于父元素或兄弟元素的位置,这是实际布局中最常用的方式之一…

x86机器码识别及其反汇编算法

x86机器码识别及其反汇编算法x86体系结构CPU的每条指令都可能由以下六个域组成,并且它们在指令中的排列顺序是不能改变的。这六个域分别是:prefixescodeModR/MSIBdisplacementimmediate在任何一条指令中code域是必须出现的,其他的域都是可选的…

进程优先级、环境变量、虚拟地址空间

一:进程优先级 cpu分配资源的先后顺序即为进程的优先级; 优先级高的进程有优先执行权利。配置进程优先级对多任务环境的linux很有用,可以改善系统性能; 可以把进程运行到指定的cpu上,把不重要的进程安排到某个CPU&…

改造PE中的函数为导出函数

改造PE中的函数为导出函数 1、前言:为什么要这么做 很多时候,我们发现一个PE(EXE或DLL)中非常有用且功能独立的函数(call xxxxxxxx),并且已经知道了这个函数的各个入口参数的类型和具体含义,我们想在其他的软件中使用这个函数。于…