1. vi与vim
vi和vim,简单来说就是程序开发工具。vim是vi的升级版。那为什么要学vi和vim呢?CentOS上默认使用vim来替换vi,而且很多命令会直接调用vim作为数据编辑的接口。
1.1 三种模式
- command mode
- insert mode
- command-line
- visual block(可视化模式,为vim所独有)
常用命令
- h, j, k, l 向左,下,上,右四个方向移动光标
- Ctrl + f[orward], b[ackward], u[pward], d[ownward] 向下,上翻整页,向上,下翻半页
- 0 移动到当前行的最前面
- $ 移动到当前行的最后面
- G 移动到文件的最后面
- gg 移动到第一行
- n
光标向后移动n行
- /word 向后查找word
- ?word 向前查找word
- n 重复前一个动作
- N 反向进行前一个查找操作
- :n1, n2s/word/word1/g 将n1-n2行之间的word替换成word1
- :n1, $s/word/word1/g 将n1到文件末尾的word替换成word1
- :n1, $s/word/word1/gc 将n1到文件末尾的word替换成word1并需要确认
x与X 相当于[del] 和[backspace]键
dd 删除一整行
yy 复制光标所在的一行
配合n+
使用很方便
- p 行后粘贴
- P 行前粘贴
- u 恢复到上一步
- Ctrl + r redo
- . 重复上一个操作
- :n 编辑下一个文件
- :N 编辑上一个文件
- :files 列出目前这个vim开启的所有文件
1.2 vim的额外功能
1.2.1 可视化块
v | 字符选择 |
---|---|
V | 行选择 |
Ctrl+v | 可视化区块 |
y | 将反白的地方复制起来 |
d | 将反白的地方删除掉 |
p | 将刚刚复制的区块,在光标所在处粘贴 |
1.2.2 多文件编辑
:sp [filename] | 打开一个新窗口,如果有filename,表示在新窗口创建一个新文件,否则表示两个窗口为同一个文件(同步显示) |
---|---|
[Ctrl]+w+↑/k | 先按下[Ctrl]不放,然后按w放开所有按键,之后按下j移到下方的窗口 |
[Ctrl]+w+↓/j | 同上,不过为移到下方的窗口 |
[Ctrl]+w+q | 其实就是:q结束退出,如果想结束下方的窗口,那么利用ctrl+w+j,然后:q即可退出,也可以按ctrl+w+q,此外也可以是:close关闭所在的窗口 |
1.2.3 vim的关键词补全功能
组合键 | 补齐的内容 |
---|---|
ctrl+x --> ctrl+n | 通过目前正在编辑的这个[文件的内容文字]作为关键词,予以补齐 |
ctrl+x --> ctrl+f | 以当前目录内的[文件名]作为关键词,予以补齐 |
ctrl+x --> ctrl+o | 以扩展名作为语法补充,以vim内置的关键词,予以补齐 |
其中1和3使用的比较频繁。前者用来少敲字,后者用来语法补齐
1.2.3 vim环境设置与记录:/.vimrc、~/.viminfo
vim环境记录:~/.viminfo
vim环境设置:~/.vimrc
1.2.4 vim常用命令示意图
1. 2.5 vim的编码以及换行符问题
可以使用
iconv
- f 选项,指定源文件
- t 选项,指定输出文件
- o选项,将转码后的文件转存成新文件
进行文件编码格式的转换,使用
dos2unix
- k 选项,保留原文件的mtime
- n 选项,保留原本的旧文件,将转换后的文件输出到新文件
进行dos与linux的换行符的转换。