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

Vim使用技巧——第一章 Vim解决问题的方式

1、认识 . 命令

. 命令可以“重复上次修改”。

x 会删除光标下字符

u 撤销上次下修改

dd 删除当前行

>G 增加从当前行到文档末尾的缩进层级

. 命令是一个微型的宏

2、不要自我重复

对于在行尾添加内容的常见操作,如添加分号,vim提供了合并操作。

a 在当前光标之后添加内容

A($a) 在当前行的结尾添加内容

复合命令等效的长命令效果
Cc$将光标所在位置到行尾的内容删除,并插入
scl删除光标下的字符,并进入插入模式
S^C删除光标所在行的所有内容,并进入插入模式
I^i跳转到下一个插入位置
A$a光标移动到当前行的末尾,并进入插入模式
oA<CR>~
Oko在当前行的上方插入一个新行,并进入插入模式

3、以进为退

在一个字符前后各添加一个空格。

f{char} 查找下一个字符出现位置

;重复查找上次 f 命令所查找的字符

s 删除当前下光标字符,并进入插入模式

;带到下一个目标字符,. 重复上次修改

4、执行、重复、回退

除了.命令可以重复以外,@:可以用来重复任意Ex命令,也可以&来重复上次的:substitute命令

对于.命令而言,可以按u撤销上次的修改。

使用f{char}命令之后,可以用回跳,反方向查找上次f{char}所查找的字符。

表 1-1 可重复的操作及如何回退

目的操作重复回退
做出一个修改{edit}.u
在行内查找下一指定字符f{char}/t{char};,
在行内查找上一指定字符F{char}/T{char};,
在文档内查找下一处匹配项/pattern<CR>nN
在文档内查找上一处匹配项?pattern<CR>nN
执行替换:s/target/replacement/g&u
执行一些列修改qx{changes}q@xu

5、查找并手动替换

:%s/target/replacement/g 一次性替换所有,/g:这个标志表示替换操作是全局的,即在每一行中所有出现的 target 都会被替换。如果省略 g,只会替换每行中的第一个匹配项。

但有些时候你不想进行全局替换?

* 可以查找当前光标下的单词,n会跳到下一个匹配项。

cw会删除从光标位置到单词结尾间的字符,并进入插入模式。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 力扣 11.盛最多水的容器
  • jpa适配mysql切换达梦可能的坑
  • IBM 撤出背后:国内技术人如何突围?
  • 第157天: 安全开发-Python 自动化挖掘项目SRC 目标FOFA 资产Web 爬虫解析库
  • 系统架构设计师 云原生架构篇
  • java框架
  • 关于若尔当矩阵中过渡矩阵的求法
  • 记录一下gitlab社区版的安装教程
  • 几种手段mfc140u.dll丢失的解决方法,了解mfc140u.dll
  • 我的AI工具箱Tauri版-FunAsr音频转文本
  • 什么是SERP?有什么用?
  • 视频服务器:GB28181网络视频协议
  • 【人工智能】Transformers之Pipeline(十八):文本生成(text-generation)
  • MongoDB事务机制
  • 88年,36岁,中年失业在家,如何缓解焦虑?
  • [译]前端离线指南(上)
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【面试系列】之二:关于js原型
  • Docker 笔记(2):Dockerfile
  • Fastjson的基本使用方法大全
  • JavaScript 一些 DOM 的知识点
  • TypeScript迭代器
  • WebSocket使用
  • 回顾2016
  • 基于axios的vue插件,让http请求更简单
  • 使用docker-compose进行多节点部署
  • 数组的操作
  • 在Mac OS X上安装 Ruby运行环境
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (13):Silverlight 2 数据与通信之WebRequest
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (c语言)strcpy函数用法
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (八)c52学习之旅-中断实验
  • (补充)IDEA项目结构
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (一)为什么要选择C++
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转载)Linux网络编程入门
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .net程序集学习心得
  • .NET处理HTTP请求
  • .net解析传过来的xml_DOM4J解析XML文件
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [20190401]关于semtimedop函数调用.txt
  • [C++]多态
  • [EFI]DELL XPS13 9360电脑 Hackintosh 黑苹果efi引导文件
  • [I2C]I2C通信协议详解(二) --- I2C时序及规格指引