Questions tagged «ex-mode»

7
防爆模式有实际用途吗?
Vim具有可以通过输入进入的Ex模式和可以通过进入Q的命令行模式q:。新vim用户之间的共同抱怨是,他们在尝试退出vim时意外进入了这些模式。因此,我禁用了这些键,~/.vimrc以防止自己意外地(尤其是q:)敲击它们: map q: <Nop> nnoremap Q <nop> 尽管我已经阅读了Ex上的vim文档,并且是一名有一定经验的Vim用户,并且了解其背后的基本思想,但我仍然很难在日常使用vim中找到任何用途。总的来说,它似乎没有比输入标准的带前缀的vim命令行命令有用的功能:,因为更改不会立即被回显。 Ex在现代Vim中有日常用途吗?在Ex模式下,有什么比使用标准命令更容易做到的吗?命令行模式和ex模式有什么区别?
115 ex-mode 

1
如何非交互地编辑文件(例如在管道中)?
我想以非交互方式使用vim编辑在管道输入中传递的文件,或就地编辑文件(类似于sed)。 很少使用sed以下示例: $ sed -i'.bak' s/foo/test/g file # Edit file in-place. $ cat file | sed s/foo/test/g # Parse file in pipeline. 但是我可以在这里读到: sed是S tream ED管理员,不是文件编辑器。但是,各地的人们都倾向于滥用它来尝试编辑文件。它不编辑文件。 其次,一些选项,例如就地编辑(-i)是可移植的。 在vim中如何实现相同的功能?

2
:open在vim中做什么?
Vim的文档中有关于:open命令的说法: This command is in Vi, but Vim only simulates it: *:o* *:op* *:open* :[range]o[pen] Works like |:visual|: end Ex mode. {Vi: start editing in open mode} :[range]o[pen] /pattern/ As above, additionally move the cursor to the column where "pattern" matches in the cursor line. Vim does not support open …
18 ex-mode 

1
如何退出ex输入模式?
输入时,我陷入了ex输入模式:i。现在,我不能使用任何命令。全部只有一串文本。按Escape键不能使我摆脱困境,按输入:visual不能使我摆脱困境,而按输入visual不能使我摆脱困境。我如何摆脱困境?
16 ex-mode 

1
从给定行到文件末尾删除与模式匹配的行
如果我的文件中包含很多注释,并且我想删除从第3行到文件末尾的所有注释,那么最好的方法是什么? 我被困住了,因为我第一次尝试的事情似乎并没有达到我想要的效果: :3,$/^#/d 与其查找模式并删除从3到文件末尾的行,不如从3到通过与该模式匹配的行删除所有行,然后停止。 因此,如何将ex命令应用于一系列行。在这种情况下,它到文件的末尾,但是如果我要对一个标记进行编辑,还是在第10行和第20行之间或其他范围内,它会有所不同吗?
10 ex-mode 

2
如何从命令行将整个缓冲区写入标准输出?
我想将整个缓冲区/dev/stdout而不是文件写入标准输出(),并且以下命令在编辑文件时按预期工作: :w >> /dev/stdout 提示:按Control+ L刷新屏幕。 但是,当我尝试从命令行(非交互式)执行相同操作时,它无法按预期工作,例如: $ echo This is example. | vim - '+:w >> /dev/stdout' '+:q!' Vim: Reading from stdin... 与同:w !tee,:x! /dev/stdout,:%print和类似的。 退出之前,这是说:[Device] 1L, 17C appended。 有什么办法迫使vim在管道中间将标准输入写入标准输出?也许以某种方式缓冲了吗?

2
使用ex-command检查两行是否相同?
我一直在看这个问题,然后想知道如何使用纯 POSIX 实现我的答案 sed。ex 诀窍是,虽然sed我可以比较保持空间和模式空间以查看它们是否完全相等(用 G;/^\(.*\)\n\1$/{do something}),但是我不知道在中进行这种测试的方法ex。 我知道在Vim中,我可以Y使第一行变短,然后键入 :2,$g/<C-r>0/d以几乎执行我指定的操作-但是如果第一行包含除非常简单的字母数字文本之外的任何内容,这的确会带来麻烦,因为该行已作为正则表达式转储了进来。 ,而不仅仅是用于比较的字符串。(如果第一行包含正斜杠,则该行的其余部分将被解释为命令!) 因此,如果我想删除myfile与第一行相同的所有行,但又不想删除第一行,该如何使用ex?为此,我该如何使用vi? 如果某行与另一行完全匹配,是否有POSIX方法删除该行? 可能是这样的虚构语法: :2,$g/**lines equal to "0**/d
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.