ex命令

ex命令用于在Ex模式下启动vim文本编辑器,ex执行效果如同vi -e,如要从Ex模式回到普通模式,则在vim中输入:vi:visual指令即可,可以通过运行vi -e来启动ex,也可以通过运行ex -v来启动viexvim的基础,vim是世界上最受欢迎的文本编辑器之一。ex并不是另一个编辑器,应该说vi是更一般更基本的ex行编辑器的可视模式,所以ex算是vi的底层行编辑器。由于一些ex命令可以节省大量的编辑时间,因此在使用vi时它们是非常有用的,这些命令的大部分都可以在不离开vi的情况下使用。

语法

ex [ -| -s ] [ -l ] [ -L ] [ -R ] [ -r [ file ] ] [ -t tag ] [ -v ] [ -V ] 
   [ -x ] [ -wn ] [ -C ] [ +command | -c command ] file

参数

  • --: 此后仅文件名。
  • -v: 在vi模式下启动vim
  • -e: 在ex模式下启动vim
  • -E: 以改进的ex模式启动vim
  • -s: 沉默模式,仅当以Ex开头或在-s选项之前给出-e选项时生效。
  • -d: 以diff模式启动,应该有两个或三个文件名参数,vim将打开所有文件并显示它们之间的差异,像vimdiff一样工作。
  • -y: 以简单模式启动vim,类似于evimeview,使vim的行为像单击并键入编辑器。
  • -R: 只读模式,将设置readonly选项,此时仍然可以编辑缓冲区,但将防止意外覆盖文件。如果仍要覆盖文件,请在Ex命令中使用w!
  • -Z: 限制模式,类似于rvim
  • -m: 禁止修改文件,重置写入选项,此时仍然可以修改缓冲区,但不可写入文件。
  • -M: 不允许修改,可修改和写入选项将被取消设置,因此不允许进行更改并且无法写入文件。请注意,可以设置这些选项以进行修改。
  • -b: 二进制模式,将设置一些选项,以便可以编辑二进制文件或可执行文件。
  • -l: Lisp模式,将lispshowmatch选项设置为开。
  • -C: 兼容的,设置兼容选项,这将使vim的行为与vi类似,即使存在.vimrc文件。
  • -N: 不兼容模式,重置兼容选项,即使.vimrc文件不存在,这也会使vim表现得更好,但与vi的兼容性较差。
  • -V[N][fname]: 详细信息,提供有关哪些文件来源以及用于读取和写入viminfo文件的消息,可选数字N是详细的值,默认值是10
  • -D: 调试模式,从脚本执行第一个命令时转到调试模式。
  • -n: 不会使用交换文件,这样崩溃后的恢复将是不可能的。如果要在非常慢的介质例如软盘上编辑文件,此功能非常方便。
  • -r: 列出交换文件,以及有关使用它们进行恢复的信息。
  • -r <file name>: 恢复模式,交换文件用于恢复崩溃的编辑会话,交换文件与附加.swp的文本文件具有相同的文件名。
  • -L: 与-r相同。
  • -A: 如果vim是在阿拉伯语支持下编译的,用于编辑从右向左的文件和阿拉伯语键盘映射,则此选项将以阿拉伯语模式启动vim,即设置ARABIC,否则将发出错误消息,vim将中止。
  • -H: 以希伯来语模式启动。
  • -F: 以波斯语模式开始。
  • -T <terminal>: 告诉vim正在使用的终端的名称,仅在自动方式无效时才需要,应该是vim内置已知的终端,或在termcapterminfo文件中定义的终端。
  • --not-a-term: 输入或输出不是终端时跳过警告。
  • -u <vimrc>: 使用文件.vimrc中的命令进行初始化,将跳过所有其他初始化。使用此选项可编辑特殊类型的文件,也可以用来跳过所有的初始化,方法是给名称NONE。 initialization”。
  • --noplugin: 跳过加载插件,由-u表示无。
  • -p[N]: 打开N个标签页,如果省略N,则为每个文件打开一个标签页。
  • -o[N]: 打开堆叠的N个窗口,当省略N时,为每个文件打开一个窗口。
  • -O[N]: 并排打开N个窗口,如果省略N,则为每个文件打开一个窗口。
  • +: 从文件末尾开始。
  • +<lnum>: 对于第一个文件,光标将定位在num行上。如果缺少num,则光标将位于最后一行。
  • --cmd <command>: 在加载任何.vimrc文件之前执行<command>
  • -c <command>: 加载第一个文件后执行<command>
  • -S <session>: 加载第一个文件后源文件的<session>
  • -s <scriptin>: 从文件<scriptin>中读取普通模式命令。
  • -w <scriptout>: 将所有键入的命令附加到文件<scriptout>
  • -W <scriptout>: 将所有键入的命令写入文件<scriptout>
  • -x: 编辑加密文件。
  • --startuptime <file>: 将启动定时消息写入<file>
  • -i <viminfo>: 使用<viminfo>而不是.viminfo
  • -h or --help: 输出帮助信息。
  • --version: 输出版本信息。

示例

file.txt启动ex编辑模式。

ex file.txt

显示总行数、当前行号。

= | .=

打印文件前3行内容。

1,3 p

删除第1到第2行,切换回vi模式查看效果。

1,2 d
vi

移动第12行到第3行下边。

1,2 m 3
vi

复制第12行到第3行下边。

1,2 co 3
vi

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://www.computerhope.com/unix/uex.htm https://www.runoob.com/linux/linux-comm-ex.html https://www.cnblogs.com/dasn/articles/5240991.html https://www.tutorialspoint.com/unix_commands/ex.htm https://blog.csdn.net/u013408061/article/details/77853130 https://www.geeksforgeeks.org/ex-command-in-linux-with-examples/