「笔者:nullresot」
vim的三种模式
-
一般命令模式(command mode)
❝
默认的模式,一般借用此模式进行光标的上下左右移动,简单的删除字符/删除整行或复制粘贴简单的操作,可以在此模式中通过按键进入insert mode或command-line mode。
❞
-
编辑模式(insert mode)
❝
command mode中我们无法对文件进行编辑,可以点击【i,I,o,O,a,A,r,R】等任意一个字母之后才会进入编辑模式,进入后,在界面的左下角会显示【INSERT】或【REPLACE】的字样,可以通过【Esc】退出编辑模式。
❞
-
命令行模式(command-line mode)
❝
可以进行读取,保存,退出,显示行号等操作,可以通过输入【: / ?】三个任意一个字符进入command-line mode。
❞
注:模式的进入inset mode或command-line mode必须在command mode输入特定字符才可进入,command-line mode与command mode之间无法切换。
vim命令
「此模块仅介绍常用按键」
移动光标
| 按键 | 效果 |
|---|---|
h或← | 光标向左移动一个字符 |
j或↓ | 光标向下移动一个字符 |
k或↑ | 光标向上移动一个字符 |
l或→ | 光标向右移动一个字符 |
可以通过nj来做到向下移动30行 | n是一个数字,例如15k可以向上15行 |
ctrl+f | 屏幕向下移动一页,相当于【Page Down】 |
ctrl+b | 屏幕向上移动一页,相当于【Page Up】 |
n<space> | 光标向后移动n个字符,<space>是空格 |
0或[Home] | 移动到一行的最前面 |
$或[End] | 移动到一行最后面 |
G | 移动到最后一行 |
gg | 移动到第一行,相当于1G |
nG | 移动到第n行 |
n<Enter> | 向下移动n行 |
查找与替换
| 按键 | 效果 |
|---|---|
/string | 向光标之下查找string的字符串,查找的是/后面跟着的字符串 |
?string | 向光标之上查找string的字符串 |
n | 英文字母里的n,非数字,代表重复上一个查找的操作 |
N | 反着来,上一个是向下查找的话使用N会向上查找 |
:n1,n2s/word1/word2/g | n1,n2是两个不同的数字,在n1行到n2行中寻找word1并将其替换成word2 |
:1,$/word1/wod2/g | 从第一行到最后一行查找word1并替换成word2 |
:1,$s/word1/word2/gc | 从第一行到最后一行查找word1并替换成word2,每次替换前都会进行询问是否替换 |
删除,复制,粘贴
| 按键 | 效果 |
|---|---|
x与X | x向后删除一个字符(Del),X向前删除一个字符(Backspace) |
nx | 连续向后删n个字符,nX同理 |
dd | 删除(剪切)光标所在的一整行 |
ndd | 删除(剪切)光标所在的下n行 |
yy | 复制光标所在的一整行 |
nyy | 复制光标所在的下n行 |
p与P | p,将复制的数据粘贴到光标所在的下一行;P,粘贴到上一行 |
u | 恢复前一个操作,相当于windows的ctrl+Z |
ctrl+r | 重复上一个操作 |
. | 重复上一个操作 |
command mode进入insert mode
| 按键 | 效果 |
|---|---|
i | 从目前光标所在处插入 |
o与O | o,在光标所在的下一行插入;O,在光标所在的上一行插入 |
r与R | 替换模式(Replace mode),r指挥替换光标所在的那个一个字符一次,R会一直替换,直到退出替换模式 |
Esc | 退出编辑模式(insert mode或replace mode),回到command mode |
命令行常用命令 很多命令可以放在一起用,例如:wq是保存并退出
| 按键 | 效果 |
|---|---|
:w | 将编辑的内容写入到硬盘文件中(保存) |
:q | 退出vim |
:w!/:q! | 强制保存/强制退出 |
:w [filename] | 将编辑的内容保存到另一个文件 |
:n1,n2 w [filename] | 将n1到n2行的内容保存为filename这个文件 |
vim环境设置参数
| 命令 | 效果 |
|---|---|
:set nu | 显示行号 |
:set nonu | 取消行号(相反的命令就是多了个no) |
:set autoindent/:set noautoindent | 自动缩进/取消缩进 |
:set backup | 备份文件,备份后的文件名为“原文件名~”,该文件记录原始原文件内容 |
:set all | 显示所有环境参数设置值 |
:syntax on/:syntax off | 写程序时可以帮助自动出错,如果编辑纯文本文件可以通过后面的命令关掉这个功能 |
「参考书目:《鸟哥的Linux的私房菜》」
如果有错误的话麻烦dalao指正