我听过很多关于Vim的消息,包括优点和缺点.看起来你应该(作为开发人员)使用Vim比使用任何其他编辑器更快.我正在使用Vim来做一些基本的东西,而且我最好用Vim的效率低 10倍.
当你谈论速度时你应该关心的两件事(你可能不太关心它们,但你应该这么做)是:
这里有两个例子,说明为什么我对Vim的效率低得多.
复制/剪切和粘贴.我一直这样做.使用所有当代编辑器,您可以Shift 用左手按下,然后用右手移动光标以选择文本.然后Ctrl+ C副本,你移动光标和Ctrl+ V贴.
有了Vim,它太可怕了:
yy 复制一行(你几乎不想要整行!)[number xx]yy将xx行复制到缓冲区中.但你永远不知道你是否选择了你想要的东西.我经常做的[number xx]dd,然后u撤消!另一个例子?搜索和替换.
/,然后键入要搜索的内容,然后如果\在每个特殊字符前放置了一些特殊字符,则按Enter.与Vim的一切都是这样的:似乎我不知道如何以正确的方式处理它.
我的问题是:
你使用Vim的方式是什么让你比现代编辑更有效率?
是否可以在不进入插入模式的情况下在光标处于Vim的位置插入换行符?这是一个例子([x]意味着光标打开x):
if (some_condition) {[ ]return; }
Run Code Online (Sandbox Code Playgroud)
偶尔,我可能想要输入更多代码.所以我按下i进入插入模式,按下Enter以插入换行符,然后删除额外的空格.接下来,我进入正常模式并将光标定位在右大括号之前,然后执行相同的操作以将其放在自己的行上.
我已经这样做了一段时间,但肯定有更好的方法吗?
我试图在VIM中自定义Enter密钥Normal模式的行为.这是我的.vimrc:
nmap <CR> o<Esc>
nmap <S-CR> i<CR><Esc>
Run Code Online (Sandbox Code Playgroud)
我试图让Enter在按下当前行之后简单地追加换行符.但是,如果Shift-Enter按下组合,我想打破光标处的当前行.
后者不起作用.每当我按下Shift-Enter它时,只需附加一行而不会在光标处打破它.