命令模式
光标跳转
上下左右
上下左右:kjhl
command:跳转#个字符
单词跳转
w:下个单词的词首 e:当前单词的词尾 b:上个单词的词首
command:跳转#个单词
行首行尾跳转
^:行首(非空白字符) 0:行首 $:行尾
行间移动
G:跳转至第#行
1G:跳转至第1行,或gg
文本编辑
删除文本
d:删除,配合光标跳转 d^ d$ d0 dw de db dd:删除光标所在行
dd:从当前行(包括当前行)开始删除#行
x,X:在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
复制文本:y,与删除使用方式一样(常用yy复制游标所在的那一行。nyy复制光标所在的向下 n 行)
- 粘贴命令:p(p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。)
- 撤销命令:u(撤销前一次),#u(撤销前#次)
- 搜索命令
搜索操作: :/ | ? n:查找下一个匹配 N:跳转上一个匹配
进入其他模式
a 进入插入模式,光标停在选中字母后
i 进入插入模式,光标停在选中字母的位置
o 进入插入模式,光标停在选中一行的下面,新建一行空行
A 进入插入模式,光标停在行尾 : 进入末行模式(扩展命令模式)
I 进入插入模式,光标停在行首
O 进入插入模式,光标停在选中一行的上面,新建一行空行
行末模式
保存退出
:10 进入第10行 :w 保存 :q 退出 :wq 保存并退出 :w! 强制保存 :wq! 强制保存退出
查找替换
:范围 s/old/new/选项
| /word | 向光标之下寻找一个名称为 word 的字符串。 |
|---|---|
| ?word | 向光标之上寻找一个字符串名称为 word 的字符串。 |
| n | 下一个 |
| N | 上一个 |
| :n1,n2s/old/new/g | n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 old这个字符串,并将该字符串取代为 new 。/g表示global,不加的话就只是把每一行第一个检索到的替换。 |
| :1,$s/word1/word2/gc 或 :%s/word1/word2/gc | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代! |
:1,5 s/root/aaron/ 从1-5行的root 替换为aaron 每行替换第一个 :5,$ s/root/aaron/ $表示最后一行 :1,$ s/root/aaron/g = :% s/root/aaron/g %表示全文 g表示全局 :% s#/dev/sda#/var/ccc#g :,8 s/root/aaron/ 从当前行到第8行 :4,9 s/^#// 4-9行的开头#替换为空 :5,10 s/./#&/ 5-10前加入#字符(.整行,&引用查找的内容)
读写另存为
:w 存储到当前文件
:w /tmp/aaa.txt 另存为/tmp/aaa.txt
:1,3 w /tmp/2.txt 将1-3行保存到文件
:r /etc/hosts 读入文件到当前行后
:5 r /etc/hosts 读入文件到第5行后
设置环境
临时设置
行号 显示:set number,简写为set nu 取消显示:set nonumber,简写为set nonu
括号匹配 匹配:set showmatch,简写为set sm 取消:set nosm
自动缩进 启用:set ai 禁用:set noai
高亮搜索 启用:set hlsearch 禁用:set nohlsearch
语法高亮 启用:syntax on 禁用:syntax off
忽略字符的大小写 启用:set ic 不忽略:set noic
获取帮助 : help
设置永久环境
修改文件:
/etc/vimrc 影响所有用户 ~/.vimrc 影响一个用户
习题


/
mkdir /tmp/vitestcd /tmp/vitestcp /etc/man.config /tmp/vitestvi man.config:set nu58G(移动到58行)、40l 或 40➡(向右移动40个字符)gg(移动到第一行)、/bzip2(向后搜索bzip2这个字符串):50,100s/man/MAN/gc #这里按a可以全部改掉,按y一个一个改,按u复原按u或者:q!不保存强制退出65G(先跳转到65行)、9yy(复制往下9行)、G(移动到最后一行)、p(在光标下一行粘贴)21G(光标移动到21行)、22dd(从当前行开始往下22行数据删除):w man.test.config27G、15x1G、O(在光标上一行输入新的一行)、输入 i am a student、esc(退出):wq
