当前位置: 首页 > news >正文

vim使用技巧

一、移动

1、正常模式下,以区块为单位移动

  • 光标位置左,下,上,右:h 、 j  、k 、 l
  • 整行跳转
    • gg:快速跳转到第一行
    • 数字+gg:跳转到数字行
    • G:跳转到最后一行
  • 半页跳转
    • ctrl + u / b:往上翻半页/一页
    • ctrl + d / f:往下翻半页/一页
    • zz / zt /zb : 光标所在行放到屏幕居中、第一行、最后一行

2、以单词为单位移动

  • 2w:使光标向后移动两个单词
  • 3e:使光标向后移动到第三个单词的末尾
  • 2b:向前移动到前一个单词的开始
  • ge:向前移动到前一个单词的末尾
  • 输入 0 (数字零) 移动光标到行首

二、删除

正常模式下,单个删除

  • x 键:删除光标所在位置的字符
  • dw :从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符
  • de :从当前光标当前位置直到单词末尾,包括最后一个字符
  • d 数字 w/e:一次删除多个单词

正常模式下,行删除

  • d 数字 $:从光标处删除到指定行行末
  • d$ :从当前光标当前位置直到当前行末
  • dd :删除当前行
  • 数字 dd:删除多行

三、插入

正常模式下,中间插入

  • i:insert,当前光标之前插入
  • a:append,在光标之后插入(光标后移一位,然后在光标前插入内容)
  • s:select,删除当前光标指向的字符,然后开始输入

正常模式下,行插入

  • I:在本行开头输入
  • A:在本行末尾输入
  • o:open,在下面插入一行开始输入
  • O:在上方插入一行开始输入
  • S:删除当前行开始输入

四、撤销

  • 输入 u 来撤消最后执行的命令,ctrl + r 重做
  • 输入 U 来撤消对整行的修改,u可以撤销U做的修改

五、替换

  • 空白替换:按下 p 将最后一次删除的内容复制到光标后
  • 连续替换:按下 R 可以连续替换多处文本
  • 剩余替换
    • 按下 r + 替换字符,替换光标所在位置的字符
    • ce/cw:单词剩余替换,从光标所在位置直至单词末尾替换
    • c$:本句剩余替换,从光标位置到句子的结尾删除,插入
  • 替换命令
    • :s/old/new/g 可以替换 old 为 new
    •  :#,#s/old/new/g   其中 #,# 代表的是替换操作的若干行中首尾两行的行号
    •  :%s/old/new/g     则是替换整个文件中的每个匹配串 
    •  :%s/old/new/gc   找到整个文件中的每个匹配串,并且对每个匹配串提示是否进行替换

六、查找显示

  • CTRL-G :显示当前编辑文件中当前光标所在行位置以及文件状态信息
  •  G :直接跳转到文件中的某一指定行,数字 + G:跳转到固定行
  • %:光标放在括号上,点击 % 可以查找配对的括号 )、]、}
  •  ? 然后紧随一个字符串:是在当前所编辑的文档中反向查找该字符串
  •  / 然后紧随一个字符串:在当前所编辑的文档中正向查找该字符,按 n 可再次查找
    • 重复查找:可以重复按 n 键
    • 忽略大小写: :set ic (Ignore Case,忽略大小写)
    • 高亮符合的所有项: :set hls (hlsearch,高亮显示)
    • 高亮显示当前项::set is (incsearch,增量搜索)
    • 选项前加no,关闭设置:如要禁用忽略大小写,输入: :set noic

七、文件命令

  • 文件保存:将对文件的改动保存到文件中,请输入 :w FILENAME
  • 可视化保存:选中开头,v 键,下移光标,选中想要保存的内容,w TEST 保存为 TEST,使用 :!dir 或 :!ls  确认文件被正确保存
  • 插入文件:要将对文件的改动保存到文件中,请输入 :w FILENAME
  • 命令文件::r !dir 将shell在的dir执行的结果插入当前光标的后面
  • 复制粘贴:使用操作符 y 复制文本,使用 p 粘贴文本
  • 补全命令:按 CTRL-D 可以查看可能的补全结果,按 <TAB> 可以使用一个补全

八、其他命令

  • 执行外部命令:正常模式下,输入 :! 然后紧接着输入一个外部命令可以执行该shell命令
  • 查看帮助:按下 help 键或者 F1,或者输入  :help <回车>,如   :help user-manual
  • 在窗口间跳转:ctrl + w
  • 各系统打开vim
    • :edit ~/.vimrc            Unix 系统所使用的命令
    • :edit $VIM/_vimrc    MS-Windows 系统所使用的命令
    • 读取 vimrc 示例文件的内容::r $VIMRUNTIME/vimrc_example.vim
    • 保存文件: :write

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Mysql-窗口函数一
  • Animate软件动画类型简介
  • LabVIEW水下根石监测系统
  • redis面试(四)持久化
  • Vulnhub靶场DC-9练习
  • 软件开发人员如何有效提问
  • Linux系统
  • 如何判断机器学习模型的好坏之分类模型
  • 哪个电脑桌面便签好用并且无广告弹窗?
  • org.springframework.web.client.HttpClientErrorException$NotFound异常
  • Java企业微信服务商代开发获取AccessToken示例
  • 《Linux系统开发入门定制专栏导读》
  • 白骑士的PyCharm教学高级篇 3.3 Web开发支持
  • 网安新声 | 微软蓝屏事件安全启示录
  • RpcProvider发送Rpc服务一
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 「译」Node.js Streams 基础
  • 0基础学习移动端适配
  • 78. Subsets
  • css选择器
  • Java 内存分配及垃圾回收机制初探
  • Markdown 语法简单说明
  • ng6--错误信息小结(持续更新)
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • underscore源码剖析之整体架构
  • Webpack 4x 之路 ( 四 )
  • 翻译:Hystrix - How To Use
  • 那些被忽略的 JavaScript 数组方法细节
  • 如何利用MongoDB打造TOP榜小程序
  • 数组的操作
  • HanLP分词命名实体提取详解
  • 数据可视化之下发图实践
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ![CDATA[ ]] 是什么东东
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #NOIP 2014#Day.2 T3 解方程
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (Charles)如何抓取手机http的报文
  • (C语言)字符分类函数
  • (MATLAB)第五章-矩阵运算
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (void) (_x == _y)的作用
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (二)fiber的基本认识
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (一)Docker基本介绍
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]