1.vim配置

Vim是从 vi 发展出来的一个功能强大、高度可定制的文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。
那么vim怎么来配置它呢?
在目录/etc下面,有一个名为.vimrc的隐藏文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以建立私有的配置文件,命名为“.vimrc”。我们在自己的linux下执行命令:cd~ 进入到自己的祝工作目录,然后执行:vim .vimrc 打开自己目录下的vim配置文件,然后在文档中可以对vim进行配置。常用的配置选项有:

  • 设置语法高亮:syntax on
  • 显示行号:set nu
  • 设置缩进的空格数为:set shiftwidth=4

除了这些原生配置,我们还可以选择安装插件来完善配置,让vim更加好看、方便。常用的插件有taglist,winmanager。
网上有很多大神将原生配置和插件都打包起来以供下载,这里先放上一张我使用的vim配置的大神的截图解解馋。
另外附上链接:传送门

2.常用编辑器

Vim

Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。它普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs在文本编辑方面都是非常优秀的。

Emacs

Emacs,著名的集成开发环境和文本编辑器。Emacs被公认为是最受专业程序员喜爱的代码编辑器之一,另外一个vim。
EMACS,即Editor MACroS(编辑器宏)的缩写,最初由Richard Stallman(理查德·马修·斯托曼)于1975年在MIT协同Guy Steele共同完成。这一创意的灵感来源于TECMAC和TMACS,它们是由Guy Steele、Dave Moon、Richard Greenblatt、Charles Frankston等人编写的宏文本编辑器。
自诞生以来,Emacs演化出了众多分支,其中使用最广泛的两种是:1984年由Richard Stallman发起并由他维护至今的GNU Emacs,以及1991年发起的XEmacs。XEmacs是GNU Emacs的分支,至今仍保持着相当的兼容性。
Emacs使用Emacs Lisp,这种有着极强扩展性的编程语言,从而实现了包括编程、编译乃至网络浏览等等功能的扩展。

Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用Java语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如C/C++、COBOL、PHP、Android等编程语言的插件已经可用,或预计将会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。
基于 Eclipse 的应用程序的一个突出例子是 IBM Rational Software Architect,它构成了 IBM Java 开发工具系列的基础。

Sublime Text

Sublime Text 是一个代码编辑器(Sublime Text 2是收费软件,但可以无限期试用),也是HTML和散文先进的文本编辑器。Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim。
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

Notepad++

Notepad++是 Windows操作系统下的一套文本编辑器(软件版权许可证: GPL),有完整的中文化接口及支持多国语言编写的功能(UTF8技术)。
Notepad++功能比 Windows 中的 Notepad(记事本)强大,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码。Notepad++ 不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组。
Notepad++是免费软件,可以免费使用,自带中文,支持众多计算机程序语言。

Lighttable

LightTable是一个应用ClojureScript写的可扩展的集成编辑环境(IDE)。由ChrisGranger和RobertAttorri开发。具有实时运行反馈,调试和搜索文档的功能。及时反馈功能提供了一个不同寻常的运行环境来让程序员构建抽象。开发团队试图创造一个能够让程序员及时获知程序运行状态的软件。该软件一开始只支持Clojure语言,但是现在通过众多扩展,也能够支持Python和JavaScript语言。

nano

nano是Unix和类Unix系统中的一个文本编辑器,是Pico的复制品。
GNU nano是一个小巧友好的文本编辑器. 与基本的文本编辑相比,nano提供许多额外的特性,例如:交互式的查找和替换,定位到指定的行列,自动缩进,特性切换,国际化支持,以及文件名标记完成.
nano的目标是类似Pico的全功能但又易于使用的编辑器。nano是遵守GNU通用公共许可证的自由软件,自从2.0.7版发布,许可证从GPLv2升级到GPLv3。

DartEditor

DartEditor是Google开发设计的,旨在帮助开发者制作光亮而惊叹的Web应用。DartEditor支持多种开发语言,同时也集成了Dartium。通过它的静态分析引擎,你可以创建,维护,调试和开发自己的Web应用。函数、类、方法等都能以树的结构列出来,方便你编写代码。

