收藏 | vim快捷键收藏版
扫描二维码
随时随地手机看文章
作者:良知犹存
转载授权以及围观:欢迎添加微信公众号:羽林君
一:初识VI/VIM
刚开始用 VIM 打开文件的时候,需要从宏观的去了解一下 VIM 这个编辑器。VIM 有四个模式:
- 正常模式 (Normal-mode)
- 插入模式 (Insert-mode)
- 命令模式 (Command-mode)
- 可视模式 (Visual-mode)
正常模式:
启动vim后默认处于正常模式。不论位于什么模式,按下
插入模式:
在正常模式中按下i, I, a, A等键,会进入插入模式。现在只用记住按i键会进行插入模式。在插入模式中,击键时会写入相应的字符。
命令模式:
在正常模式中,按下:(英文冒号)键,会进入命令模式。在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。
常用的命令有:q(退出)、q!(强制退出)、w(保存)、wq(保存并退出)。
可视模式:
在正常模式中按下v, V,
注:vimrc是vim的配置文件,可以修改两个位置,通过修改vimrc改变vim的配置
1./etc/vim/vimrc 2.~/.vimrc ~/.vimrc优先级高
二:命令模式下的快捷操作
单键操作:Y y 拷贝 P p复制E e 跳转字符 CTRL E CTRL YCTRL F CTRL B CTRL V 进行复制CTRL N 智能补码 X x删除 S s 删除
L 屏幕末尾H屏幕初始
/ ? 搜索
N n下一个
J合并两行I 插入模式 Esc编辑模式和命令模式| 行首 键盘上END 行尾< >反缩进 缩进U u撤销O o换行 组合按键操作:
1.全选并复制(区分大小写!!!)
- 全部删除:
按esc键后,先按gg(到达顶部),然后dG
- 全部复制:
按esc键后,先按gg,然后ggyG
- 全选高亮显示:
按esc键后,先按gg,然后ggvG或者ggVG
- 单行复制:
按esc键后,然后yy
- 单行删除:
按esc键后,然后dd
- 粘贴:
按esc键后,然后p
:set viminfo='1000,<500
至于为什么要输入输入’1000,这个其实不重要,最主要的是输入<500,它是设置寄存器保存的行数的,即最大值为500。ggVG*y
解释一下上面的命令:ggVG ——全选*y —— 复制到剪贴板gg是光标定位到文件首行V是进入可视模式G是跳转到文件最后一行这个时候你就将文本全选了然后使用*y来复制到剪切板上也可以通过配置使用y直接复制到剪切板
注意:这些命令需在输入模式下执行0
1、set shiftwidth=4(设定自动缩进为4个字符,底行模式下)
2、gg=G(自动格式化全部代码)
3、mG=nG(自动格式化第m到第n行)
4、==(格式化当前行)
2.跳转行
比如想跳转到文本的第12行,可以执行如下命令:
1、12gg / 12G
2、:12
3、打开文件时输入vim 12 filename
3.高亮方法:
用vim时,想高亮显示一个单词并查找的方法,将光标移动到所找单词.1: shift "*" 向下查找并高亮显示2: shift "#" 向上查找并高亮显示3: "g" "d" 高亮显示光标所属单词,"n" 查找!
4.取消高亮的方法:使用vim的高亮搜索功能之后,如果不取消的话,代码中就会有像补丁一样的一块一块的高亮。之前用的方法很土,就是找一个再重新搜索一个很少用到的字符,万一不幸,在源码中存在的话,那就换下一个,这样一直换下去。后来觉得这样不行,太low了,网上搜了一下,很简单,在命令状态下直接输入:
:noh
5.分屏操作: 1>.开启分屏
1、使用大写的O参数来垂直分屏 vim -On file1 file2 ...
2、使用小写的o参数来水平分屏 vim -on file1 file2 ...
2>.关闭分屏
1. 关闭当前窗口。Ctrl W c
2. 关闭当前窗口,如果只剩最后一个了,则退出Vim。Ctrl W q
3>.分屏细节
(1)上下分割当前打开的文件。Ctrl W s
(2)上下分割,并打开一个新的文件。:sp filename
(3) 左右分割当前打开的文件。Ctrl W v
(4) 左右分割,并打开一个新的文件。:vsp filename
4>.移动光标Vi中的光标键是h, j, k, l,要在各个屏间切换,只需要先按一下Ctrl W(1)把光标移到右边的屏。
Ctrl W l
(2) 把光标移到左边的屏中。Ctrl W h
(3) 把光标移到上边的屏中。Ctrl W k
(4)把光标移到下边的屏中。Ctrl W j
(5) 把光标移到下一个的屏中。.Ctrl W w
5>.移动分屏这个功能还是使用了Vim的光标键,只不过都是大写。当然了,如果你的分屏很乱很复杂的话,这个功能可能会出现一些非常奇怪的症状。(1) 向右移动。Ctrl W L
(2) 向左移动Ctrl W H
(3) 向上移动Ctrl W K
(4)向下移动Ctrl W J
6>.屏幕尺寸
下面是改变尺寸的一些操作,主要是高度,对于宽度你可以使用[Ctrl W <]或是[Ctrl W >],但这可能需要最新的版本才支持。(1) 让所有的屏都有一样的高度。Ctrl W =
(2) 增加高度。Ctrl W
(3)减少高度。Ctrl W -
6.跳转实现:[ ctrl i 跳转到函数、变量和#define 用ctrl o 返回
[ ctrl d 跳转到#define处用ctrl o 返回
ctrl i 向前跳到前几次光标位置
ctrl o 向后跳到后几次光标位置
(1)函数体跳转:
[[
]]
[]
][
{}
(2)括号跳转小括号的跳转:跳到句子的下头,句子以句号或者空行结束,英文中的句号为 “.”。
( (左小括号) 移到这个句子的开头
) (左小括号) 移到下一个句子的开头
中括号的跳转:跳到函数的开头或者结尾。
[[ 跳往上一个函式的起始大括号
]] 跳往下一个函式的起始大括号
[] 跳往上一个函数的结束大括号
][ 跳往下一个函数的结束大括号
大括号的跳转:跳到段落的开头,段落以空行划分
{ (左大括号) 跳到上一段的开头
} (右大括号) 跳到下一段的的开头
三:快捷键高清示意图
由于发表文章会令图片像素降低,大家可以后台回复vim快捷键获得相应的高清图。这就是我分享的vi/vim快捷键,如果大家有什么更好的思路,欢迎分享交流哈。