您的位置:首页 > 运维架构 > Linux

鸟哥的Linux私房菜10.16 vim程序编辑器

2015-09-23 18:36 519 查看
第10章 vim程序编辑器

为什么要学习vim?——1.所有的Unix Like系统都会内建vi文书编辑器,其它编辑器不一定了;2.很多软件的编辑接口都会主动调用vi;3.vim具有程序编辑的能力,可以主动地以字体颜色辨别语法的正确性;4.程序简单,编辑速度快。

vim就是vi的升级版本了哦

vi的使用分为三种模式:一般模式、编辑模式、指令列命令模式

【一般模式】用vi打开一个文件,就是删除、粘贴功能了,按 [:wq] 可以离开vi

【编辑模式】按下“i,I,o,O,a,A,r,R”中任一个字母就可以进入编辑模式,按下后界面左下方会出现[INSERT或REPLACE]的字样,按Esc可以返回一般模式

【指令列命令模式】在一般模式时输入’ : / ? ‘中的任何一个按钮,可以将光标移动到最底下那一行,可以搜寻资料,而且读取、存盘、大量取代字符,离开vi,显示行号等等是在这个模式完成。

在vi里面,[tab]这个按钮所得到的结果与空格符所得到的结果是不一样的

如果权限不对,可以使用 [:wq!] 来强制写入,这样就实现了vi的编辑功能。

按键说明

h左,j下,k上,l右【光标】

[Ctrl]+f下,b上,d下半,u上半【屏幕】

非空格符的下一列; - 非空格符的上一列 【光标】

n n表示数字,向后面移动n个字符 【光标】

0或者[Home] 本行第一个字符【光标】

$或[End] 本行最后一个字符【光标】

H上,M中,L下,G尾 【屏幕行数的第一个字符】

nG,移动到这个文件的第n行(可配合 :set nu) gg移动到文件第一行,相当于1G(常用)

n 光标向下移动n行(常用)

/string 光标之下,?string光标之上 搜寻字符串

n重复前一个搜寻的动作

N反向重复前一个搜寻的动作

:n1,n2s/word1/word2/g 在第n1和n2行之间寻找word1这个字符串,并用word2取代之(常用)

:1,$s/word1/word2/g 在第1和最后一行之间寻找word1这个字符串,并用word2取代之(常用)

:1,$s/word1/word2/gc 同上,且在取代前提示给用户确认的机会(常用)

x ,X x为向后删除一个字符[del],X为向前删除一个字符[backspace](常用)

nx 连续向后删n个字符

dd 删除游标所在的一整行~~~~书上写的一整列(常用)

ndd 删除光标所在向下n行(常用)

d1G 删除光标所在到第一行的所有数据

dG 删除光标到最后一行的所有数据

d$ 删除光标所在到该行最后一个字符

d0 删除光标所在到该行第一个字符

yy 复制光标所在的那一行(常用)

nyy 复制光标所在向下的n行(常用)

y1G 复制光标所在行到第一行的所有数据

yG 复制光标所在列到最后一列的所有数据

y0 复制光标所在的那个字符到该行首的所有数据

y$ 复制光标所在的那个字符到该行尾的所有数据

p,P p为将已复制的数据在光标下一行粘贴,P为在上一行粘贴

J 将光标所在列与下一列的数据结合成同一列

c 重复删除多个数据,例如向下删除10行, 10cj

u 复原前一个动作(常用)

[Ctrl]+r 重做上一个动作(常用)

. 重复前一个动作(常用)

:w 存储(常用)

:w! 若文件只读,强制写入。不过到底能不能写入,还是跟用户权限有关

:q 离开vi(常用)

:q! 强制离开vi而不存储档案

:wq 储存后离开,若加!则是强制储存后离开

ZZ 有修改则储存后离开,无修改则不储存离开

:w [filename] 将编辑的数据储存成另一个档案

:r [filename] 将filename这个文件中的内容加到光标后面

:n1,n2 w [filename] 将n1到n2的内容储存到filename这个文件

:! command 暂时离开vi到指令列执行command的显示结果

:set nu 显示行号,设定之后,会在每一行的前缀显示该行行号

:set nonu 与set nu相反,取消行号

vim的救援功能——突然死机的时候通过某种机制恢复未储存的数据【暂存档】

vim编辑过程中,在被编辑的档案的目录下,再建立一个名为 .filename.swp 的档案

由于【暂存档】存在,vim有时会判断你的文件有些问题:

1.可能有其他人或程序同时在编辑该档案。可以让别人结束vim编辑工作,或者如果你只是查看,就选择开启成只读文件okay了

2.因为某些不知名原因导致vim中断——如果尚未保存vim操作,应按下[R],此时会载入暂存档的内容,不过事后要删除暂存档的文件哦;如果确定暂存档没用,直接按下[D]即可

alias vi=’vim’ 执行vim,如果没有这一行,就需要用vim filename来启动vim了

区块选择(Visual Block)

比如说选择一块,复制或者什么操作的

v 字符选择,会将光标经过的地方反白选择

V 行选择,会将光标经过的行反白选择

[Ctrl]+v 区块选择,可以用长方形的方式选择资料

y 将反白的地方复制起来

d 将反白的地方删除掉

多文件编辑:

:n 编辑下一个文件

:N 编辑上一个文件

:files 列出目前这个vim的开启的所有文件

多窗口功能:

在指令模式下输入 :sp filename 即可,按键主要有以下几个

:sp [filename] 开启一个或者多个窗口

[ctrl]+w+j/↓ 移动光标到下方的窗口

[ctrl]+w+k/↑ 移动光标到上方的窗口

[ctrl]+w+q 离开

显示vim的所有环境设定参数 :set all

DOS与Linux的断行字符不相同

Linux底下仅有LF($)这个断行符号

可以使用 unix2dos [kn] file [newfile] 或者 dos2unix [-kn] file [newfile] 来进行dos和linux文件的切换

语系编码转换:

http://linux.vbird.org/linux_basic/0310vi/vi.big5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux vim 编辑器