第十章 总结
vi与vim
在Linux的系统中使用文本编辑器来编辑你的Linux参数配置文件是一件非常重要的事情。
纯文本文件:文件记录只是0与1,通过编码系统来将这些0与1转换成为认识的文字。
Linux在命令行界面下的文本编辑器非常多,包括Emacs,pico,nano,joe与vim等。
vi与vim重要的原因:
² 所有的UNIX Like系统都会内置vi文本编辑器,其他的文本编辑器则不一定会存在
² 很多软件的编辑接口都会主动调用vi(如crontab,visudo,edquota等命令)
² vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计
² 程序简单,编辑速度相当快。
vim是vi的高级版本,vim可以用颜色或底线等方式来显示一些特殊的信息。vim会依据文件的扩展名或者是文件内的开头信息判断该文件的内容而自动调用该程序的语法判断式,再以颜色来显示程序代码的一般信息。故vim是个程序编辑器。
甚至一些Linux基础配置文件内的语法,都能够用vim来检查。vim里面加入了很多额外的功能,如支持正则表达式的查找架构,多文件编辑,块复制等。
vim的使用
vi基本上包括3种模式:一般模式、编辑模式、命令行模式。这三种模式分别如下:
一般模式
以vi打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中,可以使用上下左右按键来移动光标,可以删除字符或删除整行,也可以复制,粘贴文件数据。
编辑模式
在一般模式当中,可以进行删除,复制,粘贴等操作,但是却无法编辑文件的内容。要等待按下i,I,o,O,a,A,r,R等任何一个字母之后才会进入编辑模式。通常在Linux中,按下这些案件时,在界面的左下方会出现ENTER或REPLACE的字样,此时才可以进行编辑。如果要回到一般模式时,则必须按下ESC这个按键即可退出编辑模式。
命令行模式
一般模式当中,输入:,/,?3个中的任何一个按钮,就可以将光标移动到最下面那一行,在这个模式当中,可以提供你查找数据的操作,而读取,保存,大量替换字符,离开vi,显示行号等的操作则是在此模式中完成的。
注意:一般模式与编辑模式及命令行模式可互相切换,但编辑模式与命令行模式之间不可互相切换。
简单执行
使用vi进入一般模式
使用vi来新建一个名为test.txt的文件,使用如下命令:
vi test.txt
直接输入vi 文件名就能够进入vi的一般模式。注意,记得vi后面一定要加上文件名,不管该文件存在与否。界面分两部分,上半部分:文件的实际内容,最下面一行是状态显示行。
按下i进入编辑模式,开始编辑文字
一般模式之中,只要按下i,o,a等字符,就可以进入编辑模式了。编辑模式当中,左下角状态栏显示INSERT字样,此时可以输入任意的字符提示。此时,按ESC键之外的其他按键都被视为一般的输入,故可以进行任何编辑。
注意:在vi里面,TAB键所得到的结果与空格键所得到的结果是不一样的,特别强调一下。
按下ESC键回到一般模式
编辑完毕后,可以按下ESC键回到一般模式,此时INSERT不见了。
在一般模式中输入:wq保存后离开vi
保存并离开命令很简单,只需输入:wq即可保存离开(注意:按下:后,该光标会移动到最下面一行去)。需要注意:如果文件的权限不对,可能会导致无法写入,此时可以使用“强制写入方式,即使用:wq!来退出。
按键说明
第一部分:一般模式可用的按钮说明,光标移动,复制粘贴,查找替换等。
移动光标的方法 | |
h或向左箭头键(←) | 光标向左移动一个字符 |
j或向下箭头键(↓) | 光标向下移动一个字符 |
k或向上箭头键(↑) | 光标向上移动一个字符 |
l或向右箭头键(→) | 光标向右移动一个字符 |
如果将右手放在键盘上的话,会发现hjkl是排列在一起的,因此可以使用这四个按键来移动光标。如果想要进行多次移动的话,如向下一定30行,可以使用30j或30↓的组合按键,即加上想要进行的次数(数字)后,按下操作即可。 | |
Ctrl + f | 屏幕向下移动一页,相当于Page Down按键(常用) |
Ctrl + b | 屏幕向上移动一页,相当于Page Up按键(常用) |
Ctrl + d | 屏幕向下移动半页 |
Ctrl + u | 屏幕向上移动半页 |
+ | 光标移动到非空行的下一行 |
- | 光标移动到非空行的上一行 |
n<space> | n表示数字,如20。按下数字后再按空格键,光标会移动这一行n个字符如20 + space,则光标会向后移动20个字符距离 |
0或功能键Home | 数字0:移动到这一行的最前面字符处(常用) |
$或功能键End | 移动到这一行的最后字符处(常用) |
H | 光标移动到这个屏幕的最上方那一行的第一个字符 |
M | 光标移动到这个屏幕的中央那一行的第一个字符 |
L | 光标移动到这个屏幕的最下方那一行的第一个字符 |
G | 移动到这个文件的最后一行(常用) |
nG | n为数字。移动到这个文件的第n行。如20G则会移动到这个文件的第20行(可配合:set nu) |
gg | 移动到这个文件的第一行,相当于1G(常用) |
n + Enter | n为数字。光标向下移动n行(常用) |
查找与替换 | |
/word | 向下寻找一个名称为word的字符串。如果要在文件内查找vbird这个字符串,就输入/vbird即可(常用) |
?word | 向上寻找一个字符串名称为word的字符串 |
n | 这个n是英文按键。代表重复前一个查找的操作。举例:如果刚才执行/vbird去向下查找vbird这个字符串,则按下n后,会向下继续查找下一个名称为vbird的字符串。如果是执行?vbird的话,那么按下n则会向上继续查找名称为vbird的字符串 |
N | 这个是英文按键。与n刚好相反,为反向进行前一个查找操作。如输入/vbird后,按下N则表示向上查找vbird |
使用/word配合n及N是非常有帮助的。可以让你重复地找到一些关键字 | |
:n1,n2s/word1/word2/g | n1与n2为数字。在第n1与n2行之间寻找word1这个字符串,并将该字符串替换为word2。举例:在100到200行之间查找vbird并替换为VBIRD则用:100,200s/vbird/VBIRD/g(常用) |
:1,$s/word1/word2/g | 从第一行到最后一行查找word1字符串,并将该字符串替换为word2(常用) |
:1,$s/word1/word2/gc | 从第一行到最后一行查找word1字符串,并将该字符串替换为word2。且在替换前显示提示字符给用户确认(confirm)是否需要替换(常用) |
删除、复制与粘贴 | |
x,X | 在一行当中,x为向后删除一个字符(相当于Del按键),X为向前删除一个字符(相当于Backspace)(常用) |
nx | n为数字,连续向后删除n个字符。举例:要连续删除10个字符,10x |
dd | 删除光标所在的那一整行(常用) |
ndd | n为数字。删除光标所在的向下n行。如20dd则是删除20行(常用) |
d1G | 删除光标所在到第一行的所有数据 |
dG | 删除从光标所在到最后一行的所有数据 |
d$ | 删除从光标所在行到该行的最后一个字符 |
d0 | 那个是数字0。删除从光标所在处到该行的最前面一个字符 |
yy | 复制光标所在的那一行(常用) |
nyy | n为数字。复制光标所在的向下n行,如20yy则是复制20行(常用) |
y1G | 复制光标所在行到第一行的所有数据 |
yG | 复制光标所在行到最后一行的所有数据 |
y0 | 复制光标所在的那个字符到该行行首的所有数据 |
y$ | 复制光标所在的那个字符到该行行尾的所有数据 |
p,P | P为将已复制的数据在光标的下一行粘贴,P则为粘贴在光标上一行。举例:目前光标在第20行,且已经复制了10行数据。则按下p后,那10行数据会粘贴在原本的20行之后,也即由21行开始粘贴。但如果是按下P,那么原本的第20行会变成30行(常用) |
移动光标的方法 | |
J | 将光标所在行与下一行数据结合成同一行 |
c | 重复删除多行数据,如向下删除10行,10cj |
u | 复原前一个操作(常用) |
Ctrl + r | 重做上一个操作(常用) |
. | 不要怀疑。这是小数点。意思是重复前一个操作的意思。如果想要重复删除、复制粘贴等操作,按下小数点 . 就好了(常用) |
第二部分:一般模式切换到编辑模式的可用按钮说明
进入插入或替换的编辑模式 | |
i,I | 进入插入模式(insert mode): i:为从目标光标所在处插入,I:为在目标所在行的第一个非空空格符开始插入(常用) |
a,A | 进入插入模式(insert mode): a:为从目前光标所在的下一个字符处开始插入,A:为从光标所在行的最后一个字符串开始插入(常用) |
o,O | 进入插入模式(insert mode) 这是英文字母o的大小写。o:为在光标所在的下一行处插入新的一行,O:为在目标光标所在处的上一行插入新的一行(常用) |
r,R | 进入替换模式(Replace mode): r只会替换光标所在的那一个字符一次,R会一直替换光标所在的文字,直到按下ESC键为止(常用) |
上面这些按键中,在vi界面的左下角出会出现INSERT或REPLACE的字样。由名称就知道该操作的意思。特别注意:想要在文件里输入字符时,一定要在左下角处看到INSERT或REPLACE才能键入 | |
ESC | 退出编辑模式,回到一般模式中(常用) |
第三部分:一般模式切换到命令行模式的可用的按钮说明
命令行的保存、离开等命令 | |
:w | 将编辑的数据写入硬盘文件中(常用) |
:w! | 若文件属性为只读时,强制写入该文件。不过,到底能不能写入,还是跟你对该文件的权限有关 |
:q | 离开vi(常用) |
:q! | 若曾经修改过文件,又不想存储,使用!为强制离开不保存文件 |
注意:那个感叹后!在vi中经常具有强制的意思 | |
:wq | 保存后离开,若为:wq!则为强制保存后离开(常用) |
ZZ | 这是大写Z。若文件没有有更动,则不保存离开,若文件已经被更改过,则保存后离开 |
:w[filename] | 将编辑的数据保存成另一个文件(类似于另存文件) |
:r[filename] | 在编辑的数据中,读入另一个文件的数据,即将filename这个文件内容加到光标所在行后面 |
:n1,n2 w [filename] | 将n1到n2的内容保存成filename这个文件 |
:! command | 暂时离开vi到命令行模式下执行command的显示结果。如:! ls /home 即可在vi当中查看/home下面以ls输出的文件信息 |
vim环境的更改 | |
:set nu | 显示行号,设置之后,会在每一行的前缀显示该行的行号 |
:set nonu | 与set nu相反,为取消行号 |
特别注意:在vi中,数字是很有意义的。数字通常代表重复做几次的意思。也有可能代表去到第几个什么什么的意思。
vim的保存文件、恢复与打开的警告信息
目前主要的编辑软件都有恢复功能,即当系统因为某些原因而导致死机的情况时,还可以通过某些特别的机制来让之前保存过的数据救回来,即所谓的恢复功能。vim通过保存文件来挽回数据。
在使用vim编辑时,vim会在被编辑的文件的目录下再新建一个名为.filename.swap的文件。如当我们编辑/tmp/vitest/man.config这个文件时,vim会主动创建/tmp/vitest/man.config.swp的暂存文件,对man.config的操作就会被记录到这个man.config.swp当中。如果系统因为某些原因断线了,导致编辑的文件还未保存,此时,可以利用man.config.swp恢复。
切换目录
cd /tmp/vitest
vim man.config 此时按住Ctrl + z
在vim的一般模式下按下Ctrl + z的组合键时,vim会被丢到后台去执行。
ls –al 会看到对应的man.config.swp文件
kill -9 %1
ls –al .man.config.swp
kill可以模拟将系统vim工作删除情况,可以假装死机。由于vim的工作不被正常中断,导致暂存盘无法通过正常流程来结束,所以暂存文件就不会消失,而继续保留下来。
此时,打开man.config,vim会主动判断这个文件可能有问题,并提示两点主要的问题与解决方案,分别如下:
² 可能有其他人或程序同时在编辑这个文件
由于Linux是多人、多任务的环境,因此很有可能有很多人同时编辑同一个文件。如果多个人共同编辑的情况下,万一大家同时保存,那么这个文件的内容将会乱七八糟。为避免这一问题,vim会出现这个警告窗口。解决办法如下:
n 找到另外那个程序或人员,请他将该vim的工作结束,然后你再继续处理。
n 如果只是要看该文件的内容,并不会有任何修改编辑的行为,可以选择打开为只读(O)。
² 在前一个vim环境中,可能因为某些不明原因导致vim中断(crashed)
这种情况是不正常结束vim产生的后果。解决方案依据不同的情况而不同。常见的解决方法如下:
n 如果之前的vim处理操作尚未保存,此时应该按下R,及使用(R)ecover的选项,此时vim会载入man.config.swp的内容,让你自己来决定要不要保存。这样就能够救回来之前未保存的工作。不过那个.man.config.swp并不会在结束vim后自动删除,所以离开vim后,还要自行删除.man.config.swp才能避免每次打开这个文件都会出现这样的警告。
n 如果确定这个暂存文件是误用的,可以直接按D删除这个暂存文件,即(D)elete it这个选项。此时vim会载入man.config,并将旧的.man.config.swp删除后,新建这次会使用的.man.config.swp。
至于发现暂存盘警告信息的界面中,会出现六个可用按钮,其说明如下:
[O]pen Read-Only:打开此文件成为只读文件,可以用在你只是想要查阅文件内容并不想要进行编辑行为时。
[E]dit anyway:还是用正常的方式打开要编辑的那个文件,并不会载入暂存文件的内容。不过很容易出现两个用户互相改变对方的文件等问题。
[R]ecover:加载暂存文件的内容,用在你想要救回之前未保存的工作。不过当救回来并且保存离开vim后,还是要手动自行删除那个暂存文件。
[D]elete it:确定那个暂存文件无用时。那么打开文件前会将这个暂存文件删除。
[Q]uit:按下q就离开vim,不会进行任何操作回到命令行提示符。
[A]bort:忽略这个编辑行为,类似quit。即送回到提示符下面。
vim功能
vim具有颜色显示的功能,并且能支持许多程序语言,在编辑程序时,可以帮助进行程序除错(debug)功能。基本上vim的一般用于与vi完全一样。
vim界面的特色说明如下:
² vim会进行语法检验,界面内有颜色显示
² 最下面一行左边显示该文件的属性,包括行号与字符
² 最下面一行右边表示光标所在的行数和字符位置。
除了批注之外,其他的行会有特别的颜色显示。可以编码打错字。而且最右下方的30%代表目前这个界面占整体文件的30%。
块选择(VisualBlock)
vim编辑器可以使用块选择功能。当按下v或者V或者Ctrl + V时,这个时候光标移动过的地方就会开始反白,这三个按键的意义如下:
块选择的按键意义 | |
v | 字符选择,会将光标经过的地方反白选择 |
V | 行选择,会将光标经过的行反白选择 |
Ctrl + V | 块选择,可以用长方形的方式选择数据 |
y | 将反白的地方复制起来 |
d | 将反白的地方删除 |
举例:将host再加到每一行的最后面,执行如下:
² 使用vim hosts打开该文件
² 将光标移动到第一行的host那个h上头,然后按下Ctrl +V,左下角出现块提示
² 将光标移动到最底部,此时光标移动过的区域会反白
² 此时按下y进行赋值,按下y后,反白的块就会消失
² 最后将光标移到第一行的最右边,并且在启用编辑模式向右按两个空格键,回到一般模式后,按下p,即可完成复制。
通过上述,可以复制一个块,并且贴在某个块的范围内,而不是以行为单位来处理整个文件。它在进行排列整齐的文本文件中复制、删除块很有帮助。
多文件编辑
vim支持多个文件同时打开编辑。相关的按键如下:
多文件编辑的按键 | |
:n | 编辑下一个文件 |
:N | 编辑上一个文件 |
:files | 列出目前这个vim打开的所有文件 |
下面执行同时编辑多个文件
² 通过vim hosts/etc/hosts命令来使用一个vim打开两个文件
² 在vim中先使用:files查看一下编辑的文件数据有什么,此时最后一行显示按下任意键回到vim的一般模式
² 在第一行输入4yy,复制四行
² 在vim环境下输入:n会来到第二个编辑的文件,/etc/hosts内
² 在/etc/hosts下按G到最后一行,按下p进行粘贴
² 按下多次u来还原原本的文件数据
² 按下:q离开vim的多文件编辑
利用多文件编辑的功能,可以很快将需要的数据复制到正确的文件内。不过这个功能也可以利用窗口界面来达到。
多窗口功能
在一般窗口界面下面的编辑软件大多有“切割窗口或者是冻结窗口”的功能来将一个文件切割成多个窗口展现,而vim也可以提供这个功能。方法:在命令行模式输入:sp{filename}即可。其中filename可有可无,如果想要在新窗口启动另一个文件,就加入文件名,否则仅输入:sp时,出现的则是同一个文件的两个窗口间。
举例:
先使用vim text1.txt打开这个文件,然后用1G回到第一行,之后输入:sp在此打开这个文件一次。当输入:sp text2.txt,此时会打开text2.txt窗口。
两个文件同时在一个屏幕上面显示,可以利用Ctrl + w + ↑及Ctrl + w + ↓在两个窗口之间移动。此时,复制,查阅就会变得简单。切换窗口命令功能很多,常用的如下:
多窗口情况下的按键功能 | |
:sp [filename] | 打开一个新窗口,如果有加filename,表示在新窗口打开一个新文件,否则表示两个窗口为同一个文件内容(同步显示) |
[Ctrl] + w + j [Ctrl] + w + ↓ | 按键的按法是:先按下[Ctrl]不放,再按下w后放开所有的按键,然后按下j(或向下箭头键),则光标可移动到下方的窗口 |
[Ctrl] + w + k [Ctrl] + w + ↑ | 同上,不过光标移动到上面的窗口 |
[Ctrl] + w + q | 其实就是:q结束离开。举例:如果想要结束下方的窗口,则利用[Ctrl] + w +↓移动到下方窗口后,按下:q即可离开,也可以按下[Ctrl] + w + q |
vim环境设置与记录:~/.vimrc,~/.viminfo
vim会主动将曾经做过的记录下来,好让下次可以轻松作业。这个记录操作的文件就是:~/.viminfo。如果使用过vim,则主文件夹应该会存在~/.viminfo文件。这个文件是自动产生的,不必自动创建。在vim里做过的操作可以在这个文件内部查询到。
vim中的高亮反白,缩排等功能,可以自行设置,使用的就是vim环境设置。vim环境设置参数很多,想要知道目前的设置值,可以在一般模式时输入:set all来查阅。下面是常用的设置选项:
所谓缩排:指按下[Enter]编辑新的一行时,光标不会在行首,而是在上一行的第一个非空格符处对齐。
vim的环境设置参数 | |
:set nu :set nonu | 设置与取消行号 |
:set hlsearch :set nohlsearch | hlsearch就是high light search(高亮度查找)。这个就是设置是否将查找的字符串反白的设置值。默认值是hlsearch |
:set autoindent :set noautoindent | 表示是否自动保存缩排,autoindent就是自动缩排 |
:set backup | 表示是否自动保存备份文件,一般是nobackup的,如果设置backup的话,那么当改动任何一个文件时,则源文件会被另存成一个文件名为filename~的文件。举例:编辑hosts,设置:set backup,那么当改动hosts时,在同目录下,就会产生host~文件名的文件,记录原始的hosts文件内容 |
:set ruler | 右下角的状态栏说明。ruler显示或不显示该设置值 |
:set showmode | 这个则是是否要显示INSERT之类的字眼在左下角的状态栏 |
:set backspace=(012) | 一般来说,如果按下i进入编辑模式后,可以利用退格键(backspace)来删除任意字符的。可以通过backspacet来设置。当backspace为2时,就可以删除任意值;当为0或1时,仅可删除刚才输入字符,而无法删除原本已经存在的文字 |
:set all | 显示目前所有环境参数设置值 |
:set | 显示与系统默认值不同的设置参数,一般就是你有自行变动过的设置参数 |
:syntax on :syntax off | 表示是否依据程序相关语法显示不同颜色。举例:在编辑一个纯文本文件时,如果开头以#开始,那么该行就会变成蓝色。当如果懂得写程序,那么:syntax on还会主动帮助排错。如果仅是编写纯文本文件,要避免颜色对屏幕产生的干扰,则可以取消这个设置 |
:set bg=dark :set bg=light | 可用于显示不同的颜色色调,默认是light,如果经常发现批注的字体深蓝色不容易看,可设置为dark,会有不同的样式 |
这些设置值很有用途。可以通过配置文件来直接规定习惯的vim操作环境。整体vim的设置值一般都是放置在/etc/vimrc这个文件中,不过不建议修改它。可以修改~/.vimrc这个文件(默认不存在,可手动创建),将希望的设置值写入。
举例,可以是这样一个文件:
vim ~/.vimrc
这个文件的双引号(“)是批准
set hlsearch “高亮度反白
set backspace=2 “可随时用退格键删除
set autoindent “自动缩排
set ruler “可显示最后一行状态
set nu “可以在每一行的最前面显示行号
set bg=dark “显示不同的底色色调
syntax on “进行语法检验,颜色显示
在这个文件中,使用set hlsearch或set :hlsearch,即最前面有没有冒号:效果都是一样的。至于双引号则是批注号,不能用错批注符号,否则每次使用vim都会发生警告信息。创建好这个文件后,下次重新用vim编辑某个文件时,该文件的默认环境变量设置就是这么设置的。
中文编码问题
vim下可能出现无法正常显示中文,原因可能是编码问题。因为中文编码有gb2312,big5,utf8等,如果文件使用big5编码,但vim使用utf-8,则会出现乱码。此时需考虑以下问题:
² Linux系统默认支持的语系数据:这与/etc/sysconfig/i18n有关
² 终端接口(bash)的语系:与LANG这个变量有关
² 文件原本的编码
² 打开终端的软件,如GNOME下面的窗口界面
重点是第三点与第四点,这两点的编码一致,就能够看到编辑的中文文件,否则是一堆乱码。
一般中文编码使用big5,但写入某些数据库系统,会发生错误,故希望使用utf8。Windows XP上的软件经常使用big5编码。
在Linux本机前的tty1~tty6原本默认就不支持中文编码,故一定出现乱码,如果文件使用big5编码,环境使用Linux的GNOME,启动终端为GNOME-Terminal软件,修正语系编码如下:LANG=zh_CN.big5,然后在终端界面工具了,终端机,设置字符编码,中文(繁文)(BIG5)设置后就没问题了。
DOS与Linux的断行字符
DOS中使用的断行字符为^M$,称为CR与LF两个符号。Linux下面,使用LF($)这个断行符号。
Linux下的Enter为LF符号,DOS的断行符号使CRLF,多了一个^M的符号出来,如果一个shellscript程序文件,可能导致程序无法执行状态,因为会误判程序所执行的命令内容。解决办法:将格式转换成为Linux的即可。但若通过vim进入该文件,一个一个删除好像不太现实,可以使用简单命令转换。
dos2UNIX [-kn] file [newfile]
UNIX2dos [-kn] file [newfile]
参数:
² -k:保留该文件原本的mtime时间格式(不更新新文件上次内容经过修订的时间)
² -n:保留原本的旧文件,将转换后的内容输出到新文件,如doc2UNIX –n old new
将/tmp/vitest/man.config修改成dos断行
cd /tmp/vitest
cp –a /etc/man.config .
ll man.config
UNIX2dos –k man.config
ll man.config
将上述man.config转换成man.config/linux的Linux断行字符
dos2UNIX –k –n man.config man.config.linux
ll man.config*
因为断行字符以及DOS与Linux操作系统下面一些字符定义不同,故不建议在Windows系统当中将文件编辑好之后,才上传到Linux系统,会容易发生错误。如果在不同系统之间复制一些纯文本文件时,记得使用UNIX2dos或dosUNIX来转换断行格式。
语系编码转换
语系编码转换使用iconv命令。
Iconv –list
Iconv –f 原本编码 –t 新编码 filename [-onewfile]
参数:
² --list:列出iconv支持的语系数据
² -f:from,后接原本的编码格式
² -t:to,即后接新编码要是什么格式
² -o file:如果要保留原本的文件,那么使用-o新文件名,可以建立新编码文件。
将/tmp/vitest/vibig2转成utf8编码
cd /tmp/vitest
iconv –f big5 –t utf8 vi.big5 –o vi.utf8
file vi*
将繁体中文utf8转成简体中文utf8编码,使用如下方法:
iconv –f utf8 –t big5 vi.utf8 | iconv –f big5–t gb2312 | iconv –f gb2312 –t utf8 –o vi.gb.utf8
重点:
² Linux下面的配置文件多为文本文件,故使用vim即可进行设置编辑
² vim可视为程序编辑器,可用以编辑shell script、配置文件等,避免打错字
² vi为所有UNIX like的操作系统都会存在的编辑器,且执行速度快
² vi有三种模式,一般模式可变换到编辑与命令行模式,但编辑模式与命令行模式不能互换
² 常用的按键有i,ESC,wq等
² vi的界面大致可以分为两部分:上半部的本文与最后一行的状态+命令行模式
² 数字是有意义的,用来说明重复进行几次操作的意思,如5yy为复制5行
² 光标的移动中,大写字母G经常使用,尤其是1G,G,表示移动到文件的头、尾功能。
² vi的替换功能也很棒。:n1,n2s/old/new/g要特别注意学习
² 小数点. 为重复进行前一次操作,也是经常使用的按键功能
² 进入编辑模式几乎只要记住i,o,R三个按钮即可,尤其是新增一行的o与替代的R
² vim会主动创建swap暂存文件,所以不要随意断线
² 可以使用Ctrl + v进行复制,粘贴,删除行为
² 使用:sp功能可以切割窗口
² vim的环境设置可以写入~/.vimrc文件中
² 可以使用iconv进行文件语系编码的转换
² 使用dos2UNIX及UNIX2dos可以变更文件每一行的行尾断行字符