1 Qomo Linux 简介
2 新手指南
2.1 前言
2.2 准备
2.3 安装
2.4 适配
2.5 使用
3 安装手册
3.1 安装总览
3.2 获取Qomo
3.3 硬盘安装
3.4 LiveCD/DVD试用
3.5 LiveCD/DVD安装
3.6 U盘安装
3.7 虚拟机安装
3.8 双系统
3.9 网络安装
4 用户手册
4.1 Qomo 1.1用户手册
4.2 使用DOSBox
4.3 桌面应用程序
4.4 Windows应用移植
4.5 文件和资源管理(P22)
4.6 系统和桌面设置(SP2)
4.7 术语表
5 开发手册
5.1 命令行
5.1.1 Shell简介
5.1.2 Shell编程基础
5.1.3 如何进入命令行界面
5.1.4 改变登录方式
5.1.5 Vim
5.1.6 FTP
5.1.7 RPM
5.1.8 Telnet
5.1.9 安装应用软件
5.1.10 常用文件系统管理命令
5.1.11 文件系统
5.1.12 管道
5.1.13 维护文件系统
5.2 KDE
5.2.1 KDE加速
5.3 SSH
5.4 Git
5.4.1 起步
5.4.2 基础
5.4.3 分支
5.4.4 服务器上的 Git
5.4.5 分布式 git(上)
5.4.6 分布式 git(下)
5.4.7 git 工具(上)
5.4.8 git 工具(下)
5.4.9 自定义 git(上)
5.4.10 自定义 git(下)
5.4.11 git 与其它系统
5.4.12 git 内部原理(上)
5.4.13 git 内部原理(下)
5.4.14 Git简易教程
5.5 其他
5.5.1 Bash
6 历史版本
6.1 Qomo Linux 0.7
6.2 Qomo Linux 0.8
6.3 Qomo Linux 1.0
6.4 Qomo Linux 1.1.0
6.5 Qomo Linux 1.2.0
6.6 Qomo Linux 2.0
6.7 Qomo Linux 3.0
6.8 Qomo Linux 3.1
6.9 Qomo Linux 4.0 Beta
6.10 Qomo Linux 4.0
6.11 Qomo Linux 4.1
6.12 Qomo Linux 4.2圣诞版
6.13 Qomo Linux 4.5
6.14 Qomo Linux 4.8七夕版(增加了64位版)

Vim

2016-11-16 21:30:40
Cacricornus
536
最后编辑:Cacricornus 于 2016-11-16 21:34:08

什么是 Vi?什么是 Vim?

总的来说,vi类似于windows的notepad,但功能比notepad还要强大。vi可以作为shell编程的基础,如果你想很好的掌握字符界面的unix/linux, vi是少不了的一个很好的锻炼的地方。
Vi是Linux上最常用的文本编辑器。文本编辑器是所有电脑系统中最常使用的一种工具。用户在使用电脑的时候,往往需要创建自己的文件,无论是一般的文字文件、资料文件,还是编写源程序,这些工作都离不开编辑器。
Vi是Visual interface的简称,它在Linux上的地位就像Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。
Vi不是一个排版程序,它不像Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。
Vi没有菜单,只有命令,且命令繁多。Vi有3种基本工作模式:命令行模式、文本输入模式和末行模式。
Vi命令可以说是UNIX/Linux世界里最常用的编辑文档的命令了,很多人不喜欢Vi就因为它有太多的命令集,但是我们只需要掌握基本的命令然后灵活地加以运用,便能大大提升效率,事半功倍。
那么什么是 vim 呢?其实你可以将 vim 视作 vi 的进阶版本,vim 可以用颜色或底线等方式来显示一些特殊的信息。举例来说, 当你使用 vim 去编辑一个 C 程序语言的档案, 或者是shell script 程序时,vim 会依据档案的扩展名或者是档案内的开头信息, 判断该档案的内容而自动的呼叫该程序的语法判断式,再以颜色来显示程序代码与一般信息。也就是说, 这个 vim 是个『程序编辑器』啦!甚至一些 Linux 基础设定文件内的语法,都能够用 vim 来检查呢! 
简单的来说, vi 是老式的文书处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具,就连 vim 的官方网站自己也说 vim 
是一个『程序开发工具』而不是文字处理软件~^_^。 因为 vim 里面加入了很多额外的功能,例如支持正规表示法的搜寻架构、多档案编辑、区块复制等等。 这对于我们在 Linux 上面进行一些设定档的修订工作时,是很棒的一项功能呢! 

