vim 速查表

2018-03-26  本文已影响0人  来个芒果

基本操作

< 如显示不全,请左右滑动 >

快捷键 功能
Esc 从当前模式转换到“普通模式”。所有的键对应到命令。
i “插入模式”用于插入文字。回归按键的本职工作。
: “命令行模式” Vim 希望你输入类似于保存该文档命令的地方。

方向键

< 如显示不全,请左右滑动 >

快捷键 功能
h 光标向左移动一个字符
jCtrl + J 光标向下移动一行
kCtrl + P 光标向上移动一行
l 光标向右移动一个字符
0 (数字 0)移动光标至本行开头
$ 移动光标至本行末尾
^ 移动光标至本行第一个非空字符处
w 向前移动一个词 (上一个字母和数字组成的词之后)
W 向前移动一个词 (以空格分隔的词)
5w 向前移动五个词
b 向后移动一个词 (下一个字母和数字组成的词之前)
B 向后移动一个词 (以空格分隔的词)
5b 向后移动五个词
G 移动至文件末尾
gg 移动至文件开头

浏览文档

< 如显示不全,请左右滑动 >

快捷键 功能
( 跳转到上一句
) 跳转到下一句
{ 跳转到上一段
} 跳转到下一段
[[ 跳转到上一部分
]] 跳转到下一部分
[] 跳转到上一部分的末尾
][ 跳转到上一部分的开头

插入文本

< 如显示不全,请左右滑动 >

快捷键 功能
a 在光标后插入文本
A 在行末插入文本
i 在光标前插入文本
o (小写字母 o)在光标下方新开一行
O (大写字母 O)在光标上方新开一行

特殊插入

< 如显示不全,请左右滑动 >

快捷键 功能
:r [filename] 在光标下方插入文件 [filename] 的内容
:r ![command] 执行命令 [command] ,并将输出插入至光标下方

删除文本

< 如显示不全,请左右滑动 >

快捷键 功能
x 删除光标处字符
dw 删除一个词
d0 删至行首
d$ 删至行末
d) 删至句末
dgg 删至文件开头
dG 删至文件末尾
dd 删除该行
3dd 删除三行

简单替换文本

< 如显示不全,请左右滑动 >

快捷键 功能
r{text} 将光标处的字符替换成 {text}
R 进入覆写模式,输入的字符将替换原有的字符

复制/粘贴文本

< 如显示不全,请左右滑动 >

