#include<stdio.h>
int max(int a, int b){
if(a>b){
return a;
}else{
return b;
}
}
#include<stdio.h> #<>尖括号表示系统文件
#include "max.c" #“”双引号表示非系统文件
int main(){
int a1=33;
int a2=21;
int maxNum=max(a1, a2);
printf("The max value is %d\n ", maxNum);
}
:sp max.c vim编辑器新建一个文件并打开窗口
Ctrl + w + 上下箭头,两个窗口里切换
gcc max.c hello.c -o main.out 编译max.c和hello.c两个文件,生成输出文件main.out
记得看一下2个函数有什么不同
Vim
ESC出现冒号后
set nu 显示行号
sp 文件名 显示多个文件
ctrl+w+上下方向键 切换文件窗口
max函数占第9行,按DD剪切到剪切栏,然后按P复制
wqa 全部保存 w:写入 q:退出 a:全部
gcc 文件1.c 文件2.c -o 输出文件名 编译多个文件
:sp 文件名 以水平方式分割窗口,打开文件
:vsp 文件名 以竖直方式分割窗口,打开文件
ctrl+w+↓/j 切换到下面那个文档
ctrl+w+↑/k 切换到上面一个文档
ctrl+w+h 切换到左面一个文档
ctrl+w+l 切换到右面一个文档
:set nu/number 打开行号
:set nonu/nonumber 关闭行号
:wqa 把所有文件都保存退出
记住花括号在不同的位置,养成良好的编程习惯。
:sp xxx.c:在命令行模式下输入,可以新建并打开一个新的程序文件。
按下ctrl+w+下箭头:可以把光标从上面新建的文件,移到下面的文件中。
:set nu:打开行号
:ndd:n为程序行数(从光标在的地方数起),将n行代码放到剪贴板里面。
按下ctrl+w+上箭头:光标移到上面
p:将剪贴板的内容粘贴
:wqa:将窗口中所有的文件都保存退出
gcc x.c y.c -o xy.out:将x.c和y.c编译输出到叫xy.out的文件中
如图,hello.c要加上第二行的代码,不然max.c的函数声明不在hello.c中,也就无法编译出来(虽然现在高版本的gcc可以把他编译出来),其实,这个声明的本质,就是将max.c复制过来了。而且,max.c文件一定要在当前的路径下。添加完声明,我们可以直接编译hello.c文件。
ESC下:
:sp 文件名 vim中同时打开另一个
ctrl+w+方向键:切换到上下方编辑器
:set nu 打开行号
p粘贴
数字+dd 从光标所在行向下剪切[数字]行
:wqa w写入(保存)q离开a所有
如果看到文件名称右边有[+]说明有新内容
gcc 文件名1 文件名2…… -o 新文件名 /表示编译文件1、2的同时新建新文件
main函数中在调用该函数之前先声明,如为源文件则#include "xx.c",头文件则#include <xx.h>
#include<文件>表示操作系统预装的库,在环境变量下查找。内只含声明。#include "文件"表示在当前目录查找文件。相当于把文件直接复制过来。
#include "xxx.c"
末行模式 : wqa
ESC下:
esc+:sp 文件名 vim中同时打开另一个
esc+ctrl+w+down:切换到下方编辑器
:set nu 打开行号
p粘贴
dd数字 向下剪切[数字]行
:wqa w写入(保存)q离开a所有
如果看到文件名称右边有[+]说明有新内容
gcc 文件名1 文件名2…… -o 新文件名
如果不在main函数中在调用该函数之前先声明的话,有可能会出错。
#include<文件>表示操作系统预装的库,在环境变量下查找。内只含声明。
#include "文件"表示在当前目录查找文件。相当于把文件直接复制过来。
疑问:max.c里面没有写声明,那它包含声明吗?就算他有声明,比如stdio.h,那程序知道应该声明在哪里吗?
1、用vi打开一个文件后想再打开一个(新)文件:sp xx.c
2、显示行号 set nu
3、剪贴自定义函数max:光标指到该函数开头 该函数内容所占的行数+d+d
让ctrl+w+↑,然后p,就把该内容复制到上面的文件界面了。
4、用#include+尖括弧 包含的头文件会在系统变量里面查找
用#include+".c”会在当前目录下查找。这时候只要gcc 总.c -o xx.out 就可以了
vim分为三种模式
一般模式:以vim打开或新建一个文件就可以直接进入一般模式,在此模式中,你可以使用上下左右来进行光标的移动,可以删除字符或整行,可以复制粘贴文件数据。
编辑模式:顾名思义,就是可以编辑文本的模式,在一般模式下,按下“i,I,o,O,a,A,r,R”这些字母可进入编辑模式,进入编辑模式后在左下方会有INSERT或REPLACE的字样。
在编辑模式下按下ESC键会退出到一般模式下。
命令行模式:在一般模式下,输入” :, / , ? “这三个字符中的任意一个会将光标移动到当前页面最下面的一行,在这个模式中可以进行数据查找、替换、保存、离开vim等操作。
使用vim filename可进入vim一般模式:
一般模式下热键说明:
移动光标的方法
h 或 向左箭头键(←)光标向左移动一个字符
j 或 向下箭头键(↓)光标向下移动一个字符
k 或 向上箭头键(↑)光标向上移动一个字符
l 或 向右箭头键(→)光标向右移动一个字符
如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 “30j” 或 “30↓” 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!
[Ctrl] + [f]屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] +屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
[Ctrl] + [d]屏幕『向下』移动半页
[Ctrl] +屏幕『向上』移动半页
+光标移动到非空格符的下一列
–光标移动到非空格符的上一列
n那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20 则光标会向后面移动 20 个字符距离。
0 或功能键[Home]这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End]移动到这一行的最后面字符处(常用)
H光标移动到这个屏幕的最上方那一行的第一个字符
M光标移动到这个屏幕的中央那一行的第一个字符
L光标移动到这个屏幕的最下方那一行的第一个字符
G移动到这个档案的最后一行(常用)
nGn 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
gg移动到这个档案的第一行,相当于 1G 啊! (常用)
nn 为数字。光标向下移动 n 行(常用)
搜寻与取代
/word向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻vbird 这个字符串,就输入 /vbird 即可! (常用)
?word向光标之上寻找一个字符串名称为 word 的字符串。
n这个 n 是英文按键。代表『重复前一个搜寻的动作』。举例来说,如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
N这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!
:n1,n2s/word1/word2/gn1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:『:100,200s/vbird/VBIRD/g』。(常用)
:1,$s/word1/word2/g从第一行到最后一行寻找 word1 字符串,并将该字符串取代为word2 !(常用)
:1,$s/word1/word2/gc从第一行到最后一行寻找 word1 字符串,并将该字符串取代为word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)
删除、复制与贴上
x, X在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
nxn 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
dd删除游标所在的那一整列(常用)
nddn 为数字。删除光标所在的向下 n 列,例如 20dd 则是删除 20 列(常用)
d1G删除光标所在到第一行的所有数据
dG删除光标所在到最后一行的所有数据
d$删除游标所在处,到该行的最后一个字符
d0那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
yy复制游标所在的那一行(常用)
nyyn 为数字。复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用)
y1G复制游标所在列到第一列的所有数据
yG复制游标所在列到最后一列的所有数据
y0复制光标所在的那个字符到该行行首的所有数据
y$复制光标所在的那个字符到该行行尾的所有数据
p, Pp 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)
J将光标所在列与下一列的数据结合成同一列
c重复删除多个数据,例如向下删除 10 行,[ 10cj ]
u复原前一个动作。(常用)
[Ctrl]+r重做上一个动作。(常用)
这个 u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键,你的编辑,嘿嘿!很快乐的啦!
.不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)
一般模式进入编辑模式的按键说明:
i, I进入插入模式(Insert mode):
i
为『从目前光标所在处插入』, I 为『在目前所在行的第一个非空格符处开始插入』。 (常用)
a, A进入插入模式(Insert mode):
a
为『从目前光标所在的下一个字符处开始插入』, A 为『从光标所在行的最后一个字符处开始插入』。(常用)
o, O进入插入模式(Insert mode):这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处插入新的一行』; O 为在目前光标所在处的上一行插入新的一行!(常用)
r, R进入取代模式(Replace mode):
r
只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
上面这些按键中,在 vim 画面的左下角处会出现『–INSERT–』或『–REPLACE–』的字样。 由名称就知道该动作了吧!!特别注意的是,我们上面也提过了,你想要在档案里面输入字符时, 一定要在左下角处看到 INSERT 或 REPLACE 才能输入喔!
[Esc]退出编辑模式,回到一般模式中(常用)
一般模式切换到命令行模式的按键说明:
:w将编辑的数据写入硬盘档案中(常用)
:w!若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 取决于当前用户对于文件的权限,一般情况下文件的所有者以及root用户的权限较大。
:q离开 vim (常用)
:q!若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
注意一下啊,那个惊叹号 (!) 在 vim 当中,常常具有『强制』的意思~
:wq储存后离开,若为 :wq! 则为强制储存后离开 (常用)
ZZ这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!
:w [filename]将编辑的数据储存成另一个档案(类似另存新档)
:r [filename]在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w [filename]将 n1 到 n2 的内容储存成 filename 这个档案。
:! command暂时离开 vim 到指令列模式下执行 command 的显示结果!例如『:! ls /home』即可在 vim 当中察看 /home 底下以 ls 输出的档案信息!
vim 环境的变更
:set nu显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu与 set nu 相反,为取消行号!
作者:vic_wei7
链接:https://www.jianshu.com/p/581dcdc05277
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
gcc max.c hello.c -o main.out
#include "max.c"
int main(){ max(a,b);}
#include <studio.h>
int max (int a, int b)
{
if(a>b){
return a;
}else{
return b;
}
}
int main()
{
int a1=33;
int a2=21
int maxNum=max(a1,a2);
printf("the max value is %d",maxNum);
return 0;
}
分文件
vim可以同时打开多个文件:在命令模式下输入“:”:sp xx.xx 新建一个文件,分屏
ctrl+w+下箭头 切换到下边的代码
输入“:”+“set nu”显示行号
按p将代码复制到其他文件
:wqa //保存所有
C语言代码规范:缩进4个空格
注意以后尽量使用驼峰原则,代码书写一定要规范
set nu #显示行号
sp test.c #分屏显示两个文件 (Ctrl+W+上箭头或下箭头,跳转)
分文件
vim可以同时打开多个文件:在命令模式下输入“:”+“sp”。
ctrl+w+下箭头 切换到下边的代码
输入“:”+“set nu”显示行号
按p将代码复制到其他文件
<>在系统库里查找
""在当前的目录查找
cd ~/workspace/
在vim中 可以同时打开多个文件 :sp max.c
返回命令模式 esc
跳转到下一个文件 Ctrl+W+下箭头
跳转到上一个文件 Ctrl+W+上箭头
打开行号 :set nu
剪切本行以及下面的若干行 数字+dd
粘贴 p
把打开的文件同时保存并退出 :wqa
编译两个文件 gcc max.c hello.c -o main.out
写一个输出数据名称 -o main.out
Ctrl + W + 光标(上下)切换进入的vim文件
命令模式下sp [文件名]创建新文件
<>在系统库里查找
""在当前的目录查找
cd ~/workspace/
在vim中 可以同时打开多个文件 :sp max.c
返回命令模式 esc
跳转到下一个文件 Ctrl+W+下箭头
跳转到上一个文件 Ctrl+W+上箭头
打开行号 :set nu
剪切本行以及下面的若干行 数字+dd
粘贴 p
把打开的文件同时保存并退出 :wqa
编译两个文件 gcc max.c hello.c -o main.out
写一个输出数据名称 -o main.out
Int是将一个数值向下取整为最接近的整数的函数。INT是数据库中常用函数中的取整函数,常用来判别一个数能否被另一个数整除。
stdio.h 预装在Linux里面(标准输入输出库)
#include 相当于把对应文件直接插入该文件中
#include "max.c"
在vim命令模式下
:set nu 打开行号
:sp上下分屏打开新文件
:vsp左右分屏开新
:dd剪切
:p粘贴
cc a.c b.c -o main.out
多个文件编译成一个可执行文件
include “ a.c”直接复制该文件
sp 文件名:新建文件并进入vim编辑
set nu:查看行号
d+d:剪切函数
p:粘贴剪切板
stdio.h 位于 /usr/include
vim同时打开多个文件:
命令模式中 输入 :sp
打开之后, 在命令模式中 CTRL+w + 下箭头 : 光标跳转到下面的文件
vim显示行号:
命令模式 输入 :set nu
复制光标所在行级之后行内容:
数字(一共复制几行) + dd :将内容复制到剪切板;
在新文件中 命令模式下 输入 p :将剪切板内容粘贴;
同时保存 + 退出编辑 :
命令模式输入 :wqa
gcc 所有文件名 -o 输出文件名
#include "max.c" //表示将max.c的文件内容复制到当前执行文件中,max.c中包括声明以及源代码;