常用文本编辑器
当你步入Linux修仙的那刻起,文本编辑器便化身你的利剑让你在Linux的江湖中任意厮杀,不断成长。因此不同的英雄要陪不同的宝剑,因此我们对现行的几款热门文本编辑器进行测评,快来挑选你们的称心好物吧!
- Vim
Vim 是一个高度可配置的、跨平台的、高效率的文本编辑器,几乎所有的 Linux 发行版本都已经内置了 Vim ,由于其特性之丰富,它已经变得非常流行了。Vim 支持格式高亮,宏记录和操作记录。
在Vim官网上,它是这样介绍的:如何使用它完全取决于你。你可以仅仅使用它作为文本编辑器,或者你可以将它打造成一个完善的IDE(集成开发环境Integrated Development Environment):
- EMACS
Emacs 是一个跨平台的、既有有图形界面也有命令行界面的软件。它也拥有非常多的特性,更重要的是,可扩展!
Emacs 可以处理几乎所有类型文本文件,它的界面可以定制以适应你的工作流,它也支持宏记录和快捷键。Emacs 独特的特性是它可以“变形”成和文本编辑器完全不同的的东西。有大量的模块可使它在不同的场景下成为不同的应用,例如:计算器、新闻阅读器、文字处理器等,你甚至都可以在 Emacs 里面玩游戏。
- NANO
Nano 仅仅拥有最基础的文本编辑软件的功能。它是非常小巧的,非常适合编辑系统配置文件。对于那些不需要复杂的命令行编辑功能的人来说,那么Nano 是完美配备。
- The Nice Editor (ne)
基本上 ne 拥有像 Vim 和 Emacs 一样多的高级功能,包括:脚本和宏记录。但是它有更为直观的操作方式和平滑的学习路线。
Vi编辑器
看了那么多编辑器,是不是各位童鞋们眼睛都要挑花了,想要完全掌握以上编辑器操作肯定是需要耗费一些时间的,因此我们来了解一个平时我们经常用到的Vi编辑器,它几乎内置与所有Linux版本,因此学习Vi编辑还是十分有必要的,废话不多说,咱们走着!
模式选择
- 一般模式
一般模式为默认模式,可以进行删除、复制、粘贴操作. - 编辑模式
(左下方出现INSERT、REPLACE字样)进行编辑 - 命令模式
光标移至最底层,提供搜寻资料功能(读取、存盘、大量取代字符、离开vi、显示行号)
一般操作
1、启动Vi编辑器
形式:Vi test.c/Vi(如果文件存在,打开,否则自动新建)
2、模式切换
3、退出Vi编辑器
- :wq x 存盘退出
- q! 强制退出
vi常用快捷键
- 文件相关类
按键 | 功能 |
---|---|
:w | 保存修改到当前文件 |
:w file | 保存修改到指定的file文件 |
:n1,n2w file | 将从n1开始到n2结束的行写到file文件中 |
:nw file | 将第n行写到file文件中 |
:l,.w file | 将从第一行到光标当前位置的所有文件内容写到file文件中 |
:.,$w file | 将从光标当前位置起到文件结尾的所有内容写到file文件中 |
:r file | 打开另一个文件file |
:e file | 新建file文件 |
:f file | 把当前文件改名另存为file文件 |
:set nu | 显示行号 |
- 字符串搜索、替换和删除
按键 | 功能 |
---|---|
:/str/ | 从当前光标开始往右移动到有str的地方 |
:?str? | 从当前光标开始往左移动到有str的地方 |
:/str/w file | 将包含有str的行写到文件file中 |
:/str1/,/str2/w file | 将从str1开始到str2结束的内容写入file |
: s/str1/str2/ | 将第1个str1替换为str2 |
: s/str1/str2/g | 将所有str1替换为str2 |
- 文本的复制、删除和移动
按键 | 功能 |
---|---|
:$d | 删除从当前行到结尾的所有内容 |
:/str1,/str2/d | 删除从str1开始到str2为止的所有内容 |
:n1,n2co n3 | 将从n1开始到n2为止对的所有内容复制到n2后面 |
:n1,n2 m n3 | 将从n1开始到n2为止对的所有内容移动到n2后面 |
:d | 删除当前行 |
:nd | 删除当前行开始的n行 |
:n1,n2 d | 删除从n1开始到n2为止的所有内容 |
nyy | 复制光标所在的行(多行复制输入n) |
P(小写) | 在光标所在行的下一行粘贴内容 |
P(大写) | 在光标所在行的上一行粘贴内容 |
ctrl+r | 重复上一次的操作 |
. | 重复上一次的操作 |
- 执行shell命令
按键 | 功能 |
---|---|
:!Cmd | 运行shell命令Cmd |
:n1,n2w!Cmd | 将n1到n2行的内容作为Cmd命令的输入,如果不指定n1和n2,则将整个文件的内容作为命令Cmd的输入 |
:r!Cmd | 将命令运行的结果写入当前行位置 |
- 常用键和补充键
按键 | 功能 |
---|---|
x | 删除光标处的字符 |
dd | 删除整行 |
i | 在光标前插入文本 |
a | 光标后插入文本 |
o | 当前行下插入文本 |
u | 撤销最后一次修改 |
:e! | 放弃所有修改 |
:q! | 不保存退出 |
/pattern | 从光标开始处向文件尾搜索pattern |
?pattern | 从光标开始处向文件首搜索pattern |
h或^h | 向左移一个字符 |
j或^j或 ^n | 向下移一行 |
k或^p | 向上移一行 |
l或空格 | 向右移一个字符 |
G | 移到文件的最后一行 |
nG | 移到文件的第n行 |
w | 移到下一个字的开头 |
b | 移到前一个字的开头 |
L | 移到屏幕的最后一行 |
H | 移到屏幕的第一行 |
( | 移到句子的开头 |
) | 移到句子的结尾 |
{ | 移到段落的开头 |
} | 移到下一个段落的开头 |
dw | 删至下一个字的开头 |
ndw | 从当前光标处往后删除n个字 |
dG | 删除行,直到文件结束 |
^w | 插入时,删除前面的字 |
^h或backspace | 插入时,删除前面的字符 |
J | 将下一行连接到当前行的末尾 |
n<< | 使n行都向左移动一个宽度 |
n>> | 使n行都向右移动一个宽度 |
:set ai | 打开自动缩进 |
C程序的编译
Linux应用程序分为可执行文件、脚本文件。
C语言是大家的老朋友了,很多科班非科班的童鞋都跟他打过交道,有的人和他成为了挚爱亲朋,此后相死相依。有的人匆匆一面从此人海永不再见。有的人痛入骨髓,发誓此生对立两面。不管以前你们发生过什么故事,在Linux修仙这条路上还是免不了要和他打个交道,因此我们来了解一下C程序的编译!
-
gcc编译器编译过程
1、预处理
gcc -E hello.c -o hello.i
2、编译
gcc -c hello.i -o hello.o
3、汇编
4、链接
gcc hello.o -o hello
-
gcc警告提示功能
加上-pedantic选项,则使用了扩展语法的地方将产生相应警告。 -
调试运行
./生成的程序名(“./”表示当前工作目录)
将生成的程序目录加入到系统搜索路径的PATH变量 -
程序调试工具—gdb
“-g”选项:gcc -g test.c -o test
打开gdb调试:gdb + file名