快捷键 功能
yy 复制当前行至存储缓冲区
["x]yy 复制当前行至寄存器 x
p 在当前行之后粘贴存储缓冲区中的内容
P 在当前行之前粘贴存储缓冲区中的内容
["x]p 在当前行之后粘贴寄存器 x 中的内容
["x]P 在当前行之前粘贴寄存器 x 中的内容

撤销/重做操作

< 如显示不全,请左右滑动 >

快捷键 功能
u 撤销最后的操作
Ctrl+r 重做最后撤销的操作

搜索和替换

< 如显示不全,请左右滑动 >

快捷键 功能
/search_text 检索文档,在文档后面的部分搜索 search_text
?search_text 检索文档,在文档前面的部分搜索 search_text
n 移动到后一个检索结果
N 移动到前一个检索结果
:%s/original/replacement 检索第一个 “original” 字符串并将其替换成 “replacement”
:%s/original/replacement/g 检索并将所有的 “original” 替换为 “replacement”
:%s/original/replacement/gc 检索出所有的 “original” 字符串,但在替换成 “replacement” 前,先询问是否替换

书签

< 如显示不全,请左右滑动 >

快捷键 功能
m {a-zA-Z} 在当前光标位置设置书签,书签名可用一个大小写字母({a-zA-Z})
:marks 列出所有书签
{a-zA-Z} 跳转到书签 {a-zA-Z}

选择文本

< 如显示不全,请左右滑动 >

快捷键 功能
v 进入逐字可视模式
V 进入逐行可视模式
Esc 退出可视模式

改动选中文本

< 如显示不全,请左右滑动 >

快捷键 功能
~ 切换大小写
d 删除一个词
c 变更
y 复制
> 右移
< 左移
! 通过外部命令进行过滤

保存并退出

< 如显示不全,请左右滑动 >

快捷键 功能
:q 退出 Vim,如果文件已被修改,将退出失败
:w 保存文件
:w new_name 用 new_name 作为文件名保存文件
:wq 保存文件并退出 Vim
:q! 退出 Vim,不保存文件改动
ZZ 退出 Vim,如果文件被改动过,保存改动内容
ZQ 与 :q! 相同,退出 Vim,不保存文件改动

vim分屏

:sp[lit] {file}     水平分屏
:new {file}         水平分屏   
:sv[iew] {file}     水平分屏,以只读方式打开
:vs[plit] {file}    垂直分屏
:clo[se]            关闭当前窗口
Ctrl+w h        切换到左边窗口
Ctrl+w j        切换到下边窗口
Ctrl+w k        切换到上边窗口
Ctrl+w l        切换到右边窗口
Ctrl+w w        遍历切换窗口
ctrl_w+x
Ctrl+w H        向左移动当前窗口
Ctrl+w J        向下移动当前窗口
Ctrl+w K        向上移动当前窗口
Ctrl+w L        向右移动当前窗口
Ctrl+w +        增加窗口高度
Ctrl+w -        减小窗口高度
Ctrl+w =        统一窗口高度
ps: 未成功,可用[vertical] res [N] 来设置宽度。若不加vertical 则设置高度
参考:https://blog.csdn.net/Devil_2009/article/details/7006113

窗口本身的位值的移动:
ctrl_w + r: 窗口本身, 不是鼠标指针顺时针 (向下, 向右 移动), R : 则是逆时针反方向(向上, 向左)移动.
ctrl_w+x: 左右上下对应位置的窗口 对调. 要注意窗口必须是 对应的, 如果不对应将无法对换, 比如左边一个大窗口, 右边有两个小的 子窗口, 则左右不能互换.

窗口本身 的位置移动, 而且大小也发生"最大化"变化
Ctrl_w+ HJKL( 注意是大写的字母 H, J, K, L , 表示要按shift才能实现的)... 要注意, 可以通过 windows 窗口 "贴边" 最大化来理解, H和 L 就是 向左或向右 最大化贴边 显示; 而 JK 则是 向上 或 向下 贴边 最大化显示. 最大化后 就不能 再次操作复原窗口了, 其实也没有必要

另:vim分屏操作,参考http://harttle.land/2015/11/14/vim-window.html http://www.cnblogs.com/barrychiao/p/3446865.html

=======================================

一、基本操作

1.游标移动

按Esc进入普通模式,在该模式下使用方向键或者h,j,k,l键可以移动游标。

按键 说明
h 左
l 右(小写L)
j 下
k 上
w 移动到下一个单词
b 移动到上一个单词

2.插入模式

在普通模式下使用下面的键将进入插入模式,并可以从相应的位置开始输入

命令 说明
i 在当前光标处进行编辑
I 在行首插入
A 在行末插入
a 在光标后插入编辑
o 在当前行后插入一个新行
O 在当前行前插入一个新行
cw 替换从光标所在位置后到一个单词结尾的字符

3.退出vim

从普通模式输入:进入命令行模式,输入wq回车,保存并退出编辑
以下为其它几种退出方式:

命令 说明
:q! 强制退出,不保存
:q 退出
:wq! 强制保存并退出
:w <文件路径> 另存为
:saveas 文件路径 另存为
:x 保存并退出
:wq 保存并退出

普通模式下输入Shift+zz即可保存退出vim

4.删除文本

进入普通模式,使用下列命令可以进行文本快速删除:

命令 说明
x 删除游标所在的字符
X 删除游标所在前一个字符
Delete 同x
dd 删除整行
dw 删除一个单词(不适用中文)
d$或D 删除至行尾
d^ 删除至行首
dG 删除到文档结尾处
d1G 删至文档首部
除此之外,你还可以在命令之前加上数字,表示一次删除多行,如:

2dd表示一次删除2行

二、文档编辑

5.vim重复命令
  1. 重复执行上条命令: .
    2.连续执行命令n次:
    n<command>,如: 3dd,连续删3行,d3w,连续删3个单词
6.快速跳转

1.行间

2. 行内跳转

7.复制、剪切、粘贴
  1. 普通模式中使用y复制

yy复制游标所在的整行(3yy表示复制3行)
y^ 复制至行首,或y0。不含光标所在处字符。
y$ 复制至行尾。含光标所在处字符。
yw 复制一个单词。
y2w 复制两个单词。
yG 复制至文本末。
y1G 复制至文本开头。

  1. 普通模式中使用p粘贴
  1. 剪切
    dd即剪切===> ddp 交换光标所在行和下一行

三、查找、替换--普通模式下

  1. 替换、撤销
    普通模式下:

r+<待替换字母> :将游标所在字母替换为指定字母
R :连续替换,直到按下Esc

cc :替换整行,即删除游标所在行,并进入插入模式
cw :替换一个单词,即删除一个单词,并进入插入模式
C(大写) :替换游标以后至行末
~ :反转游标所在字母大小写
u{n} :撤销一次或n次操作
U(大写) :撤销当前行的所有修改
Ctrl+r :redo,即撤销undo的操作

  1. 缩进
    ' >>、<<
    shiftwidth:
  1. 查找
    / icmp 向下查找icmp
    ?icmp 向上查找..
    n 继续查找,N 查找上一个出现的。

普通模式下输入*寻找游标所在处的单词
普通模式下输入#同上,但 # 是向前(上)找,*则是向后(下)找
普通模式下输入g*同* ,但部分符合该单词即可
普通模式下输入g#同# ,但部分符合该单词即可

四、高级功能

  1. 多文件编辑
    1. 进入vim前使用的参数就是多个文件
      默认进入1.txt文件的编辑界面
  1. 进入vim后打开新文件

命令行模式下输入:e 3.txt 打开新文件3.txt
命令行模式下输入:e# 回到前一个文件
命令行模式下输入:ls可以列出以前编辑过的文档
命令行模式下输入:b 2.txt(或者编号)可以直接进入文件2.txt编辑
命令行模式下输入:bd 2.txt(或编号)可以删除以前编辑过的列表中的文件项目
命令行模式下输入:e! 4.txt,新打开文件4.txt,放弃正在编辑的文件
命令行模式下输入:f 显示正在编辑的文件名
命令行模式下输入:f new.txt,改变正在编辑的文件名字为new.txt

  1. 恢复文件

如果因为断电等原因造成文档没有保存,可以采用恢复方式,vim -r进入文档后,输入:ewcover 1.txt来恢复

  1. 可视模式命令

在普通模式下输入v(小写),进入字符选择模式,就可以移动光标,光标走过的地方就会选取。再次按下v会后就会取消选取。

在普通模式下输入Shift+v(小写),进入行选择模式,按下V之后就会把整行选取,您可以上下移动光标选更多的行,同样,再按一次Shift+v就可以取消选取。

在普通模式下输入 Ctrl+v(小写),这是区域选择模式,可以进行矩形区域选择,再按一次Ctrl+v取消选取。

在可视模式下输入d或x删除选取区域内容
在可视模式下输入y复制选取区域内容

批量插入
ctrl+v进入可视块模式,再按G到文件最后一行。然后shift+i进入插入模式,输入’123’,按esc,这样就达到了在每行行首插入’123’的目的。

  1. 视窗操作

vim可以在一个界面里打开多个窗口进行编辑,这些编辑窗口称为vim的视窗。
命令行模式下输入:new 打开一个新的vim视窗,并进入视窗编辑一个新文件(普通模式下输入Ctrl+w也可以,但是Ctrl+w在chrome下会与chrome关闭标签页的快捷键冲突,所以使用该快捷键你可以在IE或其它浏览器进行练习)

命令行模式下输入:sp 1.txt 打开新的水平分屏视窗来编辑1.txt

命令行模式下输入:vsp 2.txt 打开新的垂直分屏视窗来编辑2.txt
普通模式下Ctrl-w s 将当前窗口分割成两个水平的窗口
普通模式下Ctrl-w v 将当前窗口分割成两个垂直的窗口
普通模式下Ctrl-w q 即 :q 结束分割出来的视窗。如果在新视窗中有输入需要使用强制符!即:q!
普通模式下Ctrl-w o 打开一个视窗并且隐藏之前的所有视窗
普通模式下Ctrl-w j 移至下面视窗
普通模式下Ctrl-w k 移至上面视窗
普通模式下Ctrl-w h 移至左边视窗
普通模式下Ctrl-w l 移至右边视窗
普通模式下Ctrl-w J 将当前视窗移至下面
普通模式下Ctrl-w K 将当前视窗移至上面
普通模式下Ctrl-w H 将当前视窗移至左边
普通模式下Ctrl-w L 将当前视窗移至右边
普通模式下Ctrl-w - 减小视窗的高度
普通模式下Ctrl-w + 增加视窗的高度

  1. 加密文档
    vim x file ,然后输入密码,下次打开会需密码
  2. 执行外部命令
    在命令行模式中输入!可以执行外部的shell命令

:!ls 用于显示当前目录的内容
:!rm FILENAME用于删除名为 FILENAME 的文件
:w FILENAME可将当前 VIM 中正在编辑的文件另存为 FILENAME 文件

  1. 帮助系统

普通模式下按F1打开vim自己预设的帮助文档
命令行模式下输入:h shiftwidth 打开名为shiftwidth的帮助文件
命令行模式下输入:ver 显示版本及参数

  1. 功能设定
    set nu(显示行数),设定值退出vim后不会保存。要永久保存配置需要修改vim配置文件。

命令行模式下输入:set或者:se显示所有修改过的配置
命令行模式下输入:set all 显示所有的设定值
命令行模式下输入:set option? 显示option的设定值
命令行模式下输入:set nooption 取消当期设定值

命令行模式下输入:set autoindent(ai) 设置自动缩进
命令行模式下输入:set autowrite(aw) 设置自动存档,默认未打开
命令行模式下输入:set background=dark或light,设置背景风格
命令行模式下输入:set backup(bk) 设置自动备份,默认未打开
命令行模式下输入: set cindent(cin) 设置C语言风格缩进

上一篇下一篇

猜你喜欢

热点阅读