linux——(6)vim与vi
概念:vi与vim的区别
vi是一款老式的文字处理软件,不过现在依然广泛使用,所有的UnixLike系统都会内置vi文本编辑器。
vim可以看出vi的升级版,不过vi更像是一个程序开发工具,功能也比vi多很多。
vim的使用
vim分三种模式:一般模式、编辑模式、命令行模式。
一般模式:可以完成复制、粘贴、删除等操作。
编辑模式:可以进行插入和替换,也就是直接编辑文件内容。
命令模式:可以进行替换、查找、显示行号等额外功能。
模式的切换:
在一般模式按i、o、a、r(大写也行)可以进入编辑模式。
在一般模式按?、:、/三个键可以进入命令行模式。
在编辑模式和命令模式按esc可以进入一般模式。
只用在命令模式和一般模式可以退出vim。
vim的操作特别丰富,下面博主只裁剪出博主常用的部分,其他功能大家可以自行百度或者man vim。
一般模式下:
移动类:
光标移动:←(h)、↓(j)、↑(k)、→(l),在移动前还可以输入数字,表示移动的步数。
下翻一页:ctrl+f。
上翻一页:ctrl+b。
回到这一行开头:Home
回到这一行结尾:End
到最后一行:G
到第一行:gg
向下移动n行:n+enter
删除复制粘贴类:
向后删除一个字符:x。
向前删除一个字符:X。(数字+x/X,数字代表删除的数目。)
删除当前行:dd。(数字+dd,数字代表想要删除的行数。)
复制当前行:yy。(数字+yy,数字代表想要复制的行数。)
在前一行进行粘贴:P(大写)。
在下一行进行粘贴:p(小写)。
合并当前行和下一行:J(大写)。
撤销上一个操作:u(小写)。
重做上一个操作:ctrl+r。(注:这个重做不是重复刚刚的操作。)
重复刚刚进行的哪一个操作:.(小数点)。
保存后退出vim:ZZ(大写)。
在一般模式按下进入编辑模式的键时的区别如下:
i:在当前光标出插入。
I:在当前光标所在行的第一个非空格字符处插入。
a:在当前光标的下一个位置插入。
A:在当前光标所在行的最后一个字符处开始插入。
o(小写):在光标所在行的下一行新插入一行。
O(大写):在光标所在行的上一行新插入一行。
r:替换当前光标所在位置的字符,只给你一次输入机会。输入完自动返回一般模式。
R:替换档期光标所在位置的字符,可一直输入,直到你按下esc。
从一般模式切到命令模式的时候的功能区别(很多情况下执行完毕后就自己回到一般模式了,没有自动退回的按esc可退回,因为":"在这里有特殊意义所以下面用空行来排版,":"一律视为输入)
/word 向下寻找word这个字符串。
?word 向上寻找word这个字符串。
注 查找后按n表示重复上一个查找操作,按N表示反向重复上一个查找操作。
:w 保存数据。
:w! 强制保存数据,当你有这个文件的所有修改权,而恰好文件又被设置成只读的时候可以用。(之后的强制都是类似的意思。)
:q 退出vim,如果你修改过文件可能就退出不了必须用下面的命令。
:q! 强制退出vim。
:wq 保存后退出vim。
:w filename 另存为filename文件,但不会退出vim,退出也要再决定刚刚的修改要不要保存再原文件上。
:r filename 将filename文件的内容读到这个文件中来。
:! command 暂时退出vim,用shell执行command命令。
:set nu 显示行号。
:set nonu 不显示行号。
注 从这里开始":"回到规范格式的行列,另外以上命令vi与vim通用。
vim的功能
块选择(相当好用的东西)
一般模式下:
按下v(小写):移动游标,经过的地方会连接起来反白。
按下V(大写):移动游标,经过的行都会反白。
按下ctrl+v(小写):移动游标会以四边形的方式反白文字。
之后可以按y复制反白的地方,或者按d删除反白的地方,p是粘贴,最后一个ctrl+v的反白与粘贴请务必实验下,非常方便。
多文件编辑
可以用vim同时打开多个文件一下命令可以用来控制。(下面三个":"是输入)
:n 编辑下一个文件。
:N 编辑上一个文件。
:files 列出这个vim打开的所有文件。
多窗口功能(下面两个":"是输入)
:sp 打开同一个文件的两个窗口。
:sp filename 打开filename文件分屏处理。
分屏移动的方法
先按下ctrl+w(一直按着可以看到游标在不同分屏里疯狂切换),然后松开w(ctrl可松可不),如果之后按w是移动到下一屏,也可以按↓/j,上一屏是↑/k。
vim的文件恢复机制
当你的文件被编辑的时候,会在同目录生成一个filename.swp文件,如果因为有人在你之前打开了这个文件或者你上次编辑这个文件的时候vim因为某种原因不正常退出了,在你打开的时候这个文件的时候vim就会检测到filename.swp这个文件的存在,就会出现警告信息,问你是怎么回事儿,是否需要恢复文件,或者叫你另外一个哥们儿把文件关了,你要改动了,或者你只是看看也可以用只读模式打开,等等。vim的提示很清楚可以自己看,如果不想再次看到这个警告信息,只有把filename.swp删了就行,不管是在提示下删除还是手动删除都行。
其他:
1,vim的环境配置文件是/etc/vimrc,每个用户的个性化设置文件是~/.vimrc。
2,vim会主动记录你的行为在~/.viminfo里面。
3,vim的使用请注意语言编码问题,需要考虑的问题有Linux本身支持的语系(/etc/sysconfig/i18n),终端支持的语系(LANG变量),文件的编码。