vi常用命令

vi是最强大的文本编辑器,没有之一。尽管 vi已经是古董级的软件,但还是有无数新人迎着困难去学习使用,可见其经典与受欢迎程度。

       无论是小说中还是电视剧,真正强大的武器都不容易驾驭,需要付出一些努力才能收获到更加强大的力量,对于vi这种上古神器来说更是如此。由于它全程使用键盘操作,很多首次接触 vi的人会觉得不习惯而中途放弃。然而,坚持下来的朋友就会渐渐地发现这种键盘操作的设计绝妙之处!经典之所以能成为经典,必然有它的道理,不用解释太多。

       观察一个程序员对vi的熟练程度,可以判断它的技术水平,如果他对vi不熟悉,就肯定不是Linux平台下的程序员,说vi不好用的人也肯定不熟悉vi,没有例外。

       vi 有两种模式,命令行模式和编辑模式,在命令行模式下,任何键盘输入都是命令,在编辑模式下,键盘输入的才是字符。

       打开一个文件: vi 文件名,如果文件不存在,就新建文件。

       Esc      从编辑模式切换到命令行模式

       i    从光标所在字符前插入 

       a   从光标所在的字符后面插入

       o   从光标所在行的下面插入空白行

       O   从光标所在行的上面插入空白行

       I    从光标所在行的行首插入

       A   从光标所在行的行末插入

       k   类似方向键上

       j    类似方向键下

       h   类似方向键左

       l    类是方向键右

       Ctrl+u       向上移动半页

       Ctrl+d       向下移动半页

       gg  光标跳到文本的第一行

       G    光标跳到文本最后一行

       0    光标跳到所在行的行首

       $    光标跳动到所在行的行尾

       w    光标跳到下个单词的开头

       b    光标回到上个单词的开头

       e   光标回到本单词的尾部

       x     每按一次,删除光标所在位置的一个字符

       nx  如"3x"表示删除光标所在位置开始的3个字符

       dw  删除当前光标所在的单词

       dd   删除光标所在行

       ndd  如"3dd"表示删除光标所在行开始的3行字符

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

       nyy 将光标所在n行复制到缓冲区

       p    将缓冲区里的内容写到光标所在位置

       r     替换光标所在处的字符 replace

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

       cw 开始替换当前光标所在的单词,直到按下"Esc"为止

       u   撤销命令,可多次撤销

       J   把当前行的下一行接到当前行的尾部

       Ctrl+g       列出文件一共有多少行

       nG           表示移动光标到文件的第n行行首

       /abcd  在当前打开的文件中查找“abcd”文本内容

       n      查找下一个

       N      查找上一下

       .    重复执行上一次执行的vi命令。

       ~   对光标当前所在的位置的字符进行大小写转换。

       :5回车   光标跳到第5行。

       :n回车   光标跳到第n行。

       :w回车   存盘

       :w!回车  强制存盘

       :wq回车 存盘退出

       :x回车    存盘退出

       :q回车  不存盘退出

       :q!回车  不存盘强制退出

       :g/aaaaaaaaa/s//bbbbbb/g回车    把文件中全部的aaaaaaaaa替换成bbbbbb

       Ctl+insert   复制鼠标选中的文本,相当于Ctl+c

       Shift+insert 输出鼠标选中的文本,相当于Ctl+v

       以上两个命令在windows和UNIX中是通用的

gcc工具其实和window界面下的编译工具差不多,只是这里用到的是命令行。在vi编辑器中打好程序后,保存为.c文件,然后用 gcc -o filename filename.c 命令执行,如果程序没有错误 ls 在该目录下可以看到filename一个可执行的文件,如果想看到hello world 执行这个可执行文件就ok了,用./命令执行。

注,如果,想用gdb调试工具的话,命令需要修改, gcc -g -o filename filename.c就可以用了,其中还有部分gcc命令没有给出,清参考

-c                  只是编译不连接,生成目标文件.o

-S                  只编译不汇编生成汇编代码

-E                  只进行预编译,不做其他处理

-g                  在可执行程序中包含标准的调试信息

-o file             把文件输出到file里

-v                  打印出编译内部编译个过程的命令行信息和编译的版本

-l dir              在头文件的搜索路径列表中添加dir

-L dir              在库文件的搜索路径的列表中添加dir目录

-static             连接静态库

-library            连接名为library的库文件

:!  后面可以接 Linux命令

Vi编译时,输入错的信息,可以按住CTRL+backspace 或delete删除

原文地址:https://www.cnblogs.com/sdb1942/p/13211330.html