Chapter 8 文本编辑
8.1 vi & vim
vi (visual)是一个经典且强大的文本编辑器,所有的UNIX-like都会内置vi
Vim (vi improved)是vi的升级版。其代码补全、编译及错误跳转等方便编程的功能特别丰富
yum -y install vim
Vim 有Normal, Visual, Insert 和 Command-line四种模式
8.1.1 普通模式
普通模式又称命令模式,通过按下功能按键进行编辑
移动光标:
hjkl(←↓↑→),以及数字0(Home),$(End)
w 跳转到下个单词 b 跳转到上个单词
f+字母 找到下一个该字母并跳转到此
多次移动:
30j (或30Enter或30↓),向下30行
10Space (或10l或10→)向右10字符
G(移动到最后一行)、20G(第20行),gg(即1G,第一行)
翻页
Ctrl+fbdu
即 front back down up
分别是向下一页(PgDn)、向上一页(PgUp)、向下半页、向上半页
复制
yy复制当前行
yaw yank all word
y4j 复制下四行 y8l复制右8格
yfr 复制到下一个r为止的内容
粘贴:
p贴在后面(下面),P贴在前面(上面)
删除:
d 与 y 命令非常相似,可以配合hjkl, G, 0, $, f+字母 等使用
例如 d8j, dfw
dd删除当前行
x向后删除,X向前删除,10x删除后面的10个字符
撤销 u,Ctrl+r重做上一个动作
.重复前一个动作
8.1.2 插入模式
iIoOaArRc
c –change
caw删除当前单词进入插入模式
cc删除当前行进入输入模式
c4j删除下4行进入输入模式
代码补全 | |
---|---|
Ctrl+x -> Ctrl+n | 使用当前文件内的单词来补全 |
Ctrl+x -> Ctrl+f | 使用当前目录的文件名来补全 |
Ctrl+x -> Ctrl+o | vim根据扩展名使用内置策略来补全 |
8.1.3 可视模式
vV^V
选中之后可以使用y d c等复制、删除、改变
缩进:
- 输入V进入可视行模式
- 按<或>向前或向后缩进
多行注释:
- Ctrl+v进入可视块模式,移动光标选中要注释的行
- 按I (insert)行首插入注释符(如#),如果插入空格则可以缩进
- 按Esc
取消多行注释:可视块模式选中注释符号按d删除
8.1.4 命令行模式
普通模式按下:, /或?进入命令行模式
: | |
---|---|
:set nu / nonu | 是否显示行号 |
:set autoindent / noautoindent | 是否自动缩进,即继承上一行的缩进量 |
:wq | 保存退出 |
:q! | 强制退出 |
:w [filename] | 另存为 |
:r [filename] | 将另外的文件读取到游标所在行后面 |
:n1,n2 w [filename] | 将两行之间的内容另存为新文件 |
:! [command] | 执行命令,例如:! ls/home |
查找与替换 | |
---|---|
/关键字 |
回车 查找下一个,按n继续查找下一个,N查找上一个 |
?关键字 |
回车 查找下一个,按n继续查找下一个,N查找上一个 |
:n1,n2s/word1/word2/g |
在n1行n2行之间替换word1为word2 |
:%s/word1/word2/gc |
全文寻找和替换,且替换前询问(confirm) |
分屏 | |
---|---|
:sp [filename] | 分屏打开文件,默认是当前文件 |
Ctrl+W | 管理窗口,再按 j,k或方向键切换窗口,q关闭 |