为什么vim中的某些命令需要冒号而有些命令却不需要?

Gee*_*eek 28 vim

vim中的一些命令是通过首先输入冒号(:)来给出的.:wq用于保存文件并退出.虽然某些命令不需要冒号,例如Replace命令(R).我想知道这两种方法有什么区别?关于哪些需要冒号而哪些不需要冒号,是否有任何具体规则?

Ing*_*kat 37

您必须查看Vim的前身vi历史,以获得解释.很久以前,当用键盘和连接的打印机(称为终端)进行文本编辑时,除了纸张之外没有鼠标,没有显示,因此交互性很小.编辑由一个名为ex的编辑器组成的短的助记符命令组成.你发出了一个命令来解决一行或几行(例如:substitute/foo/bar),并且编辑服从了.如果您不确定命令的效果,可以使用:print某些行.

时间过去了,视频终端出现了,vi编辑器结合了ex命令(因为它们很有用,程序员习惯了它们),但引入了更多交互式命令,如delete(x),insert(i)等.ex命令仍然可以在命令行模式下使用,该模式以#开头:并以Enter.

Vi和Vim在这方面是特别的,因为它们具有这些不同的模式,其中相同的键意味着不同的东西,具体取决于所处的模式.为了精通Vim,您必须了解不同的模式,以及如何最好地使用他们实现了你的编辑目标.

:help vim-modes 为您提供优质而全面的帮助设施的起点.

  • 在一些`.vimrc` 文件中,我看到`:map` 和`map` 同时出现。它们都可以正常工作。哪个被认为是正确的? (3认同)
  • @nn0p:`.vimrc`中的前导`:`是可选的; 两者都是正确的,但省略它的较短形式更为常见. (3认同)
  • @ nn0p:最好的是`:help vimrc`:“包含初始化命令的文件称为“ vimrc”文件。vimrc文件中的每一行都作为Ex命令行执行。” 注意_Ex command_,这意味着进入Ex模式的普通模式`:`命令是可选的。 (2认同)

rom*_*inl 14

"不需要"冒号的命令称为"正常(模式)命令".

"需要"冒号的命令称为"Ex命令".

作为模态编辑器的Vim 有许多与你所处模式相关的命令.最明显的效果是在不同的上下文中使用相同的键可能会产生不同的结果.

插入模式下,键盘上的大多数键用于在文档中实际输入字符.

你必须切换到正常模式来拉动,放置,删除,移动你的光标... 正常模式是你做激光聚焦编辑的地方Vim很有名,并使用命令dcggsi/.*等等.

通过按正常/*可视*模式进入命令行模式.它通常用于两件事::

  • 执行管理任务(写入磁盘,切换缓冲区,打开文件......)
  • 使用很酷的编辑命令,如:m10:t1:g/foo/d......

您可以在此模式下使用的许多命令是(非常强大的)Vim过去的残余,并称为Ex命令.

简而言之,普通模式命令和Ex命令都不以冒号开头.冒号只是用来改变模式.


mtk*_*mtk 9

你处于不同的模式vim.有6种基本模式vim.他们是

  1. 正常模式
  2. 视觉模式
  3. 选择模式
  4. 插入模式
  5. cmdLine模式
  6. Ex模式

Normal模式中您不需要键入:,按Esc可以达到此模式.