VIM总能给你惊喜 之 颠倒行序

【Mastering Vim 2_08】第七章:Vim 的个性化配置 本篇为《Mastering Vim》全新第2版第7章自学笔记,主要梳理了 Vim 个性化定制的几个常用的配置方案,如 colorscheme 配色方案、background 背景主题、状态栏的增强、多端 vimrc 文件的同步等等,并结合自身实战过程中遇到的问题进行了归纳整理。本篇实战性和实用性都很强,感兴趣的朋友赶紧收藏起来,是您打造属于自己的 Vim 界面和工作流程的绝佳参考。 阅读详情

今天用vim写代码,其中有个比特域,由于他们在大小端不同的情况下定义不同。

如


struct test {
#if defined(__LITTLE_ENDIAN_BITFIELD)
    uint8_t      a:1,
                 b:1,
                 c:1,
                 d:1,
                 e:1,
                 f:1,
                 g:1,
                 h:1;
#elif defined(__BIG_ENDIAN_BITFIELD)
    uint8_t      h:1,
                 g:1,
                 f:1,
                 e:1,
                 d:1,
                 c:1,
                 b:1,
                 a:1;
#else
#error  "Please fix ENDIAN_BITFIELD"
#endif
};


在输入完小端模式后,在输入大段的定义很麻烦,要把每一行都反序。

研究了一下,果然VIM里面还是有捷径的。这就是VIM的哲学,也是UNIX的哲学,有些设计者都没想到的功能都能实现。


步骤:

输入完小端的代码。

用SHIFT + v 进入行选模式。选中小端代码

按y复制,到大端下面按p粘帖。

再用SHIFT+v 选中大端下面要反序的代码,输入  : (冒号) 进入命令模式

输入命令  !tac按回车。完成行反序



原理。

tac其实是unix下的行反序命令。通过!tac把选中的行重定向到tac命令的标准输入,并把标准输出重定向回来替换掉以前的内容。


祝大家用VIM开心。

【NLP】语言模型的发展历程 (1) N-gram模型是一种基于统计语言模型的文本分析算法,它用于预测文本中下一个词出现的概率,基于前面出现的n-1个词的序列。这里的n代表序列中元素的数量,因此称为N-gram。Unigram:N=1,每个单词的出现概率独立计算,不考虑上下文。Bigram:N=2,基于前一个单词预测当前单词的联合概率模型。Trigram:N=3,考虑前两个单词来预测当前单词的联合概率模型,更复杂但可能更准确。 阅读详情

相关推荐

LVGL开发新选择:深度对比NXP GUI Guider与SquareLine Studio,免费版够用吗?

本文深度对比了LVGL开发中两款主流工具NXP GUI Guider与SquareLine Studio的核心差异,包括功能定位、设计能力、代码生成质量和硬件适配等方面。针对不同项目需求,分析了免费版工具的适用性,帮助开发者根据预算和功能需求做出明智选择。特别关注了GUI设计工具在嵌入式开发中的实际应用效果。

weixin_26976635的博客 426

【VIM】将选中行顺序倒置

!tac。

helloworld573的博客 1593

Qupath软件的安装与使用

Qupath软件的安装与使用软件安装软件下载软件安装【windows版】简单使用文件打开人工标注标注导出和导入 Qupath是一款开源的医学图像标注软件,适合放射影像及数字病理切片等的查看。同时,其自带的标注功能使得医生可以直接通过该软件进行病变区域的标注和分类。跟进一步的,该软件提供groovy脚本运行接口,可供操作者编写和运行脚本,将标注信息转换为xml或者json格式的数据进行进一步的后序处...

qq_40662074的博客 3万+

vim 文本行逆序化

要求示例:将文本 1234 123 12 1 转换成 1 12 123 1234命令:g/.*/mo0 或者 :g/^/mo0补充说明 原理是从第一行开始,匹配每一行,然后执行mo(move)操作移动到第0行。如此处理每一行,直到文本末行。执行完毕文本逆序化成功!

my_live_123 8724

视觉惯性SLAM系列——ORB-SLAM3的整体介绍及各个线程的功能(五)

跟踪线程(Tracking Thread)作用:负责处理每一帧图像,进行相机位姿的估计和定位。它首先执行与前一帧图像的特征匹配,然后通过仅运动(motion-only)BA(Bundle Adjustment)优化位姿。如果跟踪失败,它会尝试在所有地图中进行重定位。此外,跟踪线程还负责决定何时插入新的关键帧,以及何时将关键帧从局部地图中移除。详细介绍见局部建图线程(Local Mapping Thread)作用:管理局部地图,向活跃地图添加关键帧和点,移除多余的关键帧和点。

曾经也曾立志 1004

Codex接入CCSwitch:本地代理与模型路由配置指南

