看到一不错的代码片断,但奈何无论怎么拷贝,粘贴到VS里都是带行号的,300多行的代码手工删除行号与前面的空格可得耗不少时间。。。这时想起了无所不能的VIM,以及它的正则,它的替换功能。解决步骤:

1.将代码贴到VIM

2.替换掉每行首的所有空格及数字

VIM底行模式下

:1,$s/^\s*[0-9]*\s*//g

解释:1为起始行号,315为终止行号,^在正则中代表行首,\s*代表若干个空格,可以没有,[0-9]*代表若干个数字,可以没有,即将^\s*[0-9]*\s*替换为NOTHING。

或者:

:%s/^...//g

1) 在一个新文件中读/etc/passwd中的内容,取出用户名部分

  vi file

  :r /etc/passwd 在打开的文件file中光标所在处读入/etc/passwd。

  :%s/:.*//g 删除/etc/passwd中用户名后面的从冒号开始直到行尾的所有部分。

  :3r /etc/passwd 这是在指定的行号后面读入文件内容。

  另外一种方法删掉文件中所有的空行及以#开始的注释行

  #cat squid.conf.default | grep -v '^$' | grep -v '^#'

  2) 在打开一个文件编辑后才知道登录的用户对该文件没有写权,不能存盘。

  vi file

  :w /tmp/1 既然没法存盘,不想放弃所做的所有修改,先临时存到/tmp/1。

  :20,59w /tmp/1 或者仅仅把第20到59行之间的内容存盘成文件/tmp/1。

  3) 用VI编辑一个文件,但需要删除大段大段的内容。

  vi file

  Ctrl+G 把光标移到需要删除的行的处按ctrl+G显示行号,再到结尾处再按Ctrl+G.

  :23,1045d 假定两次行号为23和1045,则把这几间的内容全删除。 也可以在开始和结束两行中用ma,mb命令标记后用:'a,'bd删除.

  4) 在整个文件或某几行中在行首或行尾加一些字符串

  vi file

  :3,$s/^/some string /

  在文件的第一行至最后一行的行首前插入some string.

  :%s/$/ some string/g 在整个文件每一行的行尾添加 some string.

  :%s/string1/string2/g 在整个文件中替换string1成string2.

  :3,7s/string1/string2/ 仅替换文件中的第三到七行中的string1成string2.

  Note: s为substitute,%表示所有行,g表示global.

  5) 同时编辑两个文件,在两个文件中拷贝剪贴文本

  vi file1 file2

  yy 同时打开两个文件,在文件1的光标所在处拷贝所在行。

  :n 切换到文件2 (n=next)。

  p 在文件2的光标所在处粘贴所拷贝的行。

  :N 切换回文件1。

  6) 替换文件中的路径

  :%s#/usr/bin#/bin#g 把文件中所有路径/usr/bin换成/bin。

利用Vim提供的正则去掉代码每行开头不想要的行号以及vi常见问题和应用技巧的更多相关文章

  1. perl6正则 3: 行开头与结尾与多行开头,多行结尾

    ^ $ 匹配一行的开头或结尾, 可以用 ^ 或 $. > so 'abcde' ~~ /e$/ True > so 'abcdef' ~~ /e$/ False > so 'abcd ...

  2. 转载:如何利用Vim进行Erlang开发

    转自:http://ovalpo.info/how_to_use_vim_for_erlang_dev/ 如何利用Vim进行Erlang开发 by Martin J. Logan on Septemb ...

  3. 【更新WordPress 4.6漏洞利用PoC】PHPMailer曝远程代码执行高危漏洞(CVE-2016-10033)

    [2017.5.4更新] 昨天曝出了两个比较热门的漏洞,一个是CVE-2016-10033,另一个则为CVE-2017-8295.从描述来看,前者是WordPress Core 4.6一个未经授权的R ...

  4. 利用Java提供的Observer接口和Observable类实现观察者模式

    对于观察者模式,其实Java已经为我们提供了已有的接口和类.对于订阅者(Subscribe,观察者)Java为我们提供了一个接口,JDK源码如下: package java.util; public ...

  5. 在vim中 安装php的xdebug和 vdebug插件, 在vim中进行调试php代码

    在vim中 安装php的xdebug和 vdebug插件, 在vim中进行调试php代码 参考: http://www.cnblogs.com/qiantuwuliang/archive/2011/0 ...

  6. git 利用hook 实现服务器自动更新代码

    如何利用git的hook实现提交代码后自动更新? 因为个人开发经常需要提交代码,每次都需要连接服务器去pull代码,重启服务器就显得十分繁琐,因此github提供了一个时间钩子,用户push代码后可以 ...

  7. 利用Python进行异常值分析实例代码

    利用Python进行异常值分析实例代码 异常值是指样本中的个别值,也称为离群点,其数值明显偏离其余的观测值.常用检测方法3σ原则和箱型图.其中,3σ原则只适用服从正态分布的数据.在3σ原则下,异常值被 ...

  8. Python3正则去掉HTML标签

    Python3正则去掉HTML标签 1.引用一段代码 import re html = '<pre class="line mt-10 q-content" accuse=& ...

  9. 逆向进阶,利用 AST 技术还原 JavaScript 混淆代码

    什么是 AST AST(Abstract Syntax Tree),中文抽象语法树,简称语法树(Syntax Tree),是源代码的抽象语法结构的树状表现形式,树上的每个节点都表示源代码中的一种结构. ...

随机推荐

  1. .Net之用户控件笔记

    前端初始化: 记录点:不需要写jquery的onload,只需要在<script></script>里面直接调用 <script type="text/java ...

  2. JDBC数据库连接JAVA和一些基本语句

    连接JDBC       1)JDBC简介         - JDBC就是Java中连接数据库方式         - 我们可以通过JDBC来执行SQL语句.       2)获取数据库连接     ...

  3. html table中单元格自动换行

    table中单元格自动换行样式: table-layout: fixed; word-wrap: break-word;   table-layout 可能的值(IE不支持inherit属性) 值 描 ...

  4. JVM(一)JVM的基本结构

    JVM基本结构 一 JVM基本结构示意图 二 JVM结构详解 一 程序计数器 程序计数器是一块较小的内存空间,它是当前线程所执行的字节码的行号指示器,如果线程执行的是一个Java方法,这个计数器记录的 ...

  5. 用Html模仿百度一下你就知道

    用Html模仿百度一下你就知道.... ------------------------------- <!doctype html> <html lang="en&quo ...

  6. VMware Workstation 12 Pro 之安装林耐斯-Solus-系统

    VMware Workstation 12 Pro 之安装林耐斯-Solus-系统... ----------------- ----------------- ------------------- ...

  7. $MarkDown$ 中使用$ \LaTeX$ 数学式

    最近看了些机器学习的书籍, 想写点笔记记录下. 由于需要使用到很多的数学推导, 所以就看了下如何在 Markdown 中插入数学式,发现在 Markdown 中可以直接插入 LaTeX 数学式. 排版 ...

  8. XSS分析及如何预防

    XSS分析及如何预防 简单说明: XSS(Cross Site Scripting),又称跨站脚本,XSS的重点不在于跨站点,而是在于脚本的执行.在WEB前端应用日益发展的今天,XSS漏洞尤其容易被开 ...

  9. 数据结构之R进制转换

    废话不多说,直接上代码 #include <stdio.h> int exchange(int a) { char c='A'; if(a>=10) { printf("% ...

  10. Android滑动控件.md

    1.概述 最近写代码临时加了个功能主要是滑动选择的功能效果图如下: 2.代码 这里主要是用属性动画做的 <ImageButton android:id="@+id/fab" ...