总述

附加一篇介绍文哈,关于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快捷键收藏版的更多相关文章

  1. [No00004F]史上最全Vim快捷键键位图(入门到进阶)

    史上最全Vim快捷键键位重磅来袭!!学习Linux的朋友看过来啦,你是不是觉得Linux编辑器Vim操作复杂,步骤繁琐呢?Linux工程师是不是想大幅度提升自己的工作效率呢? 经典版        下 ...

  2. vim快捷键总结

    直接上图 原图地址:vim快捷键

  3. vim快捷键笔记【原创】

    Vim zR  全部展开 zM全部合并 vim  快捷键 shift   +  i      (‘I’)    进行编辑 shift   +  4     (‘$’)    跳到行尾 shift   ...

  4. VIM快捷键(转)

    VIM快捷键:光标移动:四个方向   kh 0 l   j  ctrl+f, ctrl+b                 向下翻页,向上翻页  ctrl+d, ctrl+u              ...

  5. 必须熟悉的vim快捷键操作

    转载请表明出处http://www.dabu.info/?p=801 Vim/Vi 没有菜单,只有命令 Vim/Vi 工作模式介绍:插入模式 和  命令模式 是vi的两个基本模式.——插入模式 ,是用 ...

  6. Linux vim快捷键

    1  替换    r  替换  先按r再按要替换的内容 2  按yy复制当前行  按p是粘贴 3 # add at 18-10-25 #-------------------------------- ...

  7. 转: Vim快捷键分类

    Vim快捷键分类 http://www.cnblogs.com/jikey/archive/2011/12/28/2304341.html  一. 移动:    h,j,k,l: 左,下,上,右.   ...

  8. [No00004F]史上最全Vim快捷键键位图(入门到进阶)vim常用命令总结

    在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行.你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format.使 ...

  9. <顶>vim快捷键映射Map使用

    问题描述: 使用vim中的快捷键映射map,可以自定义快捷键 问题解决: (1)vim模式 (2)map前缀 (3)删除映射Map (4)使用示例 (5)查看快捷键映射 命令行---:verbose ...

随机推荐

  1. 让微信小程序开发如鱼得水

      关于微信小程序开发一直想写一篇相关的文章总结和记录下,结果拖延症犯了迟迟没有下笔:这不最近天气不错,于是找一个空闲的下午将这篇文章输出下(好像跟天气没啥关系),那我们就开始吧! 注意:本文默认开发 ...

  2. 4.k8s存储之Volume、PV、PVC和StatefulSet

    3.Volume 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题.首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失--容器以干净的状态(镜像最初的 ...

  3. nginx 重写去掉index.php

    if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?s=$1 last; }

  4. Spark学习进度10-DS&DF基础操作

    有类型操作 flatMap 通过 flatMap 可以将一条数据转为一个数组, 后再展开这个数组放入 Dataset val ds1=Seq("hello spark"," ...

  5. Qt开发的应用记录读取用户习惯设置的方法

    Qt开发的应用记录读取用户习惯设置的方法 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/w ...

  6. Openstack glance 镜像服务 (五)

    Openstack glance 镜像服务 (五) 引用: 官方文档glance安装 https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/ ...

  7. MySQL的CURD 增删改查

    添加 insert 语法: 单条:insert into 表名('字段1', '字段2', ...) values('值1', '值2', ...) 多条:insert into 表名('字段1', ...

  8. 【Java】单例模式(Singleton)

    重新搞一波 复习巩固 简单记录 慕课网 Java工程师 文章目录 单例概述 设计模式 单例模式(Singleton) 参考资料 单例概述 Singleton Pattern 单例模式是Java中最简单 ...

  9. 【Java】一个简单的Java应用程序

    简单记录,Java 核心技术卷I 基础知识(原书第10 版) 一个简单的Java应用程序"Hello, World!" Hello, World! Goodbye,World! 一 ...

  10. ORA-32004解决办法

    ORA-32004 解释是: 产生问题的原因是一个过时的参数,这个参数是早在8i,9i中使用的,在11g中已经废掉了 这个参数就是pfile中的*.sql_trace 用spfile 生成一个pfil ...