很多初学者启动vim后,不知道怎么输入字符:按了半天字母,结果屏幕还是空的。

vim和记事本或WORD不一样,不是一打开后就可以输入文字,此时它处于正常模式。

vim一共有4个模式:

  • 正常模式 (Normal-mode)
  • 插入模式 (Insert-mode)
  • 命令模式 (Command-mode)
  • 可视模式 (Visual-mode)
注意:方向键(上下左右那几个)可以在vim屏幕里跳来跳去。现在知道这个对
体验以下的模式有用。但是,通过方向箭来移动,是一个笨办法。。。讲到正常
模式时会说到更好的方法(我不会现在就告诉你h,j,k,l键分别对应左,下,上,右的:D)

正常模式

正常模式一般用于浏览文件,也包括一些复制、粘贴、删除等操作。这时击键时,
一般的键/键组合会被当成功能键,而不会键入对应的字符。

在这个模式下,我们可能通过键盘在文本中跳来跳去,跳动的范围从小到大是字符、
单词、行、句子、段落和屏幕。

启动vim后默认位于正常模式。不论位于什么模式,按下<Esc>键(有时需要按两下)
都会进入正常模式。

命令模式

在正常模式中,按下:(冒号)键,会进入命令模式。在命令模式中可以执行
一些输入并执行一些vim或插件提供的指令,就像在shell里一样。这些指令包括
设置环境、文件操作、调用某个功能等等。

可视模式

在正常模式按下v, V, <Ctrl>+v,可以进入可视模式。可视模式中的
操作有点像拿鼠标进行操作,选择文本的时候有一种鼠标选择的即视感,有时候
会很方便。

根据需要灵活快速的切换各种模式非常有用。

 

配置回到正常模式的快捷键

由于不论在其他什么模式下,按一次或两次<Esc>键都可以回到正常模式,我们
可以想见,<Esc>键会经常用到。由于<Esc>键在标准qwert键盘的左上角,对
于左手小指不灵活的朋友来说,按起来比较不方便(我就是如此),因此在上一篇
中我们通过配置.vimrc把<Esc>映射成了按两下j键。

" 将ESC键映射为两次j键
inoremap jj <Esc>

j键正好在右手食指的基本键位上(一般上面还有个突起),用起来十分方便。
如果只让我保留一个vim设置的话,我会选择保留它。

vs code vim的更多相关文章

  1. VS Code - Vim 插件自动切换输入法

    前言: 在使用 Linux 的过程中,vim 是一个不错的编辑器,以至于多数人将其用成了习惯,在没有 vim 的环境下还是习惯用 vim 的快捷键来编辑文本.所以便有开发者们为众多的 IDE 和文本编 ...

  2. a great tool for automatically formating your code!

    1. make your own format file at your project's root or file's folder. (The clang-format will automat ...

  3. vscode的环境变量code

    vscode的安装路径 本质:vscode的安装路径/Applications/Visual Studio Code.app/Contents/Resources/app/bin 下面有code可执行 ...

  4. Linux 下源码编译安装 vim 8.1

    前言 目前 linux 的各个发行版基本上都是带了一个 vi 编辑器的,而本文要说的 vim 编辑器对 vi 做了一些优化升级,更好用.当我们需要远程操作一台 linux 服务器的时候,只能使用命令行 ...

  5. [转载]函数getopt(),及其参数optind

    最近用到了getopt()这个函数,对它进行了一些了解.这篇博文还是写的非常清楚的.值得学习.最近在改进一个开源项目,希望自己能静下心好好分析代码. ------------------------- ...

  6. 部署phpmyadmin登录不进去

    Centos7.5 部署phpmyadmin登录不进去 问题:明明输对了账号和密码就是登录不进去,但是用ip就能登录 解决方法:换个域名 [root@web01 code]# vim /etc/ngi ...

  7. 函数getopt()及其参数optind -- (转)

    getopt被用来解析命令行选项参数 #include <unistd.h>       extern char *optarg;  //选项的参数指针       extern int ...

  8. LNMP(5)

    目录 一.实战 1.安装 安装nginx 数据库 php wordpress 2.三者建立联系 nginx和php建立联系 php与mariadb建立关系 二.数据分离 三.理论 静态和动态 web应 ...

  9. Rewrite基本概述

    Rewrite基本概述 什么是rewrite Rewrite主要实现url地址重写,以及重定向,就是把传入web的请求重定向到其他url的过程. rewrite使用场景 1.地址跳转,用户访问www. ...

随机推荐

  1. javascript基础工具清单

  2. HDU1863-畅通工程

    题目链接:点击打开链接 Problem Description 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即 ...

  3. js原型链,作用域,闭包讲解

    当面试的时候遇到问原型链,闭包,还有作用域,直接 拿张纸和笔把原型链画出来,闭包跟作用域直接用笔写几道题出来加深理解(因为我们是理科生,图形和题目以及控制台输出结果才是最直观的方法) 问:什么是原型链 ...

  4. [Leetcode]007. Reverse Integer

    public class Solution { public int reverse(int x) { long rev=0; while(x!=0){ rev = rev*10+x%10; x=x/ ...

  5. Django与Ajax,文件上传,ajax发送json数据,基于Ajax的文件上传,SweetAlert插件

    一.Django与Ajax AJAX准备知识:JSON 什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻 ...

  6. Win10家庭版打不开gpedit.msc

    本文来源 : https://www.ithome.com/html/win10/324926.htm win10家庭版是不自带这个功能的 首先我们打开记事本,并输入以下内容(注意空格): @echo ...

  7. E - Palindrome Numbers

    题目链接:https://vjudge.net/contest/237394#problem/E A palindrome is a word, number, or phrase that read ...

  8. Java面向对象_包装类访问修饰符

    在java中有一个设计的原则"一切皆对象",java中的基本数据类型就完全不符合这种设计思想,因为八种基本数据类型并不是引用数据类型,所以java中为了解决这样的问题,jdk1.5 ...

  9. 工厂模式 jdbc 面向接口dao 开发 单例

    package com.itheima.utils; import java.io.IOException; import java.io.InputStream; import java.util. ...

  10. 合理设置apache httpd的最大连接数--linux

    手头有一个网站在线人数增多,访问时很慢.初步认为是服务器资源不足了,但经反复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能 ...