vim文本编辑器及Makefile的使用

#define # 数字

vi的三种模式:命令行模式,插入模式,底行模式。

命令行:控制光标移动,删除,移动复制某区段。

进入插入行,底行模式。

插入模式:输入文字,ESC返回命令行。

底行模式:保存,退出,设置编辑环境,如寻找字符串,列出行号等。

△一般命令行与底行合并,所以分为命令行和插入模式。

创建与退出步骤:

vi 文件名 创建文件并进入 命令行模式

i 注意配置完vim后任意键即可进入插入行,在输入文字后也可直接删除

进入插入模式 删除字需要按esc返回命令行模式

底行模式下 shift ZZ 保存退出

命令行模式下

:w 文件名 文章将以指定文件名保存

:wq 保存退出

:qi 不保存强制退出

(命令行模式下) 默认在命令行

复制与删除

删除:

x:按一次,删除光标所在位置的1个字符 (相当于剪切,也放在缓冲区中)

#x:删除光标所在位置的1个字符及往后#-1个字符

//X:按一次,删除光标所在位置前面1个字符

//#X:删除光标所在位置前面#个字符

dd:删除光标所在行

#dd:从光标所在行开始删除#行

复制:

//yw:将光标所在之处到字尾的字符复制到缓冲区中 p:将缓冲区字符粘贴到光标后面

//#yw:将光标所在之处到下面#-1行复制到缓冲区 p:将缓冲区字符插入到光标后面

yy:将光标所在行复制到缓冲区

#yy:将光标所在行及下面#-1行复制到缓冲区

p:将缓冲区内的字符粘贴

u:撤销上一次操作,可多次撤销

光标移动:

方向键上下左右 && h 左j下 k上 l右

Ctrl+b 屏幕往前移动一页

Ctrl+f 屏幕往后移动一页

Ctrl+u 屏幕往前移动半页

Ctrl+d 屏幕往后移动半页

Ctrl+g 列出光标所在行的行号

#+方向键 向上向下移动几行向左向右移动几列

gg/1G 光标移动到文章开头

G 光标移动到文章结尾

#G 移动到第#行开头

数字0/home/^ 光标移动到本行开头

$/home 光标移动到所在行的行尾

w 光标移动到下一字的开头

e 光标移动到下一字的字尾

b 光标回到上个字的开头

#1 光标移到该行的第#个位置

#[Enter] 光标向下移动#行

[#1] 光标移动到该行的第#个位置

标记:

命令行模式下

m + [a-zA-z] 做标记

'[a-zA-Z] 移动到标记,'为单引号

:marks 列出所有标记

:delmarks[a-zA-Z] 删除标记

特殊标记:

' 跳转前的位置

" 最后编辑的位置

替换:

r 替换光标所在处的字符

R 替换光标所到之处的字符,直到按下Esc键为止

/关键词 可用来查找,所有关键词显示高亮背光,光标停留在第一个关键词

n向下找

N向上找

替换

%s/xxx1/xxx2/g 将xxx1替换为xxx2 g代表全部

sp xxx 打开其他文件xxx

Ctrl-w-j 下一个窗口

Ctrl-w-k 上一个窗口

Ctrl-w-q 退出当前窗口

(底行模式下) 命令行模式按shift+:进入底行模式

set nu 列出每一行的行号

set nonu 不显示行号3

# 跳到第#行

/关键词 如果第一次找的关键词不是想要的,可以一直按n,向下查找

?关键词 如果第一次找的关键词不是想要的,可以一直按n,向上查找

noh 消除高亮

在文件外面执行命令:vim 文件名 x 直接停在第x行

Vim配置:

autoindent 自动缩进

set shiftwidth=4

set tabstop=4 设置Tab长度为四个字符

syntax on 关键词高亮 可以检错

gcc 编译

gcc hello.c -o hello 输出文件名

执行文件 绝对路径 /...

相对路径 ./

编译步骤

  1. 预处理 处理#开头的代码(头文件#include>复制替换,宏定义#define>替换,条件编译#if>注释 #if 0 这一部分代码不编译)

gcc -E 生成.i文件(文本文件)

  1. 编译 1、语法检查 2、把C代码翻译成汇编代码

gcc -S 生成.s文件(文本文件)

  1. 汇编 把汇编语言编译成二进制文件

gcc -c 生成.o文件(二进制文件)

  1. 链接 连接程序需要用到的源文件

gcc ...o 有几个o写几个

gcc -c hello.c -o hello.o 前三步一步到位

两个文件同时 gcc hello.c print.c -o hello

gcc -E hello.c -o hello.i

gcc -S hello.i -o hello.s

gcc -c hello.s -o hello.o

gcc -c hello.c -o hello.o

gcc hello.o print.o -o hello

make(命令) Makefile(文件) 工程较大时用到 添加注释#开头

通过make执行文件 检测hello 是否变化 不变化不编译

先执行Makefile 再makefile

基本格式 target:dependency target:目标 dependency:依赖 有几个写几个

(Tab键)command command:命令

最简单的makefile:

mkdir Makefile

cd Makefile

vim hello.c

#include<stdio.h>

int main()

{

printf("HelloWorld!\n");

return 0;

}

vim Makefile

hello:hello.c

gcc hello.c -o hello

命令make 打印命令 并执行

2.0的Makefile

Target=hello

Object=hello.c

$(Target):$(Object)

gcc $(Object) -o $(Target) //$()引用

3.0的Makefile

Target=hello

Object=hello.o

$(Target):$(Object)

gcc $(Object) -o $(Target)

hello.o:hello.c

gcc -c hello.c -o hello.o //隐含规则,都可以不写 hello.o 自动寻找hello.c 生成

两个文件

vim hello.c

vim print.c

vim Makefile

Target=hello

Object=hello.o print.o

$(Target):$(Object)

gcc $(Object) -o $(Target)

.PHONY:clean

rm *.o hello

Makefile还有清理功能

如果有clean文件 执行make clean时认为clean为目标,报错

此时.phony:clean将clean设成伪目标

拓展:

ELT 开头为二进制文件

history | grep gcc 查看历史命令gcc

将文件从电脑移到虚拟机的方法

1.直接拖进去

2.菜单->虚拟机->设置->选项->共享文件夹->总是启用->添加自定义文件夹->确定

路径: /mnt/hgfs/share/

猜你喜欢

转载自blog.csdn.net/zzb_mx/article/details/81121780