在AI编程工具链中,本地代理与模型路由是连接智能体与模型服务的核心桥梁。Codex作为OpenAI推出的编程智能体,虽然具备强大的仓库理解和自主编码能力,但其默认模型链路固定,导致在多模型切换、内网统一管理及成本控制上存在天然瓶颈。CCSwitch正是为解决这一痛点而生的本地代理工具,它通过OpenAI兼容协议将Codex的请求透明转发至DeepSeek、通义千问等第三方模型服务,使模型切换如同点击按钮般简单。本文从本地代理和模型路由器的基础原理切入,系统讲解Codex与CCSwitch的安装配置、模型ID

weixin_33910460的博客 427

vim 排序/去重/数列/buffer/行反序

1.排序 :sort 2.去重: :g/^\(.*\)$\n\1$/d //去除重复行,亲测可用 :g/\%(^\1$\n\)\@<=\(.*\)$/d //功能同上,也是去除重复行 :g/\%(^\1\>.*$\n\)\@<=\(\k\+\).*$/d //功能同上,也是去除重复行 3.产生数列: 效果如下图: ...

cy413026的博客 4322

Modbus 通信协议详解

Modbus是由 Modicon(现为施耐德电气公司的一个品牌)在 1979 年发明的,是全球第一个真正用于工业现场的总线协议。ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。为更好地普及和推动Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给 IDA(,分布式自动化接口)组织,并成立了 Modbus-IDA 组织。

Projectsauron 的博客 7万+

VIM的正则表达式

使用正则表达式的命令 元字符 表示数量的元字符 表示位置的符号 替换变量 函数式 与Perl正则表达式的区别 Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操作。如果你比较熟悉Perl的正规表达式,可以直接参照

EndAll的专栏 2784

PID循迹控制算法

前言  让小车进行循迹最重要的是获取车相对于循迹线的位置,关于循迹模块的原理我已经在之前的一篇博客上讲过,如果大家没看过的话可以点此链接:PID循迹模块原理。 PID循迹原理简介 图1 循迹车寻线行走图示 图2 市场常见循迹传感器  PID循迹的原理我们大致可以用常识性思维去思考下,如图1所示为循迹车寻线行走图示,现在小车要按照中间那条黑线循迹行走,如果车头往左偏则需要控制方向盘让车往右转,车头往又偏则需要让车往左转。但是仅仅只有左转和右转的话,车一到左边就向右转,一到右边就向左转,则车会来回在线左右晃动

Dinvent的博客 7万+

12、认知地图的建模与学习

本博客系统介绍了认知地图的定义、背景及其在机器智能领域的应用,重点探讨了模糊认知地图(FCMs)的建模方法与优势。文章还对比分析了几种主流的认知地图模型(如Axelrod模型、Kosko模型等),并讨论了模型的稳定性条件及实际应用前景。通过智能制造和医疗诊断的具体案例,展示了认知地图在复杂因果推理中的强大能力,并提出了模型优化方向与未来研究展望。

plant的博客 209

vim 使用技巧

1. 使用 * 键可以向后搜索光标所在位置的单词。反之,使用 # 键可以向前搜索光标所在位置的单词。第一次使用 * 或者 # 进行搜索之后,则可以使用 N 或 Shift-N 继续进行搜索。另外,如果设置了hlsearch选项(:set hlsearch)的话,那么使用 * Shift-N 则可以标记当前的单词为高亮显示。2. 经常会遇到这样的情况,就是在命令行上输入含有一个长长的路径的命令

dllbl的专栏 692

51单片机 步进电机正反转控制+Proteus仿真

51单片机 步进电机正反转控制+Proteus仿真 Proteus仿真 实例代码 /*************** ******************/ #include <reg52.h> #define uint unsigned int #define uchar unsigned char uchar code FFW[]= { 0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09 }; uchar code REV[]= { 0x09,0x

perseverance51博客 2787

vim 颠倒

替换: :%s/ \(.*\), \(.*\)/\2, \1/gc 非贪心匹配(包括换行): \(.\|[\r\n]\)\{-} 贪心匹配: \(.\|[\r\n]\)* ------------------------------------------------------------------------------------------------

t9010的专栏 784

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

vim的正则表达式(二)应用实例

本文出自   http://blog.youkuaiyun.com/shuangde800 ------------------------------------------------------------------------------------------------ 本文的例子都是实践过的,如有错误,请指正  本文约定: $ + 命

D_Double's Journey 3185

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Vim (五) 三种可视模式

Vim 有三种可视模式,面向字符的,面向行的,和面向列块的。 可视模式的作用,是让我们选中一块区域,并且在该区域上进行操作。

xiaorenwuzyh的专栏 4451

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

vim全局替换命令及正则表达式

from:http://andyss.blog.51cto.com/315552/131652 全局替换命令格式: 用法为 :[addr]s/源字符串/目的字符串/[option] 全局替换命令为::%s/源字符串/目的字符串/g [addr] 表示检索范围,省略时表示当前行。 如:“1,20” :表示从第1行到20行; “%” :表示整个文件,

梦想照旧实现 1万+

vim批量替换

