VIM中简化删除,光标移动和查找操作
#
一、命令行模式下简化删除
1. 向后删除单个字符:【x】
2. 向前删除单个字符:【X】
3. 删除从光标开始到单词结尾:【dw】
删除从光标后的2个单词:【d2w】
4. 删除整个单词:【daw】
仅当光标停留在一个单词开头,【dw】才能删除整个单词,否则只能删除一部分;而【daw】不考虑光标的停留位置,只要在该单词上,则会自动删除整个单词
5. 删除光标停留的那整行:【dd】
假设想连续删除多行,则用【4dd】连续删除4行
6. 从光标处往前删除单词:【db】
和【dw】的作用方向正好相反
7. 删除光标位置到本行开头:【d0】
8. 点命令【.】含义是重复上次修改,上次修改的单位可以是字符,整行,甚至整个文件。
因此如果删除整行【dd】,配合【.】也可以起到重复操作的目的。
点命令最大的用处在于,每次从输入模式到命令模式切换时,整个阶段vim会记录每一个按键操作,使用点命令可以重新执行所有的这些按键操作,就好像“一键回放”,我们可以把点命令当成一个宏。
比如要给结构体语句添上‘;’号
按照常规方法做会比较慢,这时候光标先移动到第一条语句上,【A】【;】【ESC】
再反复使用【j】【.】即可。
二、简化行光标移动
1. 光标移动到行尾 【】2.光标移动到行尾并进入输入模式,类似于【】2.光标移动到行尾并进入输入模式,类似于【】【a】: 【A】
3. 光标移动到行尾并回车,再进入输入模式,类似于【$】【enter】【a】: 【o】
小o的作用类似于新建一空白行
4. 光标移动到行首【^】
5. 光标移动到整个文件头部【gg】
6. 光标移动到整个文件尾部【G】
7. 跳转到指定的行
在编辑模式下,输入ngg,或者nG;在命令模式下输入行号 :n
(n为行号)
三、简化行内光标移动
1. 光标移动到单个字符:【f】,也用于查找。比如要在本行移动光标至字符处,直接【f】即可
2. 无需输入即可移动光标,查找:【*】
3. 【w】移动光标到下一个单词开头,【b】移动光标到上一个单词开头,两者均可跨行
4. 配合点命令【.】以及【*】星命令,就能实现快速的查找并替换。
首先在需要被替换的单词上按【*】,然后【a】修改第一个单词,完成后【ESC】,此时vim已经记住了操作,剩下的就是重复【n】查找下一个,【.】回放操作。
仔细体会vim对重复操作的简化,追求的是一键移动,一键操作修改。
VIM中简化删除,光标移动和查找操作的更多相关文章
- 在 Vim 中,删除 ^@ 符号的几种方法
在 Vim 中,^@ 表示 ASCII 码中的 NULL 字符,编码为 0x00,占用一个字节. 删除方法 方法1,采用 <CTRL-V><CTRL-J> 或 <CTRL ...
- linux 下vim中关于删除某段,某行,或者全部删除的命令 ZZ
1,先打开某个文件: vim filename 2,转到文件结尾 在命令模式输入 G 3,转到10行 在命令模式输入 10G 4,删除所有内容:先用G 转到文件尾,然后使用下面命令: :1, .d 5 ...
- linux 下vim中关于删除某段,某行,或全部删除的命令
1,先打开某个文件: vim filename 2,转到文件结尾 在命令模式输入 G 3,转到10行 在命令模式输入 10G 4,删除所有内容:先用G 转到文件尾,然后使用下面命令: :1, .d ...
- linux 下vim中关于删除某段,某行,或者全部删除的命令
- Zookeeper之Curator(1)客户端基本的创建,删除,更新,查找操作api
Curator Framework提供了简化使用zookeeper更高级的API接口.它包涵很多优秀的特性,主要包括以下三点: 自动连接管理:自动处理zookeeper的连接和重试存在一些潜在的问题: ...
- 解决vim中鼠标右键无法复制的问题
转:http://www.cnblogs.com/jianyungsun/archive/2011/03/19/1988855.html 这是我的vim配置文件:jeffy-vim-v2.4.tar ...
- 复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符及在vim中设置tab缩进为4个字符
1.复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符 在命令模式下,使用正则表达式匹配 行首有空白字符行的模式:^[[:space:]] ...
- vim复制,粘贴,删除,撤销,替换,光标移动等用法
我接触linux的时候,用的是nano这个文本编辑器,个人觉得他的最大优点就是方便,快速.打开文件,修改文件,到退出都十分的快速,简单.这一点上比vi,vim要强,但是nano不能显示彩色字,不能进行 ...
- Linux中在vim/vi模式下对文本的查找和替换
查找: 1.vim filename 进入一般模式下 2.查找和替换方法 /word 向下查找word 的字符串 例如 /chengtingting 向下查找字符chengtingt ...
随机推荐
- react组件中的类调用construcor、super方法你知道多少?
constructor:在类中作为一个钩子函数,有constructor钩子函数的时候,可以定义state,如果用户不定义state的话,有无constructor钩子函数没啥区别: super:
- Vue2技术整理3 - 高级篇 - 更新完毕
3.高级篇 前言 基础篇链接:https://www.cnblogs.com/xiegongzi/p/15782921.html 组件化开发篇链接:https://www.cnblogs.com/xi ...
- 前后端数据json交换的问题
问题1:前端发送给后端数据了,后端也接收到了,后端同时返回数据给前端了,但是前端的ajax请求中的success(data){}中的方法不执行 解决:排查了很多问题,结果都一一排除了,最后发现后端发送 ...
- JavaScript多元运算符
JavaScript多元运算符 JavaScript多元运算符 **实例:**` function test(9){ var a=4,b=11; return p > 1 ? p<b ...
- MySQL 日志管理及备份与恢复
MySQL 日志管理及备份与恢复 1.日志管理 2.备份与恢复 1.日志管理: MySQL的默认日志保存位置为/usr/local/mysql/data 日志开启方式有两种:通过配置文件或者是通过命令 ...
- Azure AD Domain Service(二)为域服务中的机器配置 Azure File Share 磁盘共享
一,引言 Azure File Share 是支持两种认证方式的! 1)Active Directory 2)Storage account key 记得上次分析的 "Azure File ...
- Feign实现动态URL
需求描述 动态URL的需求场景: 有一个异步服务S,它为其他业务(业务A,业务B...)提供异步服务接口,在这些异步接口中执行完指定逻辑之后需要回调相应业务方的接口. 这在诸如风控审核,支付回调等场景 ...
- 使用代码绑定 DataGridView 控件用于程序界面显示表格
需求 软件界面需要使用表格,对数据进行显示.交互,这是一个非常通用的需求. 实现方法 DataGridView介绍 参考 https://docs.microsoft.com/en-us/dotnet ...
- Python内置模块(re+collections+time等模块)
Python内置模块(re+collections+time等模块) 1. re模块 import re 在python要想使用正则必须借助于模块 re就是其中之一 1.1 findall功能( re ...
- SpringCloud微服务实战——搭建企业级开发框架(三十六):使用Spring Cloud Stream实现可灵活配置消息中间件的功能
在以往消息队列的使用中,我们通常使用集成消息中间件开源包来实现对应功能,而消息中间件的实现又有多种,比如目前比较主流的ActiveMQ.RocketMQ.RabbitMQ.Kafka,Stream ...