vim快捷键收藏版
总述
附加一篇介绍文哈,关于vim快捷键的介绍。vim和vscode 到底谁更好用,大家争得不可开交,然后我就在vscode里面装了一个vim插件,完美得解决了这个问题,用完之后觉得真香,所以我就整理一份终端命令的快捷键,所以大家赶紧收藏起来吧。
作者:良知犹存
转载授权以及围观:欢迎添加微信公众号:羽林君
一:初识VI/VIM
刚开始用 VIM 打开文件的时候,需要从宏观的去了解一下 VIM 这个编辑器。
VIM 有四个模式:
正常模式 (Normal-mode)
插入模式 (Insert-mode)
命令模式 (Command-mode)
可视模式 (Visual-mode)
正常模式:
启动vim后默认处于正常模式。不论位于什么模式,按下<Esc>键(有时需要按两下)都会进入正常模式。
插入模式:
在正常模式中按下i, I, a, A等键,会进入插入模式。现在只用记住按i键会进行插入模式。在插入模式中,击键时会写入相应的字符。
命令模式:
在正常模式中,按下:(英文冒号)键,会进入命令模式。在命令模式中可以执行一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括设置环境、文件操作、调用某个功能等等。
常用的命令有:q(退出)、q!(强制退出)、w(保存)、wq(保存并退出)。
可视模式:
在正常模式中按下v, V, <Ctrl>+v,可以进入可视模式。可视模式中的操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候会很方便。
注:vimrc是vim的配置文件,可以修改两个位置,通过修改vimrc改变vim的配置
1./etc/vim/vimrc
2.~/.vimrc
~/.vimrc优先级高
二:命令模式下的快捷操作
单键操作:
Y y 拷贝 P p复制
E e 跳转字符
CTRL + E CTRL +Y
CTRL+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
注:vim只能粘贴50行的问题:
在当前用户主目录(~)编辑~/.vimrc(如果不存在,新建这个文件),添加一行
: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快捷键,如果大家有什么更好的思路,欢迎分享交流哈。
*—**END*—
推荐阅读
【1】c++nullptr(空指针常量)、constexpr(常量表达式)
【2】嵌入式底层开发的软件框架简述 必读
【3】CPU中的程序是怎么运行起来的
【4】C++的匿名函数(lambda表达式)
【5】阶段性文章总结分析
本公众号全部原创干货已整理成一个目录,公众号后台回复【资源】即可获得
更多分享,扫码关注我
vim快捷键收藏版的更多相关文章
- [No00004F]史上最全Vim快捷键键位图(入门到进阶)
史上最全Vim快捷键键位重磅来袭!!学习Linux的朋友看过来啦,你是不是觉得Linux编辑器Vim操作复杂,步骤繁琐呢?Linux工程师是不是想大幅度提升自己的工作效率呢? 经典版 下 ...
- vim快捷键总结
直接上图 原图地址:vim快捷键
- vim快捷键笔记【原创】
Vim zR 全部展开 zM全部合并 vim 快捷键 shift + i (‘I’) 进行编辑 shift + 4 (‘$’) 跳到行尾 shift ...
- VIM快捷键(转)
VIM快捷键:光标移动:四个方向 kh 0 l j ctrl+f, ctrl+b 向下翻页,向上翻页 ctrl+d, ctrl+u ...
- 必须熟悉的vim快捷键操作
转载请表明出处http://www.dabu.info/?p=801 Vim/Vi 没有菜单,只有命令 Vim/Vi 工作模式介绍:插入模式 和 命令模式 是vi的两个基本模式.——插入模式 ,是用 ...
- Linux vim快捷键
1 替换 r 替换 先按r再按要替换的内容 2 按yy复制当前行 按p是粘贴 3 # add at 18-10-25 #-------------------------------- ...
- 转: Vim快捷键分类
Vim快捷键分类 http://www.cnblogs.com/jikey/archive/2011/12/28/2304341.html 一. 移动: h,j,k,l: 左,下,上,右. ...
- [No00004F]史上最全Vim快捷键键位图(入门到进阶)vim常用命令总结
在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行.你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format.使 ...
- <顶>vim快捷键映射Map使用
问题描述: 使用vim中的快捷键映射map,可以自定义快捷键 问题解决: (1)vim模式 (2)map前缀 (3)删除映射Map (4)使用示例 (5)查看快捷键映射 命令行---:verbose ...
随机推荐
- Linux基础命令整合
linux基础命令整理 1.系统相关命令 shutdown -h now 关闭系统(1) init 0 关闭系统(2) telinit 0 关闭系统(3) shutdown -h hours:minu ...
- LinkedList 的 API 与数据结构
LinkedList 是 List 接口和 Deque 接口的双向链表实现,它所有的 API 调用都是基于对双向链表的操作.本文将介绍 LinkedList 的数据结构和分析 API 中的算法. 数据 ...
- linux下的文件类型
在Linux中一切设备皆文件,首先来看一下Linux下的文件都有哪些分类,也就是文件类型 文件类型:普通文件(包括shell脚本,文档,音频,视频).目录文件.设备文件(又细分为字符设备文件和块设备文 ...
- 如何实现一个简易版的 Spring - 如何实现 Constructor 注入
前言 本文是「如何实现一个简易版的 Spring」系列的第二篇,在 第一篇 介绍了如何实现一个基于 XML 的简单 Setter 注入,这篇来看看要如何去实现一个简单的 Constructor 注入功 ...
- pyi文件是干嘛的?(一文读懂Python的存根文件和类型检查)
参考资料: https://blog.csdn.net/weixin_40908748/article/details/106252884 https://www.python.org/dev/pep ...
- 诸葛 VS 庞统,拿下 Paxos 共识算法
前言 分布式确实是一个有趣的话题,只要你留心观察,分布式在生活中无处不在. 悟空哥最开始学习分布式是从一篇非常用心写的技术征文开始的,而且这篇文章获得了征文第一名,在此感谢掘金社区提供的平台.想学习的 ...
- Linux 服务器安装node环境
Linux 装 node 环境 我的是 CentOS 查看服务器是多少位系统 getconf LONG_BIT 下载地址, 下载对应的版本: http://nodejs.cn/download/ 我这 ...
- Linux 使用命令行上传下载文件
基本语法: 服务器: 用户名@ip:/路径 scp 要拷贝的文件 要存放的文件 上传文件到服务器 # 把本地 source.md 文件上传到 152.116.113.13 服务器的/home目录 # ...
- iconv函数报错 Detected an illegal character in input string
近日使用php代码导出文件为excel,一直乱码.导出修改编码都无效,最后发现,是需要修改php导出代码本身的编码.首先用记事本打开php代码,另存为,选择ANSI格式.然后打开iconv函数这个ph ...
- su3和SU01中参数说明
对于SU3和SU01中的的"参数"tab栏中的参数可以自己添加和删除. 所有的参数都存在表TPARA中,并且有对应的参数的说明. 那么这些参数如何使用呢? 通常的使用是,通过类似 ...