Bootstrap

Vim常用命令

普通模式下 u 撤销 ctrl + r 反撤销

一. 块操作:

多行删除字符

  1.  Ctrl+v 进入列选择模式
  2. 移到光标把注释符选中
  3. 按下小写的d

多行替换字符

  1. Ctrl+v进入模式
  2. 选中字符
  3. 按小写的r,输入替换后的字符

多行插入字符

行首添加

  1. ctrl + v
  2. 按上下选择键选中需要添加的行
  3. $
  4. I (大写I)
  5. 添加需要添加的内容
  6. ESC

行尾添加

  1. ctrl + v
  2. 按上下选择键选中需要添加的行
  3. $
  4. A
  5. 添加需要添加的内容
  6. ESC

注意:I,A都是大写

二.分屏

创建分屏

  • :split  → 创建水平分屏 (:vsplit创建垂直分屏)

切换屏幕

  • <C-w><dir> : dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一个,其用来切换分屏。

关闭屏幕

  • Ctrl+W q  关闭当前分屏

调整屏幕尺寸

  • Ctrl+W = 所有屏尺寸相等
  • Ctrl+W -  减少高度
  • Ctrl+W + 增加高度

三.vim在选中的文本中查找替换

查找

在normal模式下按下 即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。

在查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找。例如:

/test\c

对于在vim中前面已经输入过的字符串,只要再次输入前几个字符,然后按Ctrl+n 即可自动补全。 

替换

:s(substitute)命令用来查找和替换字符串。语法如下:

:{作用范围}s/{目标}/{替换}/{替换标志}

例如 :%s/foo/bar/g 会在全局范围(%)查找 foo 并替换为 bar,所有出现都会被替换(g)。

作用范围

作用范围分为当前行、全文、选区等等。

当前行:

:s/foo/bar/g

全文:

:%s/foo/bar/g

选区,在 Visual 模式下选择区域后输入 :,Vim 即可自动补全为 :'<,'>

:'<,'>s/foo/bar/g

2-11 行:

:5,12s/foo/bar/g

当前行 . 与接下来两行 +2

:.,+2s/foo/bar/g

替换标志符

上文中命令结尾的 g 即是替换标志之一,表示全局 global 替换(即替换目标的所有出现)。 还有很多其他有用的替换标志:

空替换标志表示只替换从光标位置开始,目标的第一次出现:

:%s/foo/bar

i 表示大小写不敏感查找,I 表示大小写敏感:

:%s/foo/bar/i
# 等效于模式中的\c(不敏感)或\C(敏感)
:%s/foo\c/bar

c 表示需要确认,例如全局查找 "foo" 替换为 "bar" 并且需要确认:

:%s/foo/bar/gc

回车后 Vim 会将光标移动到每一次 "foo" 出现的位置,并提示

replace with bar (y/n/a/q/l/^E/^Y)?

按下 y 表示替换,n 表示不替换,a 表示替换所有,q 表示退出查找模式, l 表示替换当前位置并退出。^E 与 ^Y 是光标移动快捷键,参考: Vim 中如何快速进行光标移动

四.复制与删除

记住下面这种命令格式,任意组合:

<start position><command><end position>

全选(高亮显示):按esc后,然后ggvG或者ggVG

全部复制:按esc后,然后ggyG

复制多行:

                :9,15 copy 16  或 :9,15 co 16
                由此可有:
                :9,15 move 16  或 :9,15 m 16 将第9行到第15行的文本内容到第16行的后面  

全部删除:按esc后,然后ggdG(高亮)   或者 dG(非高亮)
 

解析:

gg:是让光标移到首行,在vim才有效,vi中无效 

v : 是进入Visual(可视)模式 

G :光标移到最后一行 

中内容以后就可以其他的操作了,比如: 
d  删除中内容 
y  复制中内容到0号寄存器 
"+y  复制中内容到+寄存器,也就是系统的剪贴板,供其他程序用 

x 是直接删除光标所在的字符
D 删除光标位置到本行结尾

https://blog.csdn.net/guangyacyb/article/details/109607772

Windows中复制粘贴配置: 

-- 在_vimrc添加配置
-- 复制:鼠标选中某段文本进入可视块,然后ctrl+c
-- 粘贴:gvim 内进入插入模式后ctrl+v,外部直接ctrl+v;
-- 剪切:ctrl+x 
vmap <C-c> "+y
vmap <C-x> "+c
vmap <C-v> c<ESC>"+p
imap <C-v> <C-r><C-o>+

删除重复行:

1. sort
2. g/^\(.*\)$\n\1$/d

转载:vim全选,全部复制,全部删除 - 星草感觉 - 博客园

五.缩进

向前或向后缩进4个空格

  1. shift + v组合键进入Visual Line模式,可使用方向键选择多行;
  2. <>,进行向前或向后缩进。注:有些设置为缩进一个Tab单位。

向前或向后缩进n个空格

向前缩进,实则是使用Visual Block模式删除多余空格以达到向前缩进的效果。

  1. ctrl + v组合键进入Visual Block模式;
  2. 使用上下方向键可选择多行,使用前后方向键可选择空格大小长度;
  3. 按下d删除选中内容。

向后缩进,实则是使用Visual Block模式批量添加空格以达到向后缩进的效果。

  1. ctrl + v组合键进入Visual Block模式;
  2. shift + i组合键进入编辑模式;
  3. 输入需要缩进的空格数量;
  4. esc按键完成操作。

;