Chocolat

Chocolat是最新出现的一款强大的Mac系统文本编辑器,兼具原生的Cocoa及强大的文本编辑功能。Chocolat支持很多种编程语言的关键字高亮显示、窗口分割、标签页、色彩主题等功能。界面和MacVim非常相似。

常用编译器

GCC

GCC原名GNU C Compiler,后来逐渐支持更多的语言编译(C++、Fortran、Pascal、Objective-C、Java、Ada、Go等),所以变成了GNU Compiler Collection(GNU编译器套装),是一套由GNU工程开发的支持多种编程语言的编译器。GCC是自由软件发展过程中的著名例子,由自由软件基金会以GPL协议发布,是大多数类Unix(如Linux、BSD、Mac OS X等)的标准编译器,而且适用于Windows(借助其他移植项目实现的,比如MingW、Cygwin等)。GCC支持多种计算机体系芯片,如x86、ARM,并已移植到其他多种硬件平台。
优点:类Unix下的标准编译器,支持众多语言,支持交叉编译。
缺点:默认不支持Windows,需要第三方移植才可用于Windows。

MSVC

MSVC是微软Windows平台Visual Studio自带的C/C++编译器。
优点:对Windows平台支持好,编译快。
缺点:对C++的新标准支持得少。

Clang

Clang是一个C语言、C++、Objective-C语言的轻量级编译器。源代码发布于BSD协议下。Clang将支持其普通lambda表达式、返回类型的简化处理以及更好的处理constexpr关键字。

ICC

全称Intel C++ Compiler,是Intel开发的C/C++/Fortran编译器套装,适用于Linux、Microsoft和Mac OS X操作系统,没有非IA指令集版本(就是说仅供x86架构CPU使用)。ICC广泛应用于高性能计算、分布式计算等商业计算领域,其向量化和并行化性能是业界的标杆,能够充分发挥现代处理器的特性。ICC编译器套装提供两个版本,针对高性能计算机测试采用前者,而后者面向嵌入式及移动设备。

IBM® XL C/C++ for AIX®

IBM® XL C/C++ for AIX® 是一种编译器,有助于为 IBM Power Systems™ 创建和维护使用 C/C++ 编写的应用。它能生成可利用最新 POWER8™ 架构功能的代码,并最大限度地提高硬件利用率。

Cygwin

Cygwin是一个Windows下Unix-like模拟环境,具体说就是Unix-like接口(OS API,命令行)重定向层,其目的是不修改软件源码仅重新编译就可以将Unix-like系统上的软件移植到Windows上(这个移植也许还算不上严格意义上的无缝移植)。始于1995年,最初作为Cygnus软件公司工程师Steve Chamberlain的一个项目。
和GCC的关系:Cygwin是让Windows拥有Unix-like环境的软件而不是编译器,GCC是安装在Cygwin上的编译器。
优点:可以比MingW移植更多的软件到Windows上,对Linux接口模拟比MingW全面。
缺点:软件运行依赖cygwin1.dll,速度受点影响。

MingW

MingW(Minimalist GNU on Windows)是一个Linux/Windows下的可以把软件源码中Unix-like OS API调用通过头文件翻译替换成相应的Windows API调用的编译环境,其目的和Cygwin相同。从而把Linux上的软件在不修改源码的情况下编译为可直接在Win下执行的exe。
和GCC的关系:MingW是编译环境,不是编译器,GCC是MingW中的核心组成。
优点:在Win下可以和Linux一样的方式编译C/C++源码,可以说是Win版的GCC,其生产的Windows PE程序相比Cygwin不依赖任何第三方库,比Cygwin纯粹,理论上也更快速。
缺点:编译速度、编译出的程序在算法上可能都比MSVC慢。

gcc -g和readelf命令

