摘自《鸟哥的私房菜》第三篇,人民邮电出版社
vim的简单使用:
执行方法:vim filename <打开或者新建filename>
三个模式:一般模式,编辑模式,命令行模式
一般模式---->编辑模式 i:当前表示符前,o:当前提示符下一行
a:当前提示符下一个,r:向后擦出
<---- Esc
一般模式---->命令行模式 :执行命令,/向下搜索,?向上搜索
<---- Esc
移动光标
h,j,k,l:分别是左移,下移,上移,下移
0或者Home:移动到本行最前
$或者End:移动到本行最后
1G或gg:移动到第一行
nG:移动到第n行
G:移动到最后一行
n+space:向后移动n个字符
n+Enter:向下移动n行
查找与替换
/word:向下查找word
?word:向上查找word
n:移动到下一个目标
N:移动到上一个目标
:n1,n2s/word1/word2/g:从第n2到n2行将word1替换为word2
:1,$s/word1/word2/g:从第一行到最后将word1替换为word2
:1,$s/word1/word2/gc:从第一行到最后将word1替换为word2
删除复制粘贴
X:向前删除
x:向后删除
dd:删除光标所在行
ndd:删除光标向下n行
d0:删除光标处到最前
d$:删除光标出到最后
d1G:删除光标出到第一行
dG:删除光标处到最后一行
yy:复制光标所在行
nyy:复制光标下n行
y0:复制从光标出到本行最前
y$:复制从光标处到本行最后
y1G:复制从光标处到第一行
yG:复制从光标处到最后
P:复制到光标上一行
p:复制到光标下一行
u:复原上一个操作
Ctrl+r:重复上一个操作
命令行
:q[!]:退出,加感叹号强制退出
:w[!]:保存,加感叹号强制保存
:wq[!]:保存退出,加感叹号强制
ZZ:若有改动保存退出,若无改动直接退出
:w[filename]:另存为filename
:r[filename]:将filename内容引入光标后边
:n1,n2 w filename:将n1到n2内容保存到filename中
:!command:暂时离开vi执行命令command
块选择
v:字符选择
V:行选择
Ctrl+v:块选择,长方形选择数据
y:复制选中块
d:删除选中块
多文件编辑
vim filename1 filename2
:n:编辑下一个文件
:N:编辑上一个文件
:files:列出目前这个vim打开的所有文件
多窗口显示
:sp filename:将另一个文件打开
:sp:将本文件再次带开在这个窗口
Ctrl+w+k/上:上一个窗口
Ctrl+w+j/下:下一个窗口
Ctrl+w+q:关闭当前窗口
中文编码问题
DOS与linux段行字符
在dos中CR与LF都是段行,在linux中只有LF
dos2unix [-kn] file newfile
unix2dos [-kn] file newfile
-k 保留源文件的日期
-n 保留源文件
语系转换
iconv --list:输出iconv支持的编码
iconv -f 原本编码 -t 新编码 [-o newfile]
查看文件编码:
file -bi filename
:set fileending