Linux中的vim最小集、指令集及其配置

news2025/2/25 8:43:18

目录

1. vim 最小集

2 vim指令集

2.1 命令模式的指令

2.1.1 插入模式

2.1.2 移动光标

2.1.3 删除文字

2.1.4 复制

2.1.5 替换

2.1.6 撤销

2.1.7 更改

2.1.8 跳至指定的行

2.1.9 shift ~:快速大小写切换

2.2 末行模式的指令

2.2.1 set nu/set nonu

2.2.2  vs file | ctrl +快速ww

2.2.3 !command

2.2.4 %s///g

2.2.5 /key

2.2.6 跳到文件中的某一行

2.2.7 保存文件

2.2.8 离开vim

3 vim的配置

3.1 配置文件的位置

3.2 常用配置选项,用来测试

3.3 使用插件


1. vim 最小集

基本概念

        vim的主要三种模式 ( 其实有好多模式,目前掌握这 3 种即可 ), 分别是 命令模式 command mode )、 插入模式 (Insert mode )和 底行模式 last line mode ),
各模式的功能区分如下:
  • 正常/普通/命令模式(Normal mode)
        控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode

 

  • 插入模式(Insert mode)
        只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。

        如果写入了内容,退出时按esc转换到命令模式,shift :wq(w是写入并保存,q是退出)

 

 

[root@VM-12-17-centos ~]# vim test.c
[root@VM-12-17-centos ~]# cat test.c
#include<stdio.h>

int main()
{
	printf("hello world\n");
	return 0;
}

  • 末行模式(last line mode)
        文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。
        要查看你的所有模式:打开vim,底行模式直接输入:help vim-modes

 

2 vim指令集

大部分指令是在命令模式下进行的

 

2.1 命令模式的指令

2.1.1 插入模式

  • 进入插入模式
        按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
        按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
        按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。
  • 从插入模式切换为命令模式
        按「ESC」键。

2.1.2 移动光标

上下左右箭头(not 小键盘)

h:向左,hjkl,最左侧

j:向下,jump,下

k:向上,king,上

l:向右, hjkl,最右侧

  • shift g:将光标定位到文档最结尾
  • gg:将光标定位到文档最开始
  • n shift g:将光标定位到文档的指定行
  • shift 4:将光标定位到文档行的结尾
  • shift 6:将光标定位到文档行的最开始
  • n w, n b:按照单词为单位进行前后移动,w向后,b向前
  • 按「w」:光标跳到下个字的开头
  • 按「e」:光标跳到下个字的字尾
  • 按「b」:光标回到上个字的开头
  • 按「n l」:光标移到该行的第n个位置,如:5l,56l
  • 按[shift+g]:进入文本末端
  • 按「ctrl」+「b」:屏幕往“后”移动一页
  • 按「ctrl」+「f」:屏幕往“前”移动一页
  • 按「ctrl」+「u」:屏幕往“后”移动半页
  • 按「ctrl」+「d」:屏幕往“前”移动半页

