1.vim的三种模式:普通模式,编辑模式,命令模式
2.vim的常用指令
普通模式下的常用指令:
↑ ↓ ← → | 光标向上、下、左、右移动一个字符 |
<ctrl>+f | 向下翻一页,f :forward |
<ctrl>+b | 向上翻一页,b:backward |
<ctrl>+d | 向下翻半页,d:down |
<ctrl>+u | 向上翻半页,u:up |
n<空格键> | 光标向右移动 n 个字符 |
0 | 移动到这一行第一个字符 |
$ | 移动到这一行最后一个字符 |
H / M / L | 移动到屏幕最上/中间/最下那一行的第一个字符 |
G | 移动到文件最后一行 |
gg | 移动到文件第一行 |
nG | 移动到第 n 行 |
n<enter> | 光标向下移动 n 行 |
dd | 删除光标所在的一整行 |
ndd | 删除光标所在开始共 n 行 |
d1G | 删除第一行到光标所在行的所有内容 |
dG | 删除光标所在行到最后一行的所有内容 |
d0 | 删除光标所在行的第一个字符到光标所在处 |
d$ | 删除光标所在行中光标所在处到该行的最后一个字符 |
yy | 复制光标所在的一整行 |
nyy | 复制光标所在开始共n行 |
y1G | 复制第一行到光标所在行的所有内容 |
yG | 复制光标所在行到最后一行的所有内容 |
y0 | 复制光标所在行的第一个字符到光标所在处 |
y$ | 复制光标所在行中光标所在处到该行的最后一个字符 |
p | 将复制好的内容贴在光标所在的下一行 |
P | 将复制好的内容贴在光标所在的那一行 |
u | 撤销上一步 |
<ctrl>+r | 取消上一个撤销 |
. | 重复上一步 |
/string | 向下寻找“string”这个字符串 |
?string | 向上寻找“string”这个字符串 |
n | 重复上一个搜寻动作 |
N | 反向进行上一个搜寻动作 |
v | 按行进行区块选择,按住v后上下移动光标即可 |
~ | 改变当前光标下字母的大小写 |
n~ | 改变当前光标开始的n个字母的大小写 |
gUw | 将当前光标下单词改为大写(注意光标要放在单词的第一个字母) |
guw | 将当前光标下单词改为小写 |
g~~ | 改变当前光标下一行字母的大小写 |
gUU | 将当前光标下一行字母改为大写 |
guu | 将当前光标下一行字母改为大写 |
复制一个文本块的方法:
首先光标放到文本快左上角,然后ctrl+V,之后使用上下左右键选中要复制的区域(此区域会反白),然后按y复制该区域,按p将复制的内容粘贴到光标所在位置。
从普通模式(Normal mode)转换到插入模式(Insert mode)
可以使用多种不同的按键组合,每个组合都会以稍微不同的方式进入插入模式:
i - 在当前光标位置之前插入文本。
I - 在当前行的第一个非空白字符前插入文本。
a - 在当前光标位置之后插入文本。
A - 在当前行的末尾插入文本。
o - 在当前行之下新开一行,并切换到插入模式。
O - 在当前行之上新开一行,并切换到插入模式。\
编辑模式下的常用指令:
<ESC> | 回到普通模式 |
命令模式下的常用指令:
:n1,n2 s/string1/string2/g | 把n1到n2行里的所有string1替换为string2 |
:1,$ s/string1/string2/g | 把从头到尾的所有string1替换为string2 |
:w | 写入 |
:w! | 强制写入(文件为只读时) |
:q | 退出 |
:q! | 强制退出(修改了文件内容但不想保存) |
:wq | 写入后退出 |
:wq! | 强制写入后退出 |
:w [filename] | 将文件另存为一个叫“filename”的文件 |
:r [filename] | 将文件“filename”的内容读入当前文件中光标所在的下一行 |
:n1,n2 w [filename] | 将n1到n2行之间的内容另存为一个叫“filename”的文件 |
:set nu或set number | 显示行号 |
:set nonu | 不显示行号 |
:! command | 显示在shell里执行command的结果 |
查找和替换
在 Vim 中优雅地查找和替换 | Harttle Land
vim查找字符串-全词匹配、不区分大小写_gvim 全字匹配查找-CSDN博客
要找到以{STRING} 结尾的单词,使用:
{STRING}\>
要找到以{STRING} 开头的单词,使用:
\<{STRING}
要全词匹配{STRING},使用:
\<{STRING}\>
查看一共有多少匹配的项目:
- 如果想知道搜索结果中共有多少个匹配项,可以使用
:%s/<pattern>//gn
这个命令来获取匹配结果的计数器。其中,%s
表示在所有行中查找,而g
和n
表示分别进行全局匹配和计数操作。 - 另外一个方法是先搜索一次
/{STRING}
,再使用命令:set hls
开启高亮显示,并使用:%s///gn
命令来获取计数器。
大小写敏感的查找:
#大小写不敏感
{STRING}\c
#大小写敏感
{STRING}\C
可视模式
进入: v, V, ctrl + v
- v 字符选择,光标经过的地方反白选择;
- V 行选择,光标经过的整行反白选择;
- Ctrl+v 块选择,长方形的方式选择
vim和外界复制粘贴
sudo apt-get install xclip
在vim中,进入可视模式,选中文本后,shift+:进入命令模式,此时会显示:'<,'>
:'<,'>w !xclip -selection clipboard
同屏打开多个窗口时,暂时关闭一个,过后再打开
(暂时关闭的窗口内容不保存到该文件里,但是过后打开时还能看见)
:set hidden
:hide
查看缓冲区中有哪些文件
:ls
再次打开隐藏的文件
#水平分割窗口
:sbuffer {number}
#垂直分割窗口
:vert sbuffer {number}