月度归档:2014年09月

vim


转自:http://www.iplaysoft.com/vim.html

Vim
Linux 系统
上的最著名的文本/代码编辑器,也是早年的 Vi 编辑器的加强版,而 gVim 则是其 Windows 版。它的最大特色是完全使用键盘命令进行编辑,脱离了鼠标操作虽然使得入门变得困难,但上手之后键盘流的各种巧妙组合操作却能带来极为大幅的效率提升。

因此
Vim
和现代的编辑器(如
Sublime Text
)有着非常巨大的差异,而且入门学习曲线陡峭,需要记住很多按键组合和命令,如今被看作是高手、Geek们专用的编辑器。尽管
Vim
已经是古董级的软件,但还是有无数新人迎着困难去学习使用,可见其经典与受欢迎程度。另外,由于 Vim 的可配置性非常强,各种插件、语法高亮配色方案等多不胜数,无论作为代码编辑器或是文稿撰写工具都非常给力……

Vim – 难以驾驭的神器:

VIM

无论是小说中还是电视剧,一些真正强大的武器总不是那么容易驾驭的,主角总得付出一些努力才能收获到更加强大的力量,对于
Vim
这种上古神器来说更是如此。由于它全程使用键盘操作,你必须记住一堆快捷键、按键组合以及各种命令才能开始使用,很多首次接触 Vim
的人会觉得越学越复杂而中途放弃。然而,坚持下来的朋友就会渐渐地发现这种键盘流操作的设计绝妙之处!经典之所以能成为经典,必然有它的道理,我想我也不用解释太多~

gVim 编辑器界面截图:

[ Vim (Windows版本截图) ]


Vim 的语法高亮、行号、自动缩进等 (截图来自新风宇宙)Vim
的语法高亮、行号、自动缩进等 (截图来自新风宇宙)

Vim 的目录树插件Vim
的目录树插件

Mac 系统下的 Vim:MacVim 截图Mac
系统下的 Vim:MacVim 截图

虽然历史悠久,但却恒远流长!

由于 VIM 的操作方式实在太过经典,学习并上手之后将会获益良多,譬如刚刚介绍过的 “Vimium、Vimperator 浏览器插件让你全程用键盘快捷高效浏览网页” 之类一些工具,往往很多精彩的软件或多或少都会参考 Vim 的一些操作思想去设计它们的热键。而由于其强大灵活的可配置性,各种插件、语法高亮、代码补全、配色方案等资源极其丰富,很多程序员也将其打造成属于自己的首选代码编辑器,对于时下各种热门的编程语言,VIM都支持得相当的完美;而对于一些文字工作者,Vim
作为一款文本撰写器也是极其“锋利”的武器;

特别是,如果你是一位 IT 界人士,需要或将要与
Linux 系统
打交道,那么学习好 Vim 的操作绝对能让你的工作轻松百倍!!因为很多时候, Linux 作为服务器是不会开启图形界面,当需要远程操作时,你只能利用 SSH“命令字符式”的 Shell 界面对其进行操作,这时如果你需要修改服务器上的网页代码或配置文件,VI
或 VIM 命令就是你最佳最方便也是最强大的伙伴了!相信我,学好 数理化 VIM,走遍天下也不怕……

Vim 的教程与学习资料汇总 (via
xbeta
):

一、官方文档:

当你首次安装好 Vim 之后,可以用 :help tutor 或者
:help [email protected]
命令,进入一个30分钟的 Vim 入门教程。你也可以下载一个 Vim Documentation Chinese Version (Vim官方文档中文版)的安装包,安装好之后使用
:help @cn 命令查看中文官方文档。另外,你还可以下载一个
Vim 用户手册的中文翻译版本
PDF 电子书去了解更多。

