一、vim编辑器的介绍
vim编辑器在内存缓冲区中处理数据。
如果在启动vim时未指定文件名或者这个文件不存在,vim会新开一段缓冲区域来编辑。如果在命令行下指定了一个已有文件的名字,vim会将文件的整个内容都读到一块缓冲区域来准备编辑。
二、vim操作模式
vim编辑器有两种操作模式:普通模式、插入模式。
刚打开文件时,vim编辑器会进入普通模式。在普通模式中,vim编辑器会将按键解释成命令。插入模式下,vim会将在当前光标位置输入的每个键都插入到缓冲区。
按i键进入插入模式,按退出ESC键可以从插入模式退回到普通模式。
2.1 普通模式
普通模式下的一些指令如下:
h:左移一个字符
j:下移一行
k:上移一行
l:右移一个字符
PageDown 或ctrl+F 下翻一屏数据
PageUp 或ctrl+B 上翻一屏数据
G 移到缓冲区的最后一行
num G 移动到缓冲区中的第num行
gg 移到缓冲区的第一行
2.2 命令行模式
普通模式下有个特别的功能叫命令行模式。命令行模式可以输入一些命令来控制vim中行为,是一种交互式命令行。要进入命令行模式,在普通模式下输入冒号,光标移动最底下的消息行。
q:未修改缓冲区数据,退出
q!:取消所有对缓冲区数据的修改并退出
w 文件名 将文件保存到另一个文件名下
wq 将缓冲区数据保存到文件中并退出
三、vim数据编辑
x 删除当前光标所在位置的字符
dd 删除当前光标所在行
dw 删除当前光标所在位置的单词
d$ 删除当前光标所在位置至行尾的内容
J 删除当前光标所在行行尾的换行符 拼接行
u 撤销前一编辑命令
a 在当前光标后追加数据
A 在当前光标所在行行尾追加数据
r char 用char替换当前光标所在位置的单个字符
R text 用text覆盖当前光标所在位置的数据,直接按下ESC键
有些编辑命令允许使用数字修饰符来指定重复该命令多少次。比如,命令2x会删除从光标当前位置开始的两个字符,命令5dd会删除从当前所在行开始的5行。
四、vim复制和粘贴
在vim删除数据时,实际上它会将数据保存在单独的一个寄存器中,可以用p命令来取回数据。
例如dd删除一行,p会将文本插入到光标所在行之后。p命令可以和任何删除文本命令一起搭配使用。
复制明林那个是y(yank)。可以与y使用和d命令相同的第二个字符,yw复制单词,y$复制到行尾。在复制文本后,用p粘贴。
vim复制可能出现的问题是不知道复制的是什么,可以用可视模式进行高亮显示,移动光标到要开始复制的位置,按下v键,光标所在位置的文本会被高亮显示。然后移动光标覆盖要复制的文本,再用y键激活复制命令使得寄存器中已经有要复制的文本,移动光标到要放置的位置,用p来粘贴。
五、vim查找和替换
:s/old/new/g 一行命令替换所有old
:n,m/old/new/g 替换行号n和m之间所有old
:%s/old/new/g 替换整个文件中所有old
:%s/old/new/gc 替换整个文件中的所有old,但在每次出现时提示