vim 入门简单使用
三种模式
- Insert mode is where you insert i.e. write the text.
- Normal mode is where you can run commands. This is the default mode in which Vim starts up.
- Visual mode is where you visually select a bunch of text, so that you can run a command/operation only on that part of the text.
insert 模式
normal mode → insert mode:
- 按下
i表示 insert, 插入东西到光标前 - 按下
I表示 insert before line, 插入东西到当前行首 - 按下
a,表示 append, 追加东西到光标后 - 按下
A,表示 append, 追加东西到当前行尾 - 按下
o, 表示 open a line below, 在下面新建一行。 - 按下
O, 表示 open a line above, 在 上面新建一行。
Esc :Insert mode → Normal mode
:wq 写入并退出( write and quit )
Normal 模式
输入: 后,进入命令模式
:vs (vertical split)
:sp (split)
:% s/foo/bar/g 全局替换
:set nu! 设置行号
命令模式下,不小心按错命令,可以按 Esc 消除命令
复制一行:yy
复制 n 行:nyy
也可进入 visual 模式,选择多行,然后 yy
选定文本块。使用 v 进入可视模式,移动光标键选定内容。
复制的命令是
y,即 yank(提起) ,常用的命令如下:y: 在使用 v 模式选定了某一块的时候,复制选定块到缓冲区用;yy: 复制整行(nyy或者yny,复制 n 行,n 为数字);y^: 复制当前到行头的内容;y$: 复制当前到行尾的内容;yw: 复制一个 word (nyw或者ynw,复制 n 个 word,n 为数字);yG: 复制至档尾(nyG或者ynG,复制到第 n 行,例如 1yG 或者 y1G,复制到档尾)删除的命令是
d,即 delete,d与y命令基本类似,所以两个命令用法一样,包括含有数字的用法. d 删除选定块到缓冲区;dd: 剪切整行ndd: 向后剪切 n 行(包含所在行)d^: 剪切至行首d$或G: 剪切至行尾dw: 剪切一个 worddG: 剪切至文档尾删除的命令
c跟d类似,但是删除完成后会进入插入模式粘贴的命令式
p,即 paste(放下)小写
p向后粘贴, 代表贴至游标后(下),因为游标是在具体字符的位置上,所以实际是在该字符的后面.大写
P向前粘贴,代表贴至游标前(上)整行的复制粘贴在游标的上一行,非整行的复制则是粘贴在游标的前
注: 在正则表达式中,^
表示匹配字符串的开始位置,$ 表示匹配字符串的结束位置。
命令前面加数字表示重复的次数,加字母表示使用的缓冲区名称。使用英文句号"."可以重复上一个命令。
在复制粘贴时,另一组常用的命令是
u(撤销操作),U(撤销某一行最近所有修改),Ctrl+R(重做),这些功能主要是
vim 中的,vi 中略有差别
删除所有内容
命令为:ggdG
讲解:gg 为跳转到文件首行;dG
为删除光标所在行以及其下所有行的内容,其中 d
为删除,G 为跳转到文件末尾行;
删除到某一行: d63G delete from the current line until
line 63.
移动
home 键 行首、end 键 行尾、
h 向左、j 向下、k
是向上、l 是向右
向下跳 10 行:10j
向上跳 10 行:10k
向上翻页:pgup 或者 ctrl + b(backwad)
向下翻页: pgdn 或者 ctrl +f (forward)
按单词向后移动 : w (word)
按单词往回移动:b (back)
Vim 快速移动光标至行首和行尾
需要按行快速移动光标时,可以使用键盘上的编辑键
home,快速将光标移动至当前行的行首。除此之外,也可以在命令模式中使用快捷键^(即Shift+6)或0(数字 0)。如果要快速移动光标至当前行的行尾,可以使用编辑键 End。也可以在命令模式中使用快捷键
$(Shift+4)。与快捷键^和0不同,快捷键$前可以加上数字表示移动的行数。例如使用"1$"表示当前行的行尾,2$表示当前行的下一行的行尾。
vim 跳转到指定行
ngg 或 nG,其中 n 是想跳转到的行标,如 10gg,或 10G,但这种方式输入时不显示所输内容,个人感觉不够直观。:n,在一般模式下按冒号进入命令模式,直接输行标,然后回车。这种方法直接显示所输内容。一般模式下直接输入
H移动到当前屏幕第一行(home);M移动到当前屏幕中间一行(middle);L移动到当前屏幕最后一行(last)。
搜索
输入
/,然后输入要搜索的东西,并回车即可。
查看上一个匹配位置:shift + n
查看下一个匹配位置:n