为什么要学vim
所有的Unix Like系统都会内置vi文本编辑器;
所有软件的编辑接口都会主动调用vi;
vim具有程序编辑的能力;
程序简单,编辑速度相当快。
vi的使用
一般vi共分为3个模式:一般指令模式、编辑模式和命令行模式。
一般指令模式:以vi打开一个文件就直接进入一般指令模式了(默认的),这个模式中你可以移动光标,删除字符或整行,也可以复制、粘贴文件数据。
常用的按键说明:
h,j,k,l分别和左下上右键相同:光标向左,下,上,右移动一个字符;
Ctrl+f或Page Down:屏幕向下移动一页;
Ctrl+b或PageUp:屏幕向上移动一页;
0或Home:移动到这一行最前面的字符处;
$或End:移动到这一行最后免得字符处;
G:移动到文件最后一行;
gg:移动到这个文件的第一行,相当于1G;
n+Enter:n为数字,光标向下移动n行;
:n1,n2s/word1/word2/g:n1,n2为数字。在第n1与n2行之间寻找word1这个字符串,并将该字符串替换为word2。
:1,$s/word1/word2/gc:从第一行到最后一行查找word1字符串,并将该字符串替换为word2;且在替换前显示提示字符给用户确认;
x,X:在一行字当中,x和Del为向后删除一个字符,X和Backspace为向前删除一个字符;
dd:删除光标所在那一整行;
n+dd:n为数字,向光标所在位置后连续删除n行;
yy:复制光标所在那一行;
P,p:P为将已复制的数据粘贴在光标上一行,p为在光标下一行粘贴;
u:复原前一个操作;
Ctr+r:重做上一个操作。
编辑模式:在一般模中可以进行删除、复制和粘贴等操作,但没有办法编辑文件内容。要按下‘i,I,o,O,a,A,r,R’等任何一个字母之后才能进入编辑模式,左下方出现INSERT或REPLACE等字样。按ESC可退出编辑模式。
一般命令模式切换到编辑模式的按钮说明:
I,I:进入插入模式,i为从光标当前位置插入,I为在目录所在行的第一个非空格符处开始插入;
a,A:进入插入模式,a为从目前光标所在的下一个字符处开始插入,A为从光标所在行的最后一个字符处开始插入;
o,O:进入插入模式,o为在目标光标所在的下一行处插入新的一行,O为在目标光标所在处的上一行插入新的一行;
r,R:进入替换模式,r只会替换光标所在位置的字符一次,R会一直替换光标所在的文字,直到按下Esc键为止。
命令行模式:在一般模式输入‘: ,/ ,?’3个中任何一个按钮就可以将光标移到最下面一行。再这个模式下你就可以做例如保存、显示行号或者离开vi等操作了。
:w:将编辑的数据写入硬盘中;
:q:离开vi;
:q!:强制离开vi,不保存文件;
:wq:保存后离开,若为‘!wq’则为强制保存后离开;
:set nu:显示行号;
:set nonu:取消行号。
为防止系统宕机或者发生意外导致vim文件没有保存,当我们在使用vim的时候,vim会在被编辑文件的目录下新建一个名为filename.swp文件。
vim的功能
块选择的按键意义
v:字符选择,会将光标经过的地方反色选择;
V:行选择;
Ctrl+v:块选择,可以用长方形的方式来选择数据;
y:将反色的地方复制下来;
d:将反色的地方删除。
多文件编辑的按键
:n:编辑下一个文件;
:N:编辑上一个文件;
:files:列出目前这个vim的打开的所有文件。
多窗口功能
如果想要在新窗口启动另一个文件,就加入文件名,否则仅输入:sp时,出现的则是同一文件在两个窗口间。
多窗口情况下的按键功能:
:sp [filename]:打开一个新窗口;
Ctrl+w+j或↓:先按下Ctrl不放,再按下w后放开所有按键,然后再按下j(或下箭头),则光标可移动到下方的窗口;
Ctrl+w+k或↑:同上,不过光标可移动到上方窗口;
Ctrl+w+q:结束离开。
vim的环境设置可以写入~/.vimrc文件中。
可以使用iconv进行文件语系编码的转换。
iconv --list
iconv -f 原本编码 -t 新编码 filename [-o newfile]
--list:列出iconv支持的语系数据;
-f:from,后接原本的编码格式;
-t:to,新编码要什么格式;
使用dos2UNIX及UNIX2dos可以变更文件每一行的行尾断行字符。
dos2UNIX [-kn] file [newfile]
UNIX2dos [-kn] file [newfile]
-k:保留该文件原本的mtime时间格式;
-n:保留原文件,将转换后的内容输出到新文件。