vim 文本行逆序化

要求

示例:将文本

1234

123

12

1

转换成

1

12

123

1234

命令

:g/.*/mo0

或者

:g/^/mo0

补充说明

原理是从第一行开始,匹配每一行,然后执行mo(move)操作移动到第0行。如此处理每一行,直到文本末行。执行完毕文本逆序化成功!

时间: 2024-12-26 05:23:16

vim 文本行逆序化的相关文章

字符串旋转词、句子逆序化、字符串移位、最小字典序字符串问题

一:旋转词 把字符串前面任意部分挪到后面叫做词的旋转,如:1234->2341->3412.... 给定两个词,判断是否互为旋转词. 规律:只要把字符串A自身拼接到A末尾,那么A的旋转词都包含在A+A中了,所以只需在A+A中找B是否存在即可. 如:1234+1234=12341234 A的旋转词有:2341.3412.4123,分别对应12341234.12341234.12341234 public boolean chkRotation(String A, int lena, String

ubuntu下vim及man帮助文档的汉化

vim是一个功能超级强大的编辑器,当然我们也可将它配置超强的IDE.这类教程网上非常多,我就不再此赘述了. 我们在使用中对不熟悉的命令,不熟悉的插件的使用方法常常须要查看文档,全英文环境确实看着人头都大了.为此,特地 找了个汉化的文档,,点击这里能够下载文件. 首先我们应在用户主目录下建立.vim/目录.vimrc隐藏文件,并依次建立.vim/doc/      .vim/plugin 目录 [plain] view plaincopyprint">? mkdir ~/.vim mkdir

链表逆序+判断链表是否回文

单链表逆序详解 1.具有链表头的单链表 假设需要逆序的单链表为: 则逆序以后的链表为: 过程: (1)取p1指向header->next (p1=stu->next);p2保留p1->next(p2=p1->next);将p1->next置为NULL,因为单链表逆序以后,当前的p1节点为尾节点 p1->next=NULL; (2)取p3保留p2->next (p3=p2->next);将p2插入p1之前(p2->next = p1);p1指向p2指向的

Extend to Palindrome (顺序Hash和逆序Hash处理回文)

题目链接:https://vjudge.net/contest/344930#problem/E 题目大意:给出一个字符串,在末尾补充最少的字母,使其整个成为一个回文串 题目思路:对字符串进行顺序Hash和逆序Hash,然后去枚举位置,如果此时顺序的Hash和逆序的Hash值想等就说明此时是一个回文串.然后就直接输出该回文串前面的部分,再输出该回文串.如果没有回文串,那么就使整个字符串成为回文串 1 #include <stdio.h> 2 #include <algorithm>

51Nod 1020 逆序排列

 1020 逆序排列 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数. 如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序数是4. 1-n的全排列中,逆序数最小为0(正序),最大为n*(n-1) / 2(倒序) 给出2个数n和k,求1-n的全排列中,逆序数为k的排列有多少种? 例如:n = 4 k = 3. 1 2 3 4的排列中逆序为3的共有6个,分别是: 1 4 3 2 2 3 4 1

算法初级面试题08——递归和动态规划的精髓、阶乘、汉诺塔、子序列和全排列、母牛问题、逆序栈、最小的路径和、数组累加成指定整数、背包问题

第八课主要介绍递归和动态规划 介绍递归和动态规划 暴力递归: 1,把问题转化为规模缩小了的同类问题的子问题 2,有明确的不需要继续进行递归的条件(base case) 3,有当得到了子问题的结果之后的决策过程 4,不记录每一个子问题的解 动态规划 1,从暴力递归中来 2,将每一个子问题的解记录下来,避免重复计算 3,把暴力递归的过程,抽象成了状态表达 4,并且存在化简状态表达,使其更加简洁的可能 图灵引入的是:我不知道怎么算,但是我知道怎么试.知道怎么暴力破解出来. 要学会,练习懂得怎么尝试.

逆序单词 HIhoCoder 1366 字典树

逆序单词 HIhoCoder 1366 字典序 题意 在英文中有很多逆序的单词,比如dog和god,evil和live等等. 现在给出一份包含N个单词的单词表,其中每个单词只出现一次,请你找出其中有多少对逆序单词. 第1行:1个整数,N,表示单词数量.2≤N≤50,000. 第2..N+1行:每行1个单词,只包含小写字母,每个单词长度不超过16个字母.保证每个单词只出现一次,且不会出现回文单词(即一个单词倒序还是它自己,比如eye). 输出第一行是个整数,表示单词表中的逆序单词的对数. 解题思路

Java例题_31 逆序输出数组的值

1 /*31 [程序 31 数组逆序] 2 题目:将一个数组逆序输出. 3 程序分析:用第一个与最后一个交换. 4 */ 5 6 /*分析 7 * 第一种方法:找到这个数组的中间下标,然后交换两端的数字,再顺序输出数组=====我觉得麻烦了 8 * 第二种方法:利用a.lengh找到数组的最后一个值,直接用递减的for循环,逆序输出 9 * */ 10 11 package homework; 12 13 public class _31 { 14 15 public static void m

(单链表)单链表的整体逆序和局部逆序

题目一:将单链表翻转. 思路:有三种方式. 一:用数组存储单链表的值,然后重新逆序赋值,效率较低. 二:利用三个指针,在原来的基础上进行逆序.这种方法比较实用,效率也高. 三:从第2个节点到第N个节点,依次逐节点插入到第1个节点(head节点)之后,最后将第一个节点挪到新表的表尾.需要新建一个链表,这种方法和第二种差不多. 这里我就写出第二种方法,比较实用. 代码(方法二): struct ListNode { int val; ListNode *next; ListNode(int x) :