vim使用指南:指令、配置、插件、异常

news2024/11/16 16:33:23

文章目录

  • vi / vim
    • 命令模式
    • 插入模式
      • 光标定位
      • 复制粘贴删除撤销
      • 替换
      • 删除
      • 查找
    • 底行模式
      • 保存退出
      • 行号
      • 查找
      • 多开
      • 其他
    • 视图模式
      • 注释
    • 异常
    • vim配置
    • vim插件

vi / vim

vim的本质是一个编辑器,是一种多模式的编辑器,只能进行读写操作,不能进行编译
  • 编辑器:vim
  • 编译器:gcc/g++
  • 调试器:gdb
  • 维护项目结构/自动化编译:make/makefile

  • 模式切换
    • 用Vim打开一个文件时,最初为命令行模式,输入i进入插入模式;
    • 插入/底行模式输入esc退出插入/底行模式,进入命令行模式;
    • 命令模式下输入:进入底行命令行模式。

命令模式

命令模式是vim打开时默认的模式,在命令模式下所有的输入,都被当做命令命令来看待。除非你输入了模式切换的命令。

插入模式

光标定位

  1. shift+$定位到所在行结尾
  2. shift+^定位到所在行的开头
  3. shift+g定位到文本结尾行
  4. n+shift+g定位到文本第N行
  5. gg定位到文本第一行
  6. h,j,k,l上下左右

复制粘贴删除撤销

  1. yy复制当前行
  2. n+yy复制当前行及以下n-1行,共n行
  3. p粘贴
  4. n+p粘贴n行
  5. u撤销编辑操作
  6. ctrl+r对撤销操作进行撤销
  7. dd删除所在行/剪切所在行(dd之后p进行剪切粘贴)
  8. n+dd删除n行/剪切n行

替换

  1. shift+~大小写快速切换
  2. r+*将光标所在字符替换为*
  3. n+r+*将光标所在后n个字符替换为*
  4. shift+r(R)进入替换模式(ESC退出替换模式)

删除

  1. x删除光标所在字符
  2. n+x删除光标所在向后n个字符
  3. shift+x删除光标所在左侧字符
  4. n+shift+x删除光标所在左侧n个字符

查找

  1. shift+#高亮要查找的函数名/类名/字符串名
  2. n下一个查找到的函数名/类名/字符串名

底行模式

底行模式中,在输入指令时开头需要先输入`:`

保存退出

  1. :w保存
  2. :q退出
  3. :w!强制保存
  4. :q!强制退出
  5. :wq保存并退出
  6. :wq!强制保存并退出

行号

  1. set + nu开启行号
  2. set + nonu取消行号

查找

  1. /printf在当前文件中搜索printf
  2. ?printf在当前文件中搜索printf

多开

  1. vs filename将当前文件与filename文件进行对比
  2. ctrl+w+w在多个窗口中进行切换光标(光标在哪个界面就是在年纪哪个界面的文件)

其他

  1. vim filename n在打开filename文件时,光标直接定位在第n行
  2. shift+z+z强制保存并退出vim(不建议)

视图模式

在命令模式下使用`CTRL+v`进入视图模式

注释

  1. 批量化注释
    1. ctrl+v
    2. hjkl区域选择
    3. shift+i
    4. //
    5. ESC
  2. 批量化去注释
    1. ctrl+v
    2. hjkl区域选择
    3. d

异常

vim没有正常退出(异常退出),vim会自动将你未保存的文件,保存到一个临时的隐藏文件中,再你下一次使用vim的时候,会每次都进行提示你。

vim配置

原生vim在启动的时候会读取当前用户下的配置文件。

普通用户
vim的配置文件通常存放在当前用户的家目录下的隐藏文件.vimrc
当在这个用户下使用vim时,vim会默认使用这个用户的家目录下的.vimrc配置文件,来配置启动vim

.vimrc

 "====== Basic Configuration ======                                                                                                                           
set number             		 " 显示行号
set cursorline             	 " 突出显示当前行
hi Cursorline cterm=bold ctermbg=black ctermfg=green guibg=green "粗体显示选中行,用黑色框,字体标绿
set cursorcolumn             " 设置列高亮 
hi Cursorcolumn cterm=bold ctermbg=black ctermfg=green guibg=green "粗体显示选中列,用黑色框,字体标绿
set autoindent 		         " 自动缩进
set cindent
set tabstop=4 				 " Tab键的宽度
set softtabstop=4 		     " 统一缩进为4
set shiftwidth=4
set noexpandtab 			 " 不要用空格代替制表符 或者使用expandtab将tab保存为space
set smarttab 			     " 在行和段开始处使用制表符
set ignorecase 			     "搜索忽略大小写
set hlsearch 			     "搜索逐字符高亮
set incsearch 				 "增强搜索
set smartindent 			 " 提供自动缩进
syntax on					 " 语法高亮


