神技—终端编辑器Vim

工欲善其事,必先利其器

  在使用Linux系统时,特别是对于计算科学领域的学者来说,使用Linux系统是经常的事情。虽然如今Linux的桌面环境(如KDE、Gome等等)发展的很好,而且也有良好的用户接口界面,不过笔者依然习惯在终端修改一些配置文件(包括系统配置文件、一些软件的配置文件、一些软件的环境变量等等)和编写一些简单的Bash Shell脚本,用于辅助自己的工作和学习,这样能有利于效率。
  使用Linux系统,会经常使用一些常用的编译工具,这样有利于我们的开发效率。比如你肯定听过的一些工具,make、autotool、cmake、gcc、g++、GNU Gcc等等,这些应该是学习或者创建工程时会用到的,或者听过Makefile文件、CMakelists.txt文件等等。
  初遇时,这些工具很难,那是有原因的:我们经常使用Windows系统而且使用集成开发环境(IDE)进行学习,故而忽略了一个程序是如何从一个自己编写的文本文件变成了可执行的程序,这其中的具体细节以及是如何工作的,没有认真搞懂。
  笔者并没有任何的鄙视,因为自己也是学艺不精。但是我觉得有一个良好的基础,弄懂真正的工作原理,这样使用哪一种计算机语言来实现自己的想法,这反而是一个简单的事情了。现在大部分的学习者都不喜欢这些枯燥的无味的原理理论,而仅仅专注于计算机语言语法本身了,故而在学习完语言语法本身后,又觉得不能做任何事。笔者十分赞同,想要真正有所建树,必须有良好的坚实的理论基础。

掌中星辰转日月,手心苍穹天外天
Stay Hngry,Stay Foolish

vim简介(文本编辑器)

  Vi/Vim是功能强大的全屏幕文本编辑器,是在liunx和Unix上常用的文本编辑器。作用是建立、编辑、显示文本文件,vim没有菜单,只有命令。
  Liunx下编辑神器Vi/Vim,Vim是Vi IMproved。Vi/Vim的整个配置文件是Vimrc,其中rc:run command的意思。了解Vim的寄存器以及其工作原理,利用Vim进行增删查改操作,探寻Vim的组合规律。
Vim还有其高级功能

  • 缓冲区与多文件编辑
  • 多窗口与标签分组
  • 文本对象和宏
  • Visual模式

Vim模式

命令模式、输入模式

  • 输入模式:
      进入vi/vim后,按下键盘的a或者i,则进入输入模式,(在终端的下面末行会显示”–insert–“,提示此时处于输入状态)
  • 命令模式:
      在输入模式下,按下键盘的ESC,则进入命令模式,(在终端的下面末行输入命令,故又称末行模式)

vim常用命令

插入命令
  • a:在光标所在字符后插入
  • A:在光标所在行尾插入
  • i:在光标所在字符前插入
  • I:在光标所在行首插入
  • o:在光标下插入新行
  • O:在光标上插入新行
定位命令
  • :set nu:设置行号
  • :set nonu:取消行号
  • gg:定位到第一行
  • G:定位到最后一行
  • nG:定位到第n行
  • :n:定位到第n行
  • $:定位到行尾
  • 0:点位到行首
删除命令
  • x:删除光标所在处字符
  • nx:删除光标所在处后n个字符
  • dd:删除光标所在行
  • ndd:删除光标开始的n行
  • dG:删除光标所在行到文件末尾内容
  • D:删除光标所在处到行尾内容
  • :n1,n2d:删除指定范围的行
复制和剪切命令
  • yy:复制当前行
  • nyy:复制当前行开始的以下n行
  • p、P:粘贴在当前光标所在的行下、行上
  • dd:剪切当前行
  • ndd:剪切当前行开始的以下n行
替换和取消命令
  • r:取代光标所在处的字符
  • R:从光标所在行处开始替换字符,直到按Esc键结束
  • u:取消上一步操作(撤销)
搜索和搜索替换命令
  • /string:搜索指定字符串
  • :set ic:搜索时忽略大小写
  • n:搜索指定字符串的下一个出现位置
  • :%s/old_string/new_string
  • /g:全文搜索替换指定字符串
  • :n1,n2s/old_string/new_string
  • /c:在一定范围内替换指定字符串
  • /c:是指替换时有询问确认
  • /g:是指替换时无询问确认
保存和退出命令
  • :w:保存修改
  • :w new_filename:另存为指定文件
  • :wq:保存修改并退出
  • ZZ:快捷键,保存修改并退出
  • :q!:不保存修改并强制退出
  • :wq!:保存修改并强制退出(文件所有者及root可使用)

Liunx-gcc tool_chain(工具链)

1、预处理

生成<.i>文件,通过选项-E可以使编译器在预处理结束时停止编译

  • 例如:gcc -E -o hello.i hello.c

2、编译

生成<.s>汇编代码文件,通过选项-S可以使gcc在进行编译后停止

  • 例如:gcc -S -o hello.s hello.c

3、汇编

生成<.o>的目标文件,是机器语言代码《二进制》,当一个程序由多个代码文件 构成时,每个文件都要先完成汇编工作,生成.o目标文件后,才能进行链接,可以通过选项-C生成目标文件

  • 例如:gcc -C -o hello.o helllo.c

4、链接

将程序的所有机器代码的目标文件链接,使操作系统能加载为可执行文件

  • 例如:gcc -o hello hello.c
  • 或者:gcc hello.c -o hello

你可能感兴趣的:(Linux-Ubuntu,linux,vim,编程语言,经验分享,程序人生)