Linux里的vi编辑器

在Linux中编写C语言代码

在终端中可以使用vi查看或编写c语言代码:

  1. 输入vi a.c,这会在当前路径下新建一个文件a.c,然后系统会使用vi去打开它

  2. 进入后会发现按键盘是输入不了的,这是因为目前是vi的命令行模式

    • 打开vi默认是命令行模式
    • i进入输入模式,在输入模式时会看到页面下方会显示INSERT
    • esc可从输入模式回到命令行模式
  3. 使用vi编辑完代码后,在命令行模式下输入:wq,即可保存文件然后退出vi

    w:保存
    q:退出

在终端使用gcc编译

  1. 输入gcc 文件名 -o 编译后程序的名称,这里输入gcc a.c -o firstProgram,然后回车。如果只是打gcc a.c也可以,系统会默认把编译好的程序命名为a.out
  2. 然后就会出现firsProgram这个程序,可以用ls命令看一下当前路径下有些什么东西
  3. 输入:./firstProgram即可运行程序

命令行模式下输入:set nu,回车后代码会显示行数

如果用gcc编译后出现segmentation fault,可以输入命令gcc xxx.c -g,然后输入gdb a.out,使用gdb调试生成的程序。按r使程序运行。有时候gdb调试工具会告诉你段错误出现的原因,但也有可能不会告知。

使用man查看代码手册

举个例子,某次编写代码发现gcc编译不认识free(),就可以在终端里面输入:man free,然后会发现并没有写出这个free()包含在哪个头文件。继续在命令行输入man 2 freeman 3 free,最终可以在man 3 free里面看到free()需要包含头文件stdlib.hman后面的数字表示分页,可以就认为是第几页

一些常用的vi操作

摘自:Linux vi/vim

输入区分大小写

  • G:移动到这个档案的最后一行(常用)

  • nGn 为数字。移动到这个档案的第n行。例如20G则会移动到这个档案的第 20 行(可配合 :set nu)

  • gg:移动到这个档案的第一行,相当于1G`啊! (常用)

  • n+Entern 为数字。光标向下移动n行(常用)

  • x, X:在一行字当中,x 为向后删除一个字符 (相当于del按键),X为向前删除一个字符(相当于 backspace 亦即是退格键) (常用)

  • nx:n 为数字,连续向后删除n个字符。举例来说,我要连续删除 10 个字符:10x

  • dd:剪切游标所在的那一整行(常用),用p/P可以粘贴。

  • ndd:n 为数字。剪切光标所在的向下 n 行,例如20dd则是剪切 20 行(常用),用p/P可以粘贴。

  • d1G:删除光标所在到第一行的所有数据

  • dG:删除光标所在到最后一行的所有数据

  • d$:删除游标所在处,到该行的最后一个字符

  • d0:那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符

  • yy:复制游标所在的那一行(常用)

  • nyy:n 为数字。复制光标所在的向下 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:重做上一个动作(常用)
    这个uCtrl+r是很常用的指令,一个是复原,另一个则是重做一次

  • .:这是小数点,意思是重复前一个动作的意思。 如果想要重复删除、重复贴上等等动作,按下小数点.就好 (常用)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值