vim批量替换命令实践 语法为 :[addr]s/源字符串/目的字符串/[option] 全局替换命令为: :%s/源字符串/目的字符串/g [addr] 表示检索范围,省略时表示当前行。 “1,20” :表示从第1行到20行; “%” :表示整个文件,同“1,”;“.,”; “. ,”;“.,” :从当前行到文件尾; s : 表示替换操作 [option] : 表示操作类型 g 表示全局替换; c 表示进行确认 p 表示替代结果逐行显示(Ctrl + L恢复屏幕); 省略option时仅对每行第一个匹配串

weixin_49129782的博客 2722

vim 替换命令

vim全局替换命令 语法为 :[addr]s/源字符串/目的字符串/[option] 全局替换命令为::%s/源字符串/目的字符串/g [addr] 表示检索范围,省略时表示当前行。 如:“1,20” :表示从第1行到20行; “%” :表示整个文件,同“1,”;“.,”;“.,” :从当前行到文件尾; s : 表示替换操作 [option] : 表示操作类型 如:g 表示全局替换; c 表示进行确认 p 表示替代结果逐行显示(Ctrl + L恢复屏幕); 省略option时仅对每行第一个匹配串进行替换

taosimin87的专栏 1046

【linux】一文掌握 Vim 指令的详细用法(Vim 备忘速查)

数词指定了待编辑文本对象的数量,从这个角度而言,数词也可以看作是一种介词。有了这些基本的语言元素,我们就可以着手构造一些简单的命令了。名词代表了我们即将处理的文本。引号或者各种括号所包含的文本称作一个文本块。8.2 快速参考备忘单的有用集合,可帮助您更快地学习 vim 编辑器。另外,数词也可以修饰动词,表示将操作执行。动词代表了我们打算对文本进行什么样的操作。介词界定了待编辑文本的范围或者位置。文本块内部或周围使用。(折叠级别 += 1)(折叠级别 -= 1)(正在中止 Git)对文件中的行进行编号。

数据知道的博客 1万+

修改iterm登录到linux的ssh界面后vim的颜色

在fedora23的系统内使用konsole编辑源文件的高亮已经按照自己Identifier心愿修改了,用起来很舒服。但是在osx上通过iterm使用ssh登录后,再用vim打开源码文件,看起来很别扭。效果如下图: 背景是高亮的,文本文字是黑色的。整个给搞反了。于是仔细查看了~/.vim/color/bandit.vim整个文件,尝试修改了上图中的211行的内容,将FG和BG的参数调换了顺序,然后

What the Fuck 1292

vim编辑器常用指令梳理

操作 描述 gg 跳转到文件的第一行 GG 跳转到文件的最后一行 dd 删除光标所在的行 set nu 显示行号 nG 跳转到第几行,例如22G,表示跳转到22行 dd 删除光标所在的行 set nu 显示行号 A 定位到当前行的行末尾 i(I) a或者A定位到当前行的行首 :88 跳转到文件的88行 3dd 从当前行起删除3行 yy 复制一行 (nyy:复制n行) nyG或者ynG 复制到第n行,例如1yG或者y1G,复制到档尾 yw 复...

Neo 8156

vim替换命令

vim全局替换命令 语法为 :[addr]s/源字符串/目的字符串/[option] 全局替换命令为::%s/源字符串/目的字符串/g [addr] 表示检索范围,省略时表示当前行。 如:“1,20” :表示从第1行到20行; “%” :表示整个文件,同“1,”;“.,” :从当前行到文件尾; s : 表示替换操作 [option] : 表示操作类型 如:g 表示全局替换; c 表示进行确认 p 表示替代结果逐行显示(Ctrl + L恢复屏幕); 省略option时仅对每行第一个匹配串进行替换; 如果在源字

piece_66的博客 1045

Windows下使用vim的最佳方案:Sublime

From My Blog(http://bloglong123king.sourceforge.net/?p=110) 一、Sublime 很多人都称Sublime性感,我觉得挺贴切,尤其对于程序员而言。Sublime拥有很多实用的功能,可以到首页去看演示的动画(http://www.sublimetext.com/)。 二、Sublime打开vim模式 方法参照(http

Daniel King 3406

vim替换指定字符串

vim的搜索和替换 搜索中进行替换 /which #搜索which cwthat #替换成that n #重复搜索 . #重复替换 一种类型的替换命令 g/pattern/s/old/new/g 第一个 g 表示是有选择的操作, pattern 指定选择行的模式, s 表示替换操作, old 是要替换的内容,new

kaiyoushiwo007的专栏 4094

vim全局替换命令

vim全局替换命令 语法为 :[addr]s/源字符串/目的字符串/[option] 全局替换命令为::%s/源字符串/目的字符串/g [addr] 表示检索范围,省略时表示当前行。 如:“1,20” :表示从第1行到20行; “%” :表示整个文件,同“1,$”; “. ,$” :从当前行到文件尾; s : 表示替换操作 [option] :表示操作类型 如:g 表示全局替换; c 表...

大JAVA解决方案 268
上一篇: PF_RING DNA破解
下一篇: 透明是一切设计的最高目标
atomicfox
博客等级 码龄18年 16粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值