默认编译生成的可执行文件是无法使用 gdb 来跟踪或调试的,因为可执行程序中没有可供 gdb 调试使用的特殊信息,为了将必要的调试信息整合到可执行文件中,我们便需要用到 -g 选项,这样生成的可执行程序,倘若出现问题,便可以使用 gdb 找出问题具体出现的位置,便于问题的解决。

gcc -g test.c

“-g”标志是对程序进行调试性编译时常用的选项。我们需要给每一个需要调试的源文件都加上这个选项。它将使用特殊版本的C语言标准库完成编译和链接操作,给库函数加上程序调试方面的支持。编译器会把这些标志自动传给链接器。
加上-g选项以后,gcc在编译是会做以下额外的操作:

  1. 创建符号表,符号表包含了程序中使用的变量名称的列表。
  2. 关闭所有的优化机制,以便程序执行过程中严格按照原来的C代码进行。

readelf命令

readelf用来显示ELF格式目标文件的信息.可通过参数选项来控制显示哪些特定信息。
ELF文件有下面三种类型:

  1. 目标文件
    $ gcc -c test.c
    得到的test.o就是目标文件,目标文件通过链接可生成可执行文件。
    静态库其实也算目标文件,静态库是通过ar命令将目标打包为.a文件。
    如:ar crv libtest.a test.o
  2. 可执行文件
    $gcc -o test test.c
    得到的test文件就是可执行的二进制文件。
  3. 共享库
    $ gcc test.c -fPIC -shared -o libtest.so
    得到的文件listtest.so就是共享库。

可以通过readelf来区分上面三种类型的ELF文件,每种类型文件的头部信息是不一样的。

彩色进度条程序

直接上代码和截图:
progressbar.c

#include <stdio.h>
#include <unistd.h>
#include <string.h>int main()
{int i=0;int j=0;char bar[102];int color[]={1,2,3,4,5,6,7};const char* status="|/-\\";memset(bar,0,sizeof(bar));while(i<=100){printf("\033[3%dm[%-100s]\033[0m\033[33m[%d%%]\033[0m[%c]\r",color[j],bar,i,status[i % 4]);fflush(stdout);bar[i++]='#';if(i%15==0){++j;}usleep(50000);}printf("\n");return 0;
}

Makefile

progressbar:progressbar.cgcc $^ -o $@

效果图:

Linux软件安装

  1. 源码安装
    大多数开源的软件都是源码的形式。拿过来自己编译,安装。
    优点:源码安装兼容性好。  
    缺点:过程繁琐还容易卡壳。
  2. rpm安装
    RPM(Red-Hat Package Manager)红帽的软件包管理器。一般rpm安装使用rpm包,rpm包和tar包、gzip等不同,这些是压缩包,而rpm包是源码和一些安装规则的集合。使用RPM方式来安装后会指定软件安装位置,并生成对应的配置文件、服务启动脚本文件等。
    优点:简化安装方式,不需要联网!
    缺点:指定rpm包去安装,没有解决依赖关系。
  3. yum安装
    是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包。
    优点:再次简化安装
    缺点:需要联网,更准确的说法是需要有一个yum源。大型的公司都会有自己的yum源,或者是找到可访问的yum源,修改yum配置文件中的yum源地址,并使之生效,这样就可以用yum进行软件安装了。

