vim基础
键入vim命令和要编辑的文件的名字即可启动vim编辑器。
如果启动vim时未指定文件名,或这个文件不存在,vim会开辟一段新的缓冲区来编辑。如果在命令行下指定了一个已有的文件的名字,vim会将文件的整个内容都读到一块缓冲区来准备编辑。
底部是消息行
。
vim编辑器有两种操作模式:
- 普通模式(默认)
- 插入模式
在普通模式,vim编辑器会将按键解释成命令。
在插入模式,vim会将你在当前光标位置输入的每个键都插入到缓冲区。
按下i键(insert)
就可以进入插入模式。要退出按下ESC键
即可。
普通模式:
命令(h,i,j,k,l) | 功能 |
---|---|
h | 左移一个字符 |
j | 下移一行 |
k | 上移一行 |
l | 右移一个字符 |
命令 | 功能 |
---|---|
PageDown(或Ctrl+F) | 下翻一屏 |
PageUp(或Ctrl+B) | 上翻一屏 |
G | 移到缓冲区的最后一行 |
num G | 移到缓冲区中第num行 |
gg | 移到缓冲区的第一行 |
vim在普通模式
下有个特别的功能叫命令行模式
。提供额外输入命令来控vim行为的途径。
普通模式按下冒号键
,光标会移到消息行,然后出现冒号,等待输入命令。
命令 | 功能 |
---|---|
q | 如果未修改数据,退出 |
q! | 取消所有对缓冲区数据的修改并退出 |
w filename | 将文件保存到另一个文件中 |
wq | 将缓冲区数据保存到文件中并退出 |
编辑数据
普通模式:
命令 | 功能 |
---|---|
x | 删除当前光标所在位置的字符
|
dd | 删除当前光标所在行
|
dw | 删除当前光标所在位置的单词
|
d$ | 删除当前光标所在位置至行尾的内容 |
J | 删除当前光标所在行行尾的换行符(拼接行) |
命令 | 功能 |
---|---|
u | 撤销前一编辑命令 |
a | 在当前光标后追加数据 |
A | 在当前光标所在行行尾追加数据 |
r char | 用char替换当前光标所在位置的单个字符 |
R text | 用text覆盖当前光标所在位置的数据,直到按下ESC键 |
复制和粘结
剪切:其实就是删除,vim在删除数据时,实际上会将数据保存在单独的一个寄存器中。
粘贴:用命令p
从寄存器中取回数据。
复制:命令y
(代表yank)。可以在y后面使用和d命令相同的第二个字符(yw
表示复制一个单词,y$
表示复制到行尾)。
可视模式:v键
,然后移动光标,再按y键
激活复制命令,移动光标到要放置的位置,p命令
粘贴。
查找和替换
查找:按下斜线(/
)键。
继续查找:使用n键
,表示下一个(next)。
替换(命令行模式):
:s/old/new/
vim编辑器会跳到old第一次出现的地方,并用new来替换。
:s/old/new/g:一行命令替换所有old。
:n,ms/old/new/g:替换行号n和m之间所有old。
:%s/old/new/g:替换整个文件中的所有old。
:%s/old/new/gc:替换整个文件中的所有old,但在每次出现时提示。