vim,gvim,emacs常用操作技巧记录

目录

一、【Vim】【gvim】

1.gvim 找到或者删除重复行

2.在 Vim 中将多行合并为一行

3.每行行首或行尾插入

4.删除每行行尾的空格

5.vim快捷键

6.生成递增数字

6.1 使用 put 和 range 快速生成数字

6.2 快速增加数字列

6.3 Vim生成一列连续按规则递增递减的数字【q记录器的使用】

二、【Emacs】

1.把tab自动替换成空格


一、【Vim】【gvim】

welcome home : vim onlinehttps://www.vim.org/

1.gvim 找到或者删除重复行

gvim 是一个非常流行的文本编辑器,你可以使用它来查找重复行。下面是一些步骤:

  1. 打开要编辑的文件。

  2. 进入命令模式,输入以下命令:

    :sort u

    这个命令将排序并删除所有重复的行。

  3. 如果你想查看哪些行已经被删除,可以输入以下命令:

    :sort

    这将对文件进行排序,但不会删除重复的行。

  4. 如果你只想查找重复的行而不删除它们,可以输入以下命令:

    :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.生成递增数字

参考:生成和递增数字的快速 vim 技巧 - 知乎

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记录器的使用】

Vim生成一列连续按规则递增递减的数字【q记录器的使用】_gvim 数字递增-CSDN博客


二、【Emacs】

GNU Emacs - GNU Projecthttps://www.gnu.org/software/emacs/注:C=ctrl,M=alt;

1.把tab自动替换成空格

执行步骤:

  1. C+x,等一下再按+h
  2. M-x untabify
  3. 保存文件

全选;

然后,调untabify命令,就把tab全换成空格了。

当然,emacs还有一个逆操作命令tabify, 能全部换回去。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值