Linux下基本工具及彩色进度条程序相关推荐

  1. 详解在Linux下实现(彩色)进度条程序,并通过makefile进行编译.

    彩色进度条的实现与makefile编译: 创建一个process文件,在里面编写实现进度条的代码    1.在编写代码的时候我们首先要区分两个转义字符:\n \r \n:表示换行,换到下一行,并位于起 ...

  2. Linux下关于gcc、vim、readelf、rpm、yum、彩色进度条的问题

    一.vim vim厉害的原因: 1.支持非常丰富的快捷键. 2.支持非常丰富的扩展功能. vim的竞争对手: 1.emacs(2000年之前) 2.notepad ++/notepadplus/ue/ ...

  3. Vim引申以及Linux下彩色进度条实现

    每个在linux环境下编程过的人一定都用过vim,那你知道vim是什么的增强版吗? 1.其他的编辑器: linux下,vim是最常用也是最强大的文本编辑器. 除此之外,还有比如图形模式的gedit.k ...

  4. Linux代码编译(模式切换、gdb、编译器之间的对比、彩色进度条、rpm与yum区别)

    常用工具: 软件包管理工具:yum 编程相关工具:vim.gcc/g++.gdb 项目相关工具:make/Makefile.git 查看软件包:yum list/grep key 安装软件包:yum ...

  5. pip命令下载第三方依赖的彩色进度条的具体实现

    pip命令下载第三方依赖的彩色进度条的具体实现: 原理: 参看下面这个文档: Linux终端打印带颜色的文字_天龙至尊的博客-CSDN博客\033[0m 关闭所有属性 \033[1m 设置高亮度 \0 ...

  6. linux命令显示进度,【命令】Linux下查看dd命令写入进度

    [命令]Linux下查看dd命令写入进度 12个月前 (05-14)    作者:Jiaozn    分类:Linux    阅读次数:433 评论(0) Linux下有一个强力工具,dd,用来操作镜 ...

  7. linux编译项目的命令,Linux用make指令编译进度条程序

    本文实例为大家分享了Linux下写一个简单进度条的具体代码,供大家参考,具体内容如下 首先建立一个新的文件,touch progress_bar.c 执行该vim progress_bar.c命令,写 ...

  8. Linux 浅谈代码打印到终端的缓冲区(进度条程序)

    我们知道printf是向终端显示打印数据,是我们想要看到程序的结果,而在linux系统下一切皆文件,在终端显示是要有显示器设备的,在linux下把显示器设备当做文件进行操作,将数据写入到显示器设备文件 ...

  9. 自定义彩色进度条效果

    自定义彩色进度条效果 效果如下:颜色可以随意设置 View代码 1 package angus.wsj.com.circularprogressview;2 3 import android.cont ...

最新文章

  1. python调用海康sdk 数据类型
  2. Java 6.编写类
  3. 维护工厂的装运点确认
  4. python爬虫:使用BeautifulSoup进行查找
  5. Weave Scope 容器地图 - 每天5分钟玩转 Docker 容器技术(80)
  6. [日常] nginx与负载均衡
  7. 软中断网卡处理Linux高性能外部设备处理机制SMP
  8. 三星v版系统更新无法连接到服务器,美国V版三星S9/S9+迎来安卓9更新 展示新One UI用户界面...
  9. IQ不平衡数字域校准方案
  10. 今夜故人来不来,教人立尽梧桐影
  11. 当下推荐系统的分析和关于长尾效应的解决猜想
  12. JavaWeb开发QQ动态表情-源文件
  13. AssertionError: Torch not compiled with CUDA enabled问题
  14. js获取今天剩余时间_Node.js 在微医的应用场景及实践
  15. Spring Security 实战:实现自定义退出登录
  16. 联想小新 Air 13 (Pro) 6,7代笔记本安装Win7系统
  17. CRMEB商城直播功能-微信小程序直播
  18. 双云台AI智能分析跟踪会议云台摄像机技术应用
  19. 关闭休眠扩大c盘空间
  20. 卷起来了!校招提前批爆发期!

热门文章

  1. mysql8.0最低需要多少内存_MySQL8.0内存相关参数总结
  2. 3.22 使用模糊和锐化工具 [原创Ps教程]
  3. 这篇文章让你读懂元数据及其意义
  4. redis 锁机制 ab测试
  5. 视频消重软件推荐 全网短视频解析去水印软件
  6. Buuctf Crpyto writeup --[GKCTF2020]小学生的密码学
  7. ReplayKit 的屏幕录制功能
  8. 有哪些让你看着很扎心的文案?
  9. 盛世狂欢意犹未尽之恋舞OL折扣平台多角度体验
  10. kajiya-kay 头发