vim 基本配置及与其他编辑器的优缺点比较

vim 基本配置

下载vim
		yum install vim
	在vimrc中配置vim编辑器
		set nocompatible   “去掉有关vi一致性模式,避免以前版本的bug和局限
		set nu!           ”显示行号
		set guifont=Luxi/Mone/9   "设置字体,字体名称,以及字号
		filetype on        "检测文件的类型
		set history=1000   “记录历史行数
		set background=dark   “背景使用黑色
		syntax on            “语法高亮显示
		set autoindent        “vim使用自动对齐,就是把当前的对齐格式应用到下一行
		set cindent           “(cindent)是针对c语言语法自动缩进
		set smartindent        “依据上面的对齐格式,自动选择对齐方式
		set tabstop=4          “设置tab键为4个空格
		set shiftwidth=4       “当行之间交错时使用4个空格
		set ai!               “设置自动缩进
		set showmatch          “输入左括号时,自动匹配一个右括号
		set vb t_vb            “vim进入编辑模式时。去掉设置中命令错误的警告
		set ruler              “右下角显示光标位置的状态行
		set nohls              “关闭寻找匹配中的高亮显示
		set backspace=2        “设置退格键可以使用
		set incsearch          “在程序中查询单词,自动匹配单词位置

vim与其他编辑器的优缺点比较

vim
	vim是vi发展而来的文本编辑器,代码补完、编译及错误跳转等方便编程的功能特别丰富,
	在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器,vim功能强大,
	插件种类众多,具有高度的定制化
	
Emacs
	(1)Emacs,即Editor MACros的缩写(编辑器宏),1984年由Richard Stallman发起并由他维护至今的GNU Emacs,
	以及1991年发起的XEmacs。XEmacs是GNU Emacs的分支,至今仍保持着相当的兼容性。
	(2)Emac使用Emacs Lisp,这种有着极强扩展性的编程语言,从而实现了包括编程、编译乃至网络浏览等等功能的扩展。
	
Eclips
	(1)Eclipse是一个开放源代码,基于Java的可扩展开发平台。就其本身而言,他就是一个框架和一组服务
	通过插件来构建开发环境
    (2)Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 
	的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,
	对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
    (3)基于 Eclipse 的应用程序的一个突出例子是 IBM Rational Software Architect,它构成了 IBM Java 开发工具系列的基础。
    
Brackets
	Brackets也是一款为Linux开发者设计的开源代码编辑器,使用Brackets写代码,不会被其他进程打断
	比如在写HTML代码时,即便你没有保存代码也可以及时预览你的Web页面效果。你也可以使用Theseus来检查变量
	
Sublime Text
	Sublime Text 是一个代码编辑器(Sublime Text 2是收费软件,但可以无限期试用)它最初被设计为一个具有丰富扩展功能的Vim。
	Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。
	Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。
	Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。
	
nano
	nano只是一个类似emacs的简单编译器,linux下有很多文本编辑器,不同的linux版本都会自带nano,但nano功能很少。
	它使用简单,我们可以直接加上文件名就能够打开一个旧文件或新文件,我们可以打开一个旧文件编辑它,也可以打开一个新文件,即不管这个文件存不存在都是可以打开的。
	Emacs和Vim比起来,编辑效率低下。Emacs强调统一的环境,便于编程,里面包含了源代码管理,邮件收发等,最重要的是所谓与gbd出自一家,兼容性好。

linux中yum与rpm的区别

绝大多数的开源软件都是直接按照源码形式发布的
	源代码通常会被压缩为.tar.gz格式的归档文件
	源代码需要被编译成为二进制文件才可以被执行
		1)检查编译环境、
		2)使用make对源代码进行编译
		3)make install 将生成的可执行文件安装到计算机
		
	RPM
		1.源代码的特点:操作复杂,编译时间长,容易出现问题,且依赖关系复杂
		2.为了方便,RPM(redhat package manager)
		3.RPM通过将不同操作系统的源文件编译为可执行文件,并保存依赖关系,来简化开源软件的安装管理
		针对不同的系统设定不同的包
		4.常用命令规范:linuxcast-1.2.0-30.el6.1686.rpm 包名+版本号+适用平台+32/64+rpm
		5.适用rpm -i software.rpm(安装)
		  rpm -e software.rpm(卸载)
		  rpm -U software.rpm(升级式安装)
		  rpm -ivh http://www.linuxcast.net/software.rpm(支持通过http/ftp协议形式安装)、
		  -v (显示详细信息)
		  -h (显示进度条)
		  查询功能:
			rpm -qa(列出全部已经安装的.rpm软件)   rpm -qa | grep **
			
	YUM
		rpm软件包形式的管理虽然方便,但是需要手动解决软件包的依赖关系。
		很多时候安装一个软件安装一个软件需要安装1个或者多个其他软件,手动解决时很复杂,
		
		yum解决这些问题。Yum是rpm的前端程序,主要目的是设计用来自动解决rpm的依赖关系,其特点:
			1.能够自动解决依赖关系
			2.可以对rpm进行分组,基于组进行安装操作、
			3.引入仓库概念,支持多个仓库
			4。配置简单
		
		yum仓库用来存放所有的现有的.rpm包,当使用yum安装一个rpm包时,需要依赖关系,会自动在仓库中查找依赖软件并安装。
		 仓库可以是本地的,也可以是HTTP、FTP、nfs形式使用的集中地、统一的网络仓库。
		仓库的配置文件在/etc/yum.repos.d目录下
		
		yum install 安装;
		yum remove  卸载;
		yum update  升级定制软件
        yumsearch  ** 查询软件

为什么调试的时候需要编译选项中添加 -g

因为gcc 编译生成的版本是release版本,gdb调试需要加入调试信息,
gcc -g 可以生成debug版本,才能使用gdb调试

常用的编译器有哪些

1.MSVC
Windows平台上最常用的编译器,但是对标准的支持不够新不够快。

2.Clang
licence极度友好,代码质量好,采用的IR为LLVM 包括微软,IBM,Nvidia等也在大力开发,但是Clang依赖于的LLVM,目前的性能无法与GCC相提辩论,且一些开源软件也无法编译通过

3.GCC/G++
跨体系结构很多,很多开源软件默认编译器都是GCC/G++。

4.ICC
没有自身专门的前端,而且是针对Intel体系结构上专门优化。
		
readelf命令
1.通常用于查看linux上elf格式的文件信息,常见的有动态库(*.so)或者静态库(*.a)等包含
elf格式的文件
2.readelf常用命令
选项 -h  显示elf开始的文件头信息
选项 -l segments显示程序头信息
选项 -s 显示节头信息
选项 -g 显示节组信息

你可能感兴趣的:(linux)