" 突出显示81列
set textwidth=80
set colorcolumn=+1

nnoremap <c-n> :tabnext<cr>    "切换下一个使用:tabe打开的tag页 映射为 ctrl+n
nnoremap <c-p> :tabprev<cr>    "切换上一个使用:tabe打开的tag页 映射为 ctrl+p

root用户
root用户的vim配置文件在/etc/vimrc

vim插件

VimForCpp: 快速将vim打造成c++ IDE (gitee.com)

ps:本项目主要目标是帮助对vim配置方法不熟悉的新手封装的一键式vim环境安装包. 主要针对终端vim用户, 适合远程ssh连接Linux服务器进行开发的场景(例如使用阿里云服务器或者腾讯云服务器等).目前只支持 Centos7 x86_64。

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

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

相关文章

jmeter-while控制器用法

condition中添加while结束循环的条件&#xff0c;以下语句的意思是&#xff0c;当percent等于100时&#xff0c;就跳出while循环继续执行 ${__javaScript("${percent}" ! 100)} 举例&#xff0c;以下方法是getPercent为一个引出的异步接口&#xff0c;该接口的返回包…

uni-admin中引入uni-cms的缺少schema及uni-media-library缺少云函数的问题

1. 在管理端运行提示一些表找不到&#xff0c;因为是uni-admin关联的uni-starter的服务空间&#xff0c;在uni-admin的uniCloud中没有内容&#xff0c;在uni-starter的uniCloud中也没有发现对应的表&#xff0c;后面干脆在云端找到对应的表之后新建了&#xff0c;然后再下载到本…

盲人导航功能特点:革新出行体验的实时避障应用深度解析

作为一名资深记者&#xff0c;我有幸亲历并详尽报道一款专为盲人群体设计的导航应用叫做蝙蝠避障&#xff0c;它不仅提供了精准的路线指引&#xff0c;更创新性地融入了实时避障功能。这款应用凭借其盲人导航功能特点&#xff0c;正以前所未有的方式提升盲人的出行自由度与安全…

https证书是什么,怎么申请

https证书的名称有很多&#xff0c;其本名是SSL/TLS数字证书&#xff0c;本意是实现https访问的证书&#xff0c;故而很多人会称之为https证书&#xff0c;又因为其需要部署于域名服务器之上&#xff0c;所以也有人称之为域名证书。 所以https证书又名SSL证书、域名证书等。 h…

【Web】Dest0g3 520迎新赛 题解(全)

目录 phpdest EasyPHP SimpleRCE funny_upload EasySSTI middle PharPOP ezip NodeSoEasy Really Easy SQL&easysql EzSerial ljctr phpdest 尝试打pearcmd&#xff0c;但似乎没有写文件的权限 ?config-create/&file/usr/local/lib/php/pearcmd.php&a…

FreeRTOS_day3

1.总结任务调度算法之间的区别&#xff0c;重新实现一遍任务调度算法的代码。 抢占式调度&#xff1a;高优先级的任务可以打断低优先级的任务执行 时间片轮转&#xff1a;相同优先级的任务有相同的时间片&#xff08;1ms&#xff09;&#xff0c;时间片耗尽任务会强制退出 协…

2024 抖音欢笑中国年(五):Wasm、WebGL 在互动技术中的创新应用

前言 随着 Web 前端技术的不断发展&#xff0c;越来越多的新兴技术方案被引入到 Web 开发中&#xff0c;其中 Wasm 和 WebGL 作为前端领域的两大利器&#xff0c;为开发者带来了更多的可能性。 本文将结合2024 年抖音欢笑中国年的部分项目&#xff0c;重点介绍如何利用 Wasm 和…

前端三剑客 HTML+CSS+JavaScript ② HTML相关概念

他们这样形容我 是暴雨浇不灭的火 —— 24.4.18 学习目标 理解 HTML的概念 HTML的分类 HTML的关系 HTML的语义化 应用 HTML骨架格式 sublime基本使用 一、HTML初识 HTML指的是超文本标记语言&#xff0c;是用来描述网页的一种语言 HTML不是一种编程语言&#xff0c;而是一种标记…

C语言开发的医学影像数字化PACS系统源码 带三维重建和还原的PACS源码