为什么要学习Vi/Vim?

·所有的 Unix Like 系统都会内建 vi 文书编辑器,其它的文书编辑器则不一定会存在; 
·很多个别软件的编辑接口都会主动呼叫 vi (例如未来会谈到的 crontab, visudo, edquota 等指令); 
·vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计; 
·因为程序简单,编辑速度相当快速。 
其实重点是上述的第二点,因为有太多 Linux 上面的指令都预设使用 vi 作为数据编辑的接口,所以你必须、一定要学会 vi , 否则很多指令你根本就无法操作呢!
下面听听一位Vim使用者的感想吧:

效率 安全和兼容性

我以前曾经用Word写文档, 想必很多人也这样做过. 但是随着时间的推移, 渐渐地, 我已经好几年没用Word写过文档了.

所有的原因都是为了简单, 省事. 因为我要用纯文本. 所有可编辑的文件格式中, 最简单最有效的就是纯文本。在我的日常应用中,我使用到最多的也是纯文本, 在认识Vim之前,我主要用Notepad, 即使现在我也还把Windows的Notepad放到快速启动栏, 点击打开, 拷贝, 关闭即完成了一个文档的生成 , 当然它非常简单, 只能用来编辑一些简单的文章. 而文本编辑器的最终道路似乎总是指向Vim或者Emacs, 而我选择了前者. 现在我写的文档基本上都是在Vim里编辑, 完了再用Vim做一下格式化. 你可以看到, 我的文档无论在哪里, 即使你用最简单的Windows记事本打开, 标题, 正文, 缩进也是很容易分辩的. 当然, 如果你用Vim, 装了合适的插件, 你还可以看到语法高亮以及像Word那样的本文的文档结构图, 如:
      content
        1. 为什么要用vim
        .   1.1 效率 安全和兼容性
        .   1.2 所见即所得 Vs 所想即所得
        .   1.3 作为一个程序员
        2. vim的历史
        3. 安装vim
        .   2.1 linux系统下的安装
        .   2.2 windows系统下的安装

        图1. 本文的文档结构图
这是后话. 纯文本文件和doc文件相比有以下优点:
    * 体积小
    * 不会带上病毒
    * 传给谁你都不用担心打不开
我想上面的几点所有用过Word的人一定深有体会. 如果你不熟悉纯文本可以带来的多少的
好处,你也就很难明白为什么会出现那么多的纯文本编辑器,为什么那么多人一直在挑选
一种合适的文本编辑器,为什么那么多人会把使用某种文本编辑器当作一种信仰。是的,
如果你不了解,你会觉得这些人是疯子.

所见即所得 Vs 所想即所得