二、网友作品:

  • 大家来学 Vim  |  李果正 (台湾网友编写的手册,PDF格式,80多页。传送门
  • Vim 使用技术  |  IBM 吴咏炜 (共分3篇:实用技巧常用插件定制
    Vim
  • 神奇的VIM|IBM 闫石  (举了很多例子,尽显Vim之神奇,特别推荐阅读。传送门
  • 史上最强的 vimrc 文件|amix (传送门,约800行,未必全用,但通读有益!另:国内网友改进版,更符合中文习惯。
  • 史上最强的 Vim Tips  (传送门)
  • Vi / Vim 使用进阶|Easwy  (写本系列文章的最初想法,是介绍如何用vi/vim开发软件。但纵观整个系列,讲述的其实和软件开发关系并不大,基本都在讲vim的使用技巧、vim的配置及vimrc、vim的命令和vim的插件。包括:序言(讲述我使用vi/vim的经历和心得,以及对vi/vim初学者的一些建议)、使用会话和viminfo、vimrc初步、保存项目相关配置、 使用标签(tag)文件、使用taglist插件、文件浏览和缓冲区浏览、lookupfile插件、开启文件类型检测、 乱花渐欲迷人眼
    – 语法高亮、程序员的利器 – cscope、 剑不离手 – quickfix、智能补全、 自动补全、指随意动,移动如飞、在VIM中使用GDB调试 – 使用vimgdb、等十余篇内容,后续还有待完成的几篇。传送门
  • Vim对程序员与普通人分别有什么用?  (Dieken写过
    程序员的编辑器VIM
    后,xbeta写了
    普通人的编辑利器 Vim
    。)
  • 使用Vim的总结  |  edyfox  (水木社区Vim版高手的作品。
    传送门
  • 用心绘制的Vim入门图解说明  |  vgod  (传送门)
  • Vim 中文详解+大量收集的Vim资料链接  |  狂人  (传送门)

三、收集的 Vim 视频教程:

不同人眼中有不同的 Vim:

原版的
Vim
就像是一张白纸,由于它的扩展性非常强大且资源丰富,你可以将它打造成适合自己的代码编辑器、强大的IDE开发环境、代码浏览器、文稿编写工具等。不过除了常规的文字编辑相关的插件外,Vim还有很多有趣的功能插件,譬如将其打造成纯文本的网页浏览器或者用来收发邮件!只有想不到,没有做不到~

对于喜欢折腾喜欢学习的同学来说,Vim 就是一款神奇的无比强大的编辑器,它经典巧妙的操作让人佩服。但对于不爱折腾的同学来说,Vim 看起来可能更像是一个怪物,丑陋、操作怪异并且难以上手。在不同人的眼中,它有着完全不同的价值。由于它并非一款能轻松上手的软件,到底值不值花时间花精力去学习使用,这就是一个见仁见智的问题了。但这款被无数人称为经典的上古神器,还是值得在异次元撰文推荐一下的……

相关文件下载地址:

官方网站:访问

软件性质:免费

解压密码:www.iplaysoft.com
相关文档:官方中文文档  | 

Vim用户手册中文翻译PDF版
  | 
PDF阅读器

下载 gVim 编辑器  | 

下载 MacVim
  | 
Linux版
  | 
iOS版
  | 
Android版
  | 
来自异次元
  | 
更多编辑器

Linux是怎么启动的(整理)


转自:http://www.cnblogs.com/lamian/p/3971195.html


昨天笔试考了一道关于linux系统启动的过程,当时没答上来,现在整理出来(其实并不复杂)。


按下电源按钮的直到欢迎页出来之后,linux总共做的事可以分为五步来完成。


1、  BIOS加电自检:


加电自检,检测硬件设备。然后按照cmos上面的顺序来搜索处在活动状态下的可以引导的设备。可以是光驱、软盘、USB等。


2、  加载主引导加载程序(MBR):


主引导程序是一个512字节的映像。包含一点机器码还有一个小的分区。


主引导程序的任务就是查找并且加载处在硬盘分区上的次引导程序。通过分区表查找活动分区,并将处在活动分区的次引导加载程序读取到内存里面运行


3、  加载次引导记载程序(GRUB)


次引导加载程序只要就是加载linux内核。


上一阶段结束之后次引导加载程序就会在内存里面跑起来。就会出现GRUB图形界面,让用户选择加载什么样的内核。


4、  linux内核映像:


用户选择要加载的内核之后,次引导加载程序(GRUB)就会根据/boot/grub.conf配置文件中所设置的信息,从/boot/所在的分区上读取Linux内核映像,然后把内核映像加载到内存中并把控制权交给Linux内核。


linux内核获得控制权之后开始干自己的事


1、  检测硬件


2、  解压缩自己并安装必要驱动


3、  初始化与文件系统相关的虚拟设备,LVM或RAID


4、  装载根文件系统,挂在根目录下面


5、  完成之后,linux在进程空间里面加载init程序,下面轮到init干活


5、  init进程


init是所有进程的发起者和控制者,所有的进程都由此衍生。


init进程获得控制权之后,它会执行/etc/rc.d/rc.sysinit脚本,根据里面的代码设置环境变量、网络、启动swap、检查并挂载文件系统、执行其他初始化工作。


 


至此,linux启动完成。


我们稍微总结一下:


首先是BIOS加电自检,之后加载主引导加载程序、次引导加载程序,最后就是linux内核映像,完了把控制权交给init进程,完成初始化工作。


swap分区是什么?


类似windows系统中的虚拟内存,当物理内存不够用的时候,使用swap中的内存。


phpdoc


参见:http://manual.phpdoc.org

@access public|private|protected

@author Author Name [<[email protected]>]

@copyright Copyright Information

@deprecated [version information]

@example [path|url] description

@ignore

@internal

@licence url [licence]

@link url [description]

@param datatype @variablename[,…] description

@return datatype description

@see reference

@since version [information]

@source startoffset [endoffset]

@todo description

@var datatype

@version