Questions tagged «normal-mode»

命令模式是初始模式。Vim称为正常模式。不要与命令行模式混淆,命令行模式是按:,/ 、?或!之后得到的。

2
我可以在正常模式下查看按键的历史记录吗?
我知道Vim保留历史记录,包括以前的命令,搜索,跳转位置,更改以及其他可能的信息。 使用showcmdset时,Vim还会显示您到目前为止为普通模式命令输入的键,直到执行该命令为止。 有时,在正常模式下,我输入错误并且发生了动作。我可以撤消这些操作,但是有时我想知道我的失误期间如何进行编辑。有时编辑看起来很酷,我想知道将来如何重复。 那么,有什么方法可以查看正常模式下的按键历史,最好是在发生实际的编辑或动作(例如运动或模式更改)时进行划界?

9
如何在不退出普通模式的情况下插入换行符
我想知道是否可以在不离开普通模式的情况下插入新行。例如,我有两行: this is line one this is line two 光标在第一行。现在,我要在第一行和第二行之间换行,如下所示: this is line one this is line two 我知道在正常模式下,只需按即可o。但这将进入插入模式。 如何插入新行并保持正常模式?

4
删除“复合”词的最简单方法是?
如果不是“ composite”,则表示歉意。我的意思是: Hi, I-am-a-composite-word and we are not 我只想删除复合词。在命令模式下,如果将光标移至I,然后重复dw几次,或者键入dw一次更好,然后再按几次.,就可以解决问题。但是,由于种种原因,我发现自己白天经常这样做,因此我想知道是否有更简单的方法。 PS我不会认为该命令d9w是一个更简单的方法。计数长单词和破折号不是我“简单”的想法。


1
如何映射d [count] d?
注意:这不是“ d3fg”命令如何工作的重复项?请在投票关闭前阅读它! 我寻求小删除像大删除一样陷入僵局。我遇到的问题是我不知道如何重新映射类似的命令d3d。实际上,我什至无法理解它们的工作原理,也无法在Vim的帮助下找到它们的任何提法。* d3j很简单:将d操作员应用于3j运动, 3dd也很简单:它dd以3的“ count” 运行命令。 d3d 看起来应该很简单,它将d运算符应用于...,但是什么是3d?这不是一个议案。如果您3d自己输入,Vim会将其视为一个运算符,然后是一个运算符,并耐心等待进一步的输入。 而且您不能将运算符应用于其他运算符。dd在帮助中并未描述为两个运算符的序列。这是一个单独的两键命令。(请参阅dc,它什么都不做。) 对于需要两次击键的命令,计数的位置似乎也不是灵活的:2gj将光标向下移动两行屏幕,但是g2j完全丢弃前两次按键并向下移动一行光标。 那么它是怎样工作的?这只是Vim内部代码中的一种特殊情况吗?有什么办法可以创建d[count]d映射? 编辑:这是一个文本对象吗?:h text-objects不包括在“文本对象选择命令”列表中,但随后它确实包含DD在“从小分组,以大物”删除列表。并d2aw确实删除了光标下的单词和随后的单词。另一方面,c2d什么也不做。 *我确定必须提到它们,但是我找不到。我已经阅读了:help deleting,:help motion.txt并尝试:helpgrep dNd了从1到9的所有N值。


7
返回正常模式时,vim可以自动关闭Capslock吗?
几乎每次我输入大写字母之后,我都会忘记返回正常模式时关闭大写锁定。然后,我尝试移动光标,并最终加入了很多行和很多其他我不希望发生的事情。 当我按Escape键进入正常模式时,是否可以将vim配置为关闭大写锁定? 如果有特定于操作系统的解决方案,那么我对适用于Linux的解决方案感兴趣。


1
Vim导航的手动放置
我是Vim的新用户,我想问这个基本问题,以确保我以正确的方式开始学习Vim,并且不会养成不良习惯。 使用Vim时,如何定位右手?我发现从手指上的jkl;按键开始比较自然,但是随后发现h导航时有时会丢失按键。相反,如果我将手指放在上面,hjkl那么我会发现自己的单词含糊不清,因为这不是我受过训练的将手放在键盘上的位置,而且我发现jk用中指和无名指切换键会很尴尬。

1
如何将行缩进量更改为特定值?
很多时候,我遇到了缩进不正确的情况。通过粘贴,不良/不受欢迎的缩进插件,或者通常是多余的空格来抵消缩进值,以太。我通常会按此方式<<或>>几次将其修复以对其进行修复。在多余的空格的情况下,我会做一个100<<再>>对每个缩进级别其实我是想。 问题是,就像|允许您按数字设置列的动作一样,10|将光标移至第10列。如何指定缩进级别? 以下示例(无效)shiftwidth=4 expandtab: The quick (indent level 0) ••••Brown Fox (indent level 1) ••••••••••Jumped over the lazy dog (indent level 2 with two extra spaces) 在这种情况下,我目前必须计算最后一行(2)的缩进级别,并为多余的空格添加一个3<<缩进级别,然后键入然后计算我当时1>>(或使用autoindent和==命令)的缩进级别。 我正在要求1==将缩进设置为1级缩进。或者在某些情况下0==,一起删除缩进。 我意识到上面的示例确实分别在1或0行上进行了自动缩进,因此无法满足我的要求,但希望它能更好地说明问题。

2
如何在Vim启动时执行命令
我刚刚为python安装了一个显示方法树的插件。因此,我想在启动时打开树,因此不必每次打开某些.py文件时都按下按钮。但是,我希望仅对.py文件执行此命令。这是我的vimrc片段的样子: nmap <F8> :TagbarToggle<CR> 有一种方法在启动时仅对.py文件执行此命令吗?

6
如何删除光标上方/下方的行,而不是当前行?
是否有删除当前行上方的一行(或n行)的命令?以上=当前不包括在内。 即,是否有dk不删除当前行的替代方法?与o/ O和p/的P工作方式类似,但具有删除功能。 目前,我正在执行kdd,它将光标向上移动一行并删除它。我可以nnoremap <Leader>d kdd和nnoremap <Leader>D jdd-,但是有一个不移动光标的替代品似乎是一个更好的选择。有这样吗?

1
gs的用例
根据有关文档gs: 入睡N秒钟(默认值为1) 因此,您可以使用来使Vim进入睡眠状态10秒钟10gs。此命令的一个好用例是什么?

6
删除n行跳过1行脚本
我想创建一个基本的Vim脚本,该脚本仅删除n行,跳过1行并重复直到文档末尾。我不在乎特定的匹配项,我只想删除该行。例如; 因此,我想对3ddj整个文档重复该命令。 Text I want to keep. Text I want to delete. Text I want to delete. Text I want to delete. Text I want to keep. Text I want to delete. Text I want to delete. Text I want to delete. Text I want to keep. Text I want …


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.