问:有什么简单的方法可以产生一组随机字符串?
答:让新手退出vi.


基本命令:

保存退出
:wq

不保存退出
:q!

保存不退出
:w

跳到第100行
:100

查找指定字符串:
:/str1
查找下一个:
n
查找上一个:
shift + n

复制当前行:
yy
粘贴复制行:
p

从本行向下复制3行:
y ↓ 2
从本行向上复制3行:
y ↑ 2

撤销最近一次操作:
u
撤销本行操作:
shift + u

sed编辑:

:[address]s/pattern/replacement/flag
flag: g表示该行全部匹配项,无此选项,仅替换第1个匹配项

将第3行中所有的str1替换成str2

:3 s/str1/str2/g

将全文中所有的str1替换成str2

%s/LED/KEYS/g
或者:
:g/str1/s//str2/g
第1个g表示所有行,第2个g表示每行所有匹配

删除空白行: 删除只有空格或制表符内容的行

:g/^[\ '\t']*$/d

删除空行: 什么内容都没有

:g/^$/d

配置文件:
全局配置文件: /etc/vim/vim.tiny
用户配置文件: ~/.vimrc
建议只修改用户配置文件,以防止影响其他用户使用。

自动匹配编码:

" 双引号表示行注释
set encoding=utf-8 
set fileencodings=ucs-bom,utf-8,cp936

cp936简体中文(gb2312)

vi在编辑模式移动光标时,会产生ABCD?

" 设置非兼容模式(兼容什么?)        
set nocompatible

显示/取消行号

set number
set nonumber

文件格式转换: 主要是换行符不同

转换为UNIX格式:

:set fileformat=unix

转换为DOS格式:

:set fileformat=dos

文件编码转换:
查看当前编码:

:set fileencoding

转换为utf-8

:set fileencoding=utf-8

转换为cp936(gb2312)

:set fileencoding=cp936

合并第3行和第4行:

:3j

合并第3行至第8行:

:3,8 j

或者在normal模式下移第3行:

5J