2.1.3 删除文字

  • 「x」:每按一次,删除光标所在位置的一个字符
  • 「n x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
  • 「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
  • 「n X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
  • 「dd」:删除光标所在行
  • 「ndd」:从光标所在行开始删除n行 (如果之后有p/np操作,即为剪切

2.1.4 复制

  • 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
  • 「nyw」:复制#个字到缓冲区
  • 「yy」:复制光标所在行到缓冲区。
  • 「nyy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
  • 「p」:将缓冲区内的字符贴到光标所在位置。

        注意:所有与“y”有关的复制命令都必须与“p”配合才能完 成复制与粘贴功能。

  • p/np:粘贴一行或者多行相同的内容到当前光标所在行之下

2.1.5 替换

  • [ r」:替换光标所在处的字符。
  • 「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

2.1.6 撤销

  • 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
  • 「ctrl + r」: 撤销的恢复

2.1.7 更改

  • 「cw」:更改光标所在处的字到字尾处
  • 「cnw」:例如,「c3w」表示更改3个字

2.1.8 跳至指定的行

  • 「ctrl」+「g」列出光标所在行的行号。
  • 「nG」:例如,「15G」,表示移动光标至文章的第15行行首

2.1.9 shift ~:快速大小写切换

  • shift~:快速大小写切换

2.2 末行模式的指令

        在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。

2.2.1 set nu/set nonu

  • set nu &set nonu:调出或去掉行号   

2.2.2  vs file | ctrl +快速ww

            vs test.h

            光标的分屏移动:ctrl +快速ww(从左侧文件到右侧文件or右侧->左侧)

:q!【enter】退出光标所在的文件

2.2.3 !command

在有权限的前提下强制执行 

2.2.4 %s///g

替换关键字 

2.2.5 /key

查找字符
  • 「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按 「n」会往后寻找到您要的关键字为止。
  • 「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直 按「n」会往前寻找到您要的关键字为止。
        问题:/ 和 ?查找有和区别?操作实验一下

2.2.6 跳到文件中的某一行

       「n」:「n」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

2.2.7 保存文件

「w」: 在冒号输入字母「w」就可以将文件保存起来

2.2.8 离开vim

「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件

3 vim的配置

 

3.1 配置文件的位置

         在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
        而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之。
        切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~
        打开自己目录下的.vimrc文件,执行 vim .vimrc

3.2 常用配置选项,用来测试

设置语法高亮: syntax on
显示行号: set nu
设置缩进的空格数为4: set shiftwidth=4

3.3 使用插件

        要配置好看的vim,原生的配置可能功能不全,可以选择安装插件来完善配置,保证用户是你要配置的用户,接下来:
  • 安装TagList插件,下载taglist_xx.zip ,解压完成,将解压出来的doc的内容放到~/.vim/doc, 将解压出来的plugin下的内容拷贝到~/.vim/plugin
  • 在~/.vimrc 中添加: let Tlist_Show_One_File=1         

          let Tlist_Exit_OnlyWindow=1 let               Tlist_Use_Right_Window=1

  • 安装文件浏览器和窗口管理器插件: WinManager
  • 下载winmanager.zip,2.X版本以上的
  • 解压winmanager.zip,将解压出来的doc的内容放到~/.vim/doc, 将解压出来的plugin下的内容拷贝到~/.vim/plugin
  • 在~/.vimrc 中添加 let g:winManagerWindowLayout=‘FileExplorer|TagList

                                      nmap wm :WMToggle<cr>

  • 然后重启vim,打开~/XXX.c或~/XXX.cpp, 在normal状态下输入"wm", 其他手册,请执行 vimtutor 命令,你将看到的效果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/151568.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【自学Python】Python变量

Python变量 Python变量教程 不论是使用哪种高级程序语言编写程序&#xff0c;变量都是其程序的基本组成单位。变量相当于内存中一个数据存储空间的表示&#xff0c;通过变量名可以访问到变量的具体的值。 Python变量 Python 是弱类型语言&#xff0c;因此 Python 变量无须声…

Hudi的核心概念 —— 时间轴(TimeLine)

文章目录时间轴&#xff08;TimeLine&#xff09;时间轴&#xff08;TimeLine&#xff09; 就是一个时间线&#xff0c;它的每一个操作都记录在内&#xff0c;每一个时刻&#xff0c;你做了什么事情&#xff0c;对某一个时刻&#xff0c;记录一个时刻的数据 Hudi 的核心是维护…

擎创运维大数据治理解决方案,荣膺金融业数字化转型突出贡献奖

近日&#xff0c;由《金融电子化》杂志社主办的“2022中国金融科技年会暨第十三届金融科技应用创新奖颁奖典礼”成功于线上举办。擎创科技“运维大数据治理解决方案”&#xff0c;荣膺“2022科技赋能金融业数字化转型突出贡献奖”。人民银行《金融科技发展规划&#xff08;2022…

C++ string类

在c语言中&#xff0c;我们想要记录字符串需要创建一个字符串的数组&#xff0c;而c则提供了另一种方式&#xff1b; 也就是这篇博客所说的string类&#xff1b; string类 #include<string> 作为字符串数组的升级版&#xff0c;string类自然也有它的独特之处——可变长数…

自动驾驶标定基础知识

目录基础概念1. 缩略语2. 为什么需要外参标定3. 基于使用场景的标定分类4. 基于方法的分类5. 基础坐标系6. 超差EOL标定1.EOL特点2. EOL标定流程3. EOL标定软件约束4. EOL标定软件流程5. 算法设计原则6. 算法基本原理背景式标定1.背景式标定的特点2. 背景式标定运行流程3. 背景…

高级树结构之线索化二叉树

文章目录一 线索化二叉树简介二 线索化规则三 前序线索化3.1 代码演示四 中序线索化4.1 代码演示五 后序线索化5.1 代码演示一 线索化二叉树简介 线索化&#xff1a;将一颗二叉树的结点指向为空的指针&#xff0c;线索化为某一种顺序遍历的的指向下一个按顺序的结点的指针一颗…

虚拟主机3种方式nginx/apache+跨域知识点整理

目录referer、prototype、array、json笔记整理: [http://t.csdn.cn/s4P8x](http://t.csdn.cn/s4P8x)虚拟主机3种方式nginx/apache跨域知识点整理一、Apache基于多IP、多端口、多域名访问1、添加网卡三种方法1、虚拟机添加网络适配器2、命令添加3、用nmtui 添加ip地址2、添加配置…

Jwt 最流行的跨域身份验证解决方案

1. 什么是JWT JSON Web Token (JWT)是一个开放标准(RFC 7519)&#xff0c;它定义了一种紧凑的、自包含的方式&#xff0c;用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任&#xff0c;因为它是数字签名的。 JWT被设计为紧凑且安全的&#xff0c;特别适用于分…

Python制做一个电脑通知小工具,再也不怕忘记事情拉~

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ Windows不是有个消息通知功能&#xff0c;挺喜欢这个功能的&#xff0c; 但是不太方便使用&#xff0c;也懒得去研究&#xff0c; 于是准备用Python自己写一个&#xff0c;通过设定通知的间隔时…

Pikachu靶场暴力破解通关

目录 字典获取 BP四种攻击模式 一、Sniper(狙击手模式) 二、Battering ram(攻城锤模式) 三、Pitchfork(叉子模式) 四、Cluster bomb(炸弹模式) 靶场练习 基于表单的暴力破解 验证码绕过(on server) 验证码绕过(on client) token防爆破? 字典获取 在github里找到心…

公司注册商标的流程是什么

公司商标注册流程是什么? 1、商标查询。查询有关商标登记注册情况&#xff0c;以了解自己准备申请注册的商标是否与他人已经注册或正在注册的商标相同或近似的程序; 2、申请文件准备。商标注册申请书;)商标图样;申请注册集体商标、证明商标的&#xff0c;应当提交申请人主体资…

发布了一个jar包到中央仓库,我的心好累…

原创&#xff1a;微信公众号 码农参上&#xff0c;欢迎分享&#xff0c;转载请保留出处。 哈喽大家好啊&#xff0c;我是Hydra。 前几天我在网上冲浪的时候&#xff0c;看见有一个老铁在git上给我提了一个issue&#xff1a; 万万没想到&#xff0c;有一天我写的烂代码居然也会…

家庭装修流程五大步骤是怎样的,家庭装修有什么注意事项!

家庭装修流程五大步骤是怎样的家庭装修有什么注意事项&#xff01;现在的人们不是在城里面购买了楼房&#xff0c;就是在家里面进行翻修房子&#xff0c;不管是哪一种&#xff0c;都肯定是需要用到装修的。但是有很多的人们对于装修方面并不是很了解。想知道家庭装修流程五大步…

Qt之对话框(QDialog)

文章目录一、对话框的概念二、与QWidget的区别三、对话框2种显示方法四、对话框返回值的概念本节示例提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、对话框的概念 对话框是和用户简短交互的一种窗口。如&#xff1a;登录界面&#xff0c;关于界面…

性能-可观测数据、量化指标、性能问题、压测目标

可观测的数据数据指标 服务应用&#xff1a;CPU利用率、内存、ygc次数接口&#xff1a;核心关注接口的请求响应时间&#xff08;平均响应时间、P90、P95&#xff0c;核心关注后面2个&#xff09;、慢请求情况数据库&#xff1a;主要关注CPU使用率、内存使用率Redis&#xff1a…

前端组件库自定义主题切换探索-02-webpack-theme-color-replacer webpack 的实现逻辑和原理-01

本文来研究写webpack-theme-color-replacer webpack 的实现逻辑和原理。 上一篇我们讲过&#xff0c; webpack-theme-color-replacer webpack 基本思路就是&#xff0c;webpack构建时&#xff0c;在emit事件&#xff08;准备写入dist结果文件时&#xff09;中&#xff0c;将即将…

Linux ALSA 之五 ALSA Proc Info

ALSA Proc Info一、概述二、Proc Files of Alsa Driver1、/proc/asound/xxx 简述2、创建 /proc/asound 目录树2.1 /proc/asound/version 文件2.2 /proc/asound/devices 文件2.3 /proc/asound/cards 文件2.4 /proc/asound/cardx 目录2.5 /proc/asound/pcm 文件一、概述 Linux系…

以“辛”为鉴,直播电商如何“知兴替”?

直播电商行业近年来创造了一个又一个销售神话。辛选2022年双11期间&#xff0c;18场直播销售额破亿。罗永浩在淘宝的首秀&#xff0c;6小时带货2亿元。直播间内外似乎一片繁华&#xff0c;但与此同时&#xff0c;也有许多曾经创造了带货奇迹的主播被市场淘汰&#xff0c;淡出视…

【笔记:第2课】学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春

文章目录前言来源正文小结前言 创作开始时间&#xff1a;2023年1月9日20:11:06 如题&#xff0c;学习一下RISC-V。 来源 https://www.bilibili.com/video/BV1Q5411w7z5?p2&vd_source73a25632b4f745be6bbcfe3c82bb7ec0 正文 计算机硬件组成&#xff1a; 总线CPU&…

迷宫问题 | 深度优先

目录 一、说明 二、步骤 三、代码 四、结果 一、说明 什么是深度优先&#xff1f; DFS即Depth First Search&#xff0c;深度优先搜索属于图算法的一种&#xff0c;是一个针对图和树的遍历算法&#xff0c;利用深度优先搜索算法可以产生目标图的相应拓扑排序表&#xff0c…