C语言开发的医学影像数字化PACS系统源码 带三维重建和还原的PACS源码 PACS全称Picture Archivingand Communication Systems。它是应用在医院影像科室的系统&#xff0c;主要的任务就是把日常产生的各种医学影像&#xff08;包括核磁&#xff0c;CT&#xff0c;超声&#xf…

CSS基础+基本选择器和复合选择器(如果想知道CSS的基础+基本选择器和复合选择器知识点,那么只看这一篇就足够了!)

前言&#xff1a;在我们学习完了html之后&#xff0c;我们就要开始学习三大件中的第二件—CSS&#xff0c;CSS 可以控制多重网页的样式和布局&#xff0c;也就是将我们写好的html代码加上一层华丽的衣裳&#xff0c;使网页变得更加精美。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨…

halcon瓶身表面缺陷检测-滤波差值法

前言 在瓶子&#xff0c;灌装产业中&#xff0c;通常需要瓶子的瓶身进行检测&#xff0c;防止其出现划痕&#xff0c;破洞等情况。但是通常瓶身出现的缺陷都非常小&#xff0c;往往只是一些细小的划痕&#xff0c;这种情况就非常容易被误判为OK情况。 所以采用滤波差值法&…

Stability AI 发布 SD3 API:开启人工智能新篇章

文章目录 1.Stable Diffusion 3 API开放了! 2.Stability AI Document地址3.获取API Key4.API方式调用SD3出图接口地址接口请求规范接口请求响应结果 5.Stable Diffusion 3.0、Stable Image Core、Fooocus 2.3.1、MidJounery效果查看 1.Stable Diffusion 3 API开放了! Stabilit…

js高级 笔记02

目录 01 object提供的一些静态方法 02 词法作用域 03 作用域链 04 arguments的使用 05 开启严格模式 06 高阶函数 07 闭包 01 object提供的一些静态方法 Object.create() 对象继承 Object.assign(对象1,对象2) 对象合并 可以将对象2 里面的可枚举属性和自身的属性合并到…

压缩感知的概述梳理(3)

参考文献 Adaptive embedding: A novel meaningful image encryption scheme based on parallel compressive sensing and slant transform 文献内容 梳理 列表形式 并行压缩感知核心元素与流程 信号 x 长度&#xff1a;N表示&#xff1a;(x \sum_{i1}^{N} a_i\psi_i \su…

软件测试面试:关键问题解析

在软件开发领域&#xff0c;测试是确保软件质量的重要环节。面试是评估软件测试人员技能和经验的关键时刻。在一个软件测试面试中&#xff0c;面试官通常会问一系列问题来评估面试者的知识、技能和解决问题的能力。本文将介绍一些常见的软件测试面试问题&#xff0c;并给出一些…

电脑开不了机?不要慌,三招教你快速解决!

电脑开不了机是我们在日常使用中可能遇到的一个严重问题&#xff0c;它会影响我们的工作和生活。了解如何解决电脑开不了机的问题对于维护电脑正常运行至关重要。本文将介绍三种常见的解决电脑开不了机的方法&#xff0c;帮助您快速恢复电脑的正常使用。 方法1&#xff1a;检查…

刷题日记——进制转换3(机试)

题目——进制转换3 锲而不舍——先给自己立一个纪念碑 思路 根据输入信息&#xff0c;将输入值从m进制转换成10进制将10进制数据转换成n进制数据输出 输入值从m进制转换成10进制 将输入值视作字符串 依次取出字符串字符&#xff0c; 如果是数字&#xff1a; 减去‘0’得到真…

初识 React:安装和初步使用指南

文章目录 前言一、React 是什么&#xff1f;1.组件化开发2.虚拟 DOM3.单向数据流4.生态系统丰富 二、安装1.准备工作2.下载react 三、探索 React 应用总结 前言 在当今的 Web 开发领域&#xff0c;React 已经成为了一个备受推崇的技术。它的组件化、灵活性和高效性使得它成为了…

栅格地图、障碍物地图与膨胀地图(栅格地图)

在ROS中&#xff0c;地图是非常基本的元素&#xff0c;特别对于2D激光SLAM而言&#xff0c;栅格地图可以说是必不可少的元素。机器人在需要前往目标点时&#xff0c;需要在栅格地图中找到一条合适的路径从当前点到达目标点&#xff0c;这部分内容在move_base中有了详细的接口&a…

MySql数据库从0-1学习-第五天事务和索引

事务 事务 是一组操作的集合&#xff0c;它是一个不可分割的工作单位。事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求&#xff0c;即这些操作 要么同时成功&#xff0c;要么同时失败。 注意事项,默认事务是自动提交的,也就是说,当执行一条DML语句,MySql会立即隐…