总述

附加一篇介绍文哈,关于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. 上班如何优雅的使用idea刷LeetCode(力扣)

    打开idea file->setting ->plugins 搜索 "LeetCode" install "LeetCode editor" 重启后 ...

  2. ThinkPHP的url简化

    TP的url请求简化 下面是apache的配置过程,可以参考: 1.       httpd.conf 配置文件中加载了mod_rewrite.so模块 2.       AllowOverride ...

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

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

  4. node.js中使用http-proxy-middleware请求转发给其它服务器

    var express = require('express');var proxy = require('http-proxy-middleware'); var app = express(); ...

  5. 剑指offer 面试题10:斐波那契数列

    题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0).n<=39 编程思想 知道斐波拉契数列的规律即可. 编程实现 class Solu ...

  6. JVM-Class文件的结构

    Class类文件的结构 Class文件是一株以8个字节为单位的二进制流.各个数据项目严格按照顺序紧凑的排列在文件之中,中间没有任何的分隔符,当遇到占用的空间大于8个字节时,会按照高位在前的方式进行分割 ...

  7. 最新详解android自动化无障碍服务accessibilityservice以及高版本问题_1_如何开启获得无障碍

    前言 无障碍服务accessibilityservice是什么 简单来说 无障碍服务就是一个为残障人士 尤其是视觉障碍人士提供的一个帮助服务.具体就是可以识别控件 文字 可以配合语音助手 操作和 使用 ...

  8. Jquery实现对Array数组实现类似Linq的Lambda表达式的Where方法筛选

    平时使用Linq,习惯了Lambda表达式,用着非常顺手,奈何在Jquery里面不能这样用,只能循环一个个判断.趁空闲时间找了找,自己写了这样的扩展方法.目前写出了三种方案,没有比较性能,觉得都可以用 ...

  9. 痞子衡嵌入式:MCUBootFlasher v3.0发布,为真实的产线操作场景而生

    -- 痞子衡维护的NXP-MCUBootFlasher工具(以前叫RT-Flash)距离上一个版本(v2.0.0)发布过去一年半以上了,这一次痞子衡为大家带来了全新版本v3.0.0,从这个版本开始,N ...

  10. 远程部署项目,修改catalina.bat文件 完美解决在代理服务器上HttpURLConnection 调接口超时的问题

    远程给客户部署项目,运行时程序调外部接口时总是出不去,经过不懈努力,后来发现客户那边的网络走的是代理,于是在代码中加下面代码: //设置代理 System.setProperty("http ...