作为一个文档编辑者, 可能你编辑一篇文章的时候会打开Word来生成doc文件, (对多数人, 应该说是打开盗版Office),而且这已经变成了你的习惯. 刚开始的时候, 你会很惊奇于在很短的时间内, 编出排版漂亮, 格式丰富的文档, 而且能保证打印出来的就是你所看到的漂亮的格式, 这也是很多人愿意忍受Word文档种种不是而坚守的原因, 这就是它“所见即所得”的设计理念.
但是, 不知道你是否用Word 编辑过一篇比较长的文章,而这篇文章恰好格式并非很简单,有各种层次的标题,需要生成目录,需要插入图片或者公式,需要在文章中使用多种不同的字体格式,最终你还要合理排版。 举个例子, 你写了一个报告,领导不满意,说你的段落标题应该用三号字体隶书,并且应该用红色强调,正文用五号字体宋体……你的注释应该写在每一页的底部,写在全文末尾看起来费劲……你应该在每一页的页眉加上公司的LOGO……而且这个文件有个万把字儿的……用WORD ……你慢慢改吧.
面对Word的这些严重缺点,有两样工具配合来解决。“纯文本”和“内容和样式”分离。纯文本可以完美的解决这些问题,也许你不相信,但是事实的确如此。基于不同的规则,你可以利用纯文本轻松的实现各种你以前无法想象的复杂格式。也正是这些规则,引出了所想即所得的编辑模式,可能最初不是很直观,但是一旦你稍加学习,以后你所要做的就是专注于文章的逻辑和语言,而无需太多的关心格式。我在写文档的时候, 只会关心文档的内容, 不会去想将来的我的文档以几号字发表, 是以pdf发表呢, 还是直接放在网页上. 一些简单的格式和排版(纯文本用gq命令, C语言用=命令), vim会替我规范, 甚至像语法高亮, 标签生成, 自动解析目录等功能也都有相应的插件替我完成, 但这都是为了更好的浏览文档. 等完成文档后, 我可以用Vim自带的2HTML脚本, 轻松地将纯文本文档转成html文档, 甚至可以用专业一点的排版工具(如LyX)生成非常正式, 漂亮的格式.而且因为纯文本上都是内容,并没有控制样式表现的部分,在输出html网页时,你可以自由的定义如何表现这份文档,只需添加一份css样式表(也可以几份样式表,比如在线网页一份,打印稿一份),修改起来也很方便,只要在css样式表上修改一处,网页的所有地方都会跟着变化, 这就是"所想即所得"--你想让它变成什么样子就让它变成什么样子。
尽量采用纯文本,这也是Unix编程艺术所提倡的。这是无数人的经验之谈。


作为一个程序员

当你选用了一款合适的、强大的编辑器,你会发现你会慢慢删掉不少你以前认为变成就一定要装上的集成发开环境,集成开发环境没法代表语言。高亮语法,代码补全,工程管理,程序编译,工程管理。这些,你都可以用纯文本加上优秀的编辑器来完成。使用这种工作模式的会让下面的烦恼完全消失:

    * 你可能在指责别人盗版你的软件,却被别人说你也在使用盗版的集成开发环境。
    * 可能你到了一台没有你想要的集成开发环境的机器,你不知道工作应该如何开始。
    * IDE 为你完成了太多的工作,后来你发现你忘记了,或者并不是十分清楚IDE 
    替你完成的究竟是什么。
    * 你需要同时使用多种语言,而你的某种集成开发环境并不能很好的支持你需要
    的其他语言,怎么办?再装一个,然后不断在不同的IDE 之间切换。
    * 为了不同的语言,要熟悉不同的IDE,否则感觉很难适应。
    * 对于程序为何出错,你可能知道的很少。
    * 该如何去更多的自定义一个新的集成开发环境,让它更好的满足自己的需要。
当然,这并不是说使用了IDE 你就一定会面临这种尴尬,这并不绝对,但是使用纯文本加上一款优秀编辑器的模式却在这些方面很有优势,不是吗? 


Vi的模式

  •  命令模式

开始进入Vi时处于命令模式,如果已经处于插入模式或末行模式,按<ESC>键可以回到命令模式。在这种模式下,只能用按键指令,不能输入文字。

  • 插入模式

插入模式就是要把文本插入到要编辑的文件中,插入位置根据所用的命令不同而不同。从命令模式进入插入模式需要键入i、a、o、r及I、A、O、R等命令。在完成文本的输入后,必须用<ESC>键返回命令模式。

  • 末行模式

末行模式因命令出现在屏幕的最底部一行而得名。在命令方式下,键入某些特殊字符,如/、?、:等,光标跳到屏幕末行并显示键入的末行字符,此时键入命令后回车,vi会根据需要在末行显示出一定的响应信息,同时将自动回到命令状态。

vi编辑文件的基本过程

在命令行键入vi testfile,其中testfile代表要打开的文件名,如果文件不存在,vi将自动新建一个名为testfile的文件。

进入vi后,按i进入插入模式,就可以编写文件了,光标可以由方向键来移动。<BackSpace>键可以删去前一个字符。

