目录
6.3 Vim生成一列连续按规则递增递减的数字【q记录器的使用】
一、【Vim】【gvim】
welcome home : vim onlinehttps://www.vim.org/
1.gvim 找到或者删除重复行
gvim 是一个非常流行的文本编辑器,你可以使用它来查找重复行。下面是一些步骤:
-
打开要编辑的文件。
-
进入命令模式,输入以下命令:
:sort u
这个命令将排序并删除所有重复的行。
-
如果你想查看哪些行已经被删除,可以输入以下命令:
:sort
这将对文件进行排序,但不会删除重复的行。
-
如果你只想查找重复的行而不删除它们,可以输入以下命令:
:g/^.$/matchadd(‘Search’, '<(\w+)>_s\1’)
这个命令将高亮显示所有的重复行。
2.在 Vim 中将多行合并为一行
最直观的方法是使用 Vim 可视模式,Shift + v。您只需选择要合并到一行的内容,然后按Shift + j。
3.每行行首或行尾插入
- 行首添加一个字符串
- :%s/^/xxxx
- xxxx代表要插入的内容
- 例如::%s/^/hello
- 行尾添加一个字符串
- :%s/$/xxxx
- 解释:
- %代表被编辑文件的每一行
- $ 代表一行的结尾处
- ^ 代表一行的开头处
4.删除每行行尾的空格
- %s/\s+$//g
- %s#\s\+$##g
- 【%s】表示全文替换,【%】表示全文的意思,【#】是分隔符,等同于【/】
5.vim快捷键
- gf——跳转到光标所在文件 go to file
- :bf——回退至原文件 back to file
- :bd——delete关闭当前内容并且把这个文件从buffer列表中删除
- ctrl+o——回退至光标上一个位置,也可以回退到上一个文件
- ctrl+i ——再次打开之前跳转的文件
- ctrl+w+k——光标移动至分屏上方窗口
- ctrl+w+j——光标移动至分屏下方窗口
- v模式下移动光标,按y进行复制,按p进行粘贴。
- :sp ./{AAA} ——分屏打开当前目录下的AAA文件
删除查找到的整行【:sort u】
总结格式就是: 范围 /匹配/ 操作
:g/create_via/d
查找替换
:%s/ME8/ME7/g
把空格替换为换行
:%s//\r/g
把换行替换为空格
:%s/\r//g
多个内容匹配并替换
:%s#\(.*\)icc2\(.*\)_.*#\1silicon_ensemble\2.lef#g
\(.*\) —— .*表示匹配任意字符,\( 和 \) 表示转义符()
\(.*\)icc2\(.*\)_.* —— 表示匹配一行中的 icc2 和 _结尾的内容
\1silicon_ensemble\2.lef —— 表示把查找到的icc2替换成silicon_ensemble,查找到的【_和后面内容】替换成.lef
————————————————
:%s/,(\w)/, /\1/gc
注意括号前后和1前的转译符号“ \“
\w表示匹配一个任意文本。\1表示括号内匹配到的内容,还可以有2和3.
这个\1 \2… 都要和正则表达式集合()一起使用,简单的说就是:
\1表示重复正则第一个圆括号内匹配到的内容
\2表示重复正则第二个圆括号内匹配到的内容(跟上面示例一个意思)
————————————————
:346,372s/ =/[i] =/g
每行行首添加#号
:%normal I#(大写的i)
每行行尾添加;分号
:%normal A;
删除每行指定符号后面的内容
:%normal f*d$ —— 删除以 f 开始到行尾的内容,d 代表删除,$ 代表行尾
%表示当前文件的所有行,也可以指定某些行执行命令
:1,10 normal A# ——在1-10行的行尾加入#符号
删除选定内容的整行
:g//d
删除指定多行【间隔的 / 可以用 # 代替】
:35,$g/.*/d
————————————————
1、EDA工具产生的log文件具有换行符
EDA工具在一些情况下产生的log文件中,每行行尾都会有^M字样,此字样可能会造成一些脚本无法使用,如perl,python。因此我们需要将每行句尾的^M删除。^M代表着换行符。
2、Gvim:替换换行符
使用命令:%s/\r//g,在此处位置,\r表示换行符。采用替换的方式删除文件中的^M字符,而不是使用错误命令:%s/\^M//g
在%s/a/b/g命令中,表示a被b替换。g代表替换一行中的所有a字符
————————————————
6.生成递增数字
6.1 使用 put 和 range 快速生成数字
您可以通过以下方式快速生成升序数字
:put=range(1,5)
这会给你:
1
2
3
4
5
我们还可以控制增量。 如果我们想快速生成降序数,我们这样做:
:put=range(10,0,-1) //从10降到0
其他一些变化:
:put=range(0,10,2) // 从 0 到 10 递增 2
:put=range(5) // 从0开始,上升到5
6.2 快速增加数字列
假设我们有一列数字,比如下面 HTML 中的 0:
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
如果我们想增加所有的零(1、2、3、...),我们可以很快做到。 方法如下:
首先,将光标移动到顶部 0(我使用 [] 表示光标位置)。
<div class="test">[0]</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
<div class="test">0</div>
使用 VISUAL BLOCK 模式 (<C-v>),向下移动 8 次 (<C-v>8j) 以直观地选择全部 0。
<div class="test">[0]</div>
<div class="test">[0]</div>
<div class="test">[0]</div>
<div class="test">[0]</div>
<div class="test">[0]</div>
<div class="test">[0]</div>
<div class="test">[0]</div>
<div class="test">[0]</div>
<div class="test">[0]</div>
现在键入 g <C-a>。 瞧!
<div class="test">1</div>
<div class="test">2</div>
<div class="test">3</div>
<div class="test">4</div>
<div class="test">5</div>
<div class="test">6</div>
<div class="test">7</div>
<div class="test">8</div>
<div class="test">9</div>
等一下……刚刚发生了什么?
Vim 8 和 neovim 具有使用 <C-a> 自动递增数字(并使用 <C-x> 递减)的功能。
你可以通过 :help CTRL-A 来检查它。
我们还可以通过在前面插入一个数字来更改增量。 如果我们想要 10,20,30,... 而不是 1,2,3,...,请改为执行 10g<C-a>。
顺便说一句,使用 <C-a> 和 <C-x> 的超酷提示 - 您不仅可以递增数字,还可以递增八进制、十六进制、bin 和 alpha! Alpha 是 *alpha*betical 字符的花哨词。 如果我们确实设置 nformats=alpha,我们可以像处理数字一样递增字母表。
6.3 Vim生成一列连续按规则递增递减的数字【q记录器的使用】
二、【Emacs】
GNU Emacs - GNU Projecthttps://www.gnu.org/software/emacs/注:C=ctrl,M=alt;
1.把tab自动替换成空格
执行步骤:
- C+x,等一下再按+h
- M-x untabify
- 保存文件
全选;
然后,调untabify命令,就把tab全换成空格了。
当然,emacs还有一个逆操作命令tabify, 能全部换回去。