./a.out .代表当前目录
gedit +文件名 如:gedit first.c
1.vi、vim常见操作
1.1 编辑模式
按下键盘上i键,进入插入(编辑)模式,进行文件编辑,按键盘上ESC键可以回到命令行模式。
1.2 底行模式
光标位于屏幕的底行。可以进行文件的保存、退出、查找、替换、列出行号等。
编辑模式下按esc到命令行模式,再按shift+: 切入底行模式。
:w 写入(写入刚才编辑文件的内容)
:wqa 全部保存然后退出
命令 | 功能 |
:q | (Quit)退出没有修改的文件(若文件被修改了而没有保存,则此命令无效) |
:q! | 强制退出,且不保存修改过的部分 |
:w | (Write)保存文件,但不退出(Windows里的Ctrl+s) |
:x | (Exit)保存文件并退出(等价于wq) |
:w File | 另存为File给出的文件名,不退出 |
:r File | (Read)读入File指定的文件内容插入到光标位置(可以复制其他文件里的内容) |
小技巧:在当前终端里并列打开另外一个代码,底行命令vsp filename或者在打开当前代码时,就尝试并列打开多个文件: vim xxa.c xxb.c-O
1.3 命令行模式(看不见的命令)
用户在用vi编辑文件时,最初进入的为该模式。可以进行复制、粘贴等操作。
按键盘I切换进入编辑模式。
命令 | 功能 |
[N]x | (Expurgate)删除从光标位置开始的连续N个字符(并复制到编辑缓冲区) |
[N]dd | (Delete)删除从光标位置开始的连续N行(并复制到编辑缓冲区) |
[N]yy | (Yank)复制从光标位置开始的连续N行到编辑缓冲区(在命令行模式下光标选中哪一行第一个字符按yy想复制到哪一行后面时光标移到其前面一行按p 若复制两行按2yy N行就Nyy) |
p或P | (Put)从编辑缓冲区复制文本到当前光标位置(即粘贴) P在光标上面一行复制 p在光标下面复制 |
u | (Undo)取消上一次操作(即恢复功能)(无前进功能) |
小技巧:使用底行模式复制选择区域的代码段:n,my,粘贴同样使用命令模式的p
***-o 指定生成可执行文件叫什么
gcc test.c ./a.out
gcc test.c -o test ./test
gcc first.c -o first -Wall
1.这种方式,可以自行指定执行文件的名字
2.该实例中,执行文件的名字为first
3.这样做的好处是多个C文件存在时,编译用默认名字a.out,会覆盖之前的,实际执行的是最后一次编译生成的执行文件。
2.关于头文件
常见两种形式:
< >:从编译器的默认目录,去找头文件(linux:/usr/include)
" ":先搜索当前目录,若没找到,继续搜索编译器的默认目录(linux:/usr/include),自定义头文件要用这种形式引用。
3.gcc**基本语法中的参数该怎么用**
解决方法:
最好的方式就是man gcc,
-E,将源文件进行预处理
-S,将源文件编译成汇编代码
-c,将源文件编译成二进制目标
-o,指明输出文件
-Wall,打开所有类型语法警告
编译四步:预处理、编译、汇编、链接。 1.预处理:头文件,宏替换 gcc -E test.c -o test.i 2.编译:生成汇编文件 gcc -s test.i -o test.s 3.汇编:生成目标文件 gcc -c test.s -o test.o 4.链接:生成可执行文件 gcc test.o -o test |
4.关于错误
Error:
编译器检查出来的语法错误,这个是不能完成编译的。
Wring:
编译器认为和规定好的语法规则有些歧义,但是不是错误,提示一下,建议改正。
强制输出警告:-Wall:让编译器尽量多显示警告
gcc hello.c -o hello -Wall
5.关于移动光标
命令模式 按键k j h l(上 下 左 右)
底行模式:N移动光标到第N行
命令模式 按键 1G 移动光标到文件的第1行
命令模式 按键 G 移动光标到文件的最后1行
命令模式 按键 gg=G 快速调整代码格式
底行模式:set nu 显示行号
底行模式:set nonu 不显示行号
printf是提目要求 提示
scanf是输入