如果已写好文件,就可以按<ESC>回到命令模式,然后用:w存档(注意,是冒号命令),这时还不会离开vi,要离开可按:q,也可以合起来用:wq,代表保存后离开。

光标的移动

注意:本节所述都是在命令模式下的操作。

  • 基本的光标移动


功 能 描 述 字 母 键 功 能 键
h Backspace或左方向键
j Enter或+或下方向键
k -或上方向键
l Space或右方向键
向下翻页 Ctrl-f PageDown
向上翻页 Crtl-b PageUp
  • 复杂光标移动


选 项 和 参 数 功 能 描 述
^ 移至行首,或<Home>键
~ 移至第一个非空白字符
$ 移至行尾,或<End>键
G 移至文件尾(最后一行的第一个非空白字符处)
gg 移至文件首(第一行第一个非空白字符处)
w 移至下一个字首
W 同上,但会忽略一些标点符号
e 移至前一个字字尾
E 同上,但会忽略一些标点符号
b 移至前一个字字首
B 同上,但会忽略一些标点符号
H 移至屏幕顶部第一个非空白字符
M 移至屏幕中间第一个非空白字符
L 移至屏幕底第一个非空白字符
移至第n个字符处
:n 或nG移至第n行行首,注:n表示具体数字,如1,2,3……
) 移至下一个句首
( 移至上一个句首
} 移至下一个段落首
{ 移至上一个段落首

基本编辑指令

  • 进入插入模式指令


选 项 和 参 数 功 能 描 述
i 在光标所在字符前开始输入文字(insert)
a 在光标所在字符后开始输入文字(append)
o 在光标所在行下开一新行来输入文字(open)
I 在行首开始输入文字
A 在行尾开始输入文字
O 在光标所在行上开一新行来输入文字
J 将下一行整行连接到本行(joint)
  • 删除指令


选 项 和 参 数 功 能 描 述
x 删除光标所在处的字符。也可用<Del>键
X 删除光标所在位置前的字符
dd 删除一整行
dw 删除一个字(delete word)
dG 删至文件尾
D 删至行尾,或d$(含光标所在处字符)
  • 取代及还原


选 项 和 参 数 功 能 描 述
r 取代光标所在处的字符
R 取代字符直至按<Esc>为止
cc 取代整行内容,或大写S亦可
cw 替换一个英文字
~ 光标所在处之大小写转换
C 取代至行尾,即光标所在处以后的字都会被替换,或c$
c0 取代至行首,或c~
u 撤销前面的操作,即undo,撤销的次数是没有限制的
U 在光标没离开本行之前,回复所有编辑动作
  • 复制


选 项 和 参 数 功 能 描 述
yy 复制光标所在行整行,或一个大写Y
2yy 或y2y复制两行
y~ 复制至行首,或y0,不含光标所在处字符
y$ 复制至行尾,含光标所在处字符
yw 复制一个字
yG 复制至文件尾
y1G 复制至文件首
  • 查找与替换
  • 查找


选 项 和 参 数 功 能 描 述
/ 在命令模式的情形下,按/会在左下角出现一个/,键入要查找的字串,按回车开始查找
? 和/相同,只是/是向前(下)找,?则是向后(上)找
n 继续查找
N 继续寻找(反向)
* 寻找光标所在处的字(要完全符合)
# 同上,但*是向前(下)找,#则是向后(上)找
g* 同*,但部分符合即可
g# 同#,但部分符合即可
  • 替换

:[range]s/pattern/string/[c,e,g,i]

用string替代pattern。Range指的是范围,1,7指从第一行至第七行,1,$指从第一行至最后一行,也就是整篇文章,也可以用%代表;c每次替换前会询问;e不显示error;g不询问,整行替换;i不分大小写。


离开

选 项 和 参 数 功 能 描 述
:q 如文件有修改而没保存,会警告,且无法离开
:q! 放弃所有修改,强迫离开
:wq 保存文件后离开,即使文件没有修改也会再保存一次
:x 保存文件后离开,但如果文件没有修改,则不会做保存的动作
:ZZ 和:x完全一样
:w 另存,不加文件名就是写入原文件
发表评论